Sākumlapa › Forumi › Mājas lapu izstrāde › Servera puse (php, java, ruby, perl, python) › ielogošnās
Kad cilvēks ievada lietotājvārds un paroli, tā ir pareize – atveras user lapa. Bet es vēlos zināt kā panākt lai saistītās programmas (citas lapas, kas ir user lapā) zinātu, ka viņš ir ielogojies.
Kādam varbūt kāds programmas piemērs, kā ar ielogošanos nesaistītā php programma zinātu, ka viņš ir ielogojies?
Piemēram, šai pašā lapā. Ielogojos un staigāju pa forumu programām, bet viņas zin, ka esmu ielogojies!!
Paldies!!
Iekš PHP, vispirms atveram sesiju
Pēc ielogošanās piešķiram $_SESSION mainīgajam kādu vērtību
$_SESSION[’ielogojies’]=’Janis’;
Un tad katrā lapā pārbaudām, vai ielogojies ir jānis
if(isset($_SESSION[’ielogojies’]) and $_SESSION[’ielogojies’]==’Janis’){
//Jānis ir ielogojies, rādām lapu
}else{
//Jānis nav ielogojies, sūtām logoties
}
Š is tāds ļoti primitīvs izskaidrojums, bet, ja pareizi sapratu, tad tieši tas autoram interesēja.
Sesijas mainīgais saglabājas uz servera, bet parasti tikai tik ilgi, kamēr lietotājs neaizver pārlūkprogrammu.
Piemērus vari meklēt jebkurā opensource CMS sistēmā, vai arī Googlē “php login script”.
Bet ir problēma ar PHP funkciju header. Rāda paziņojumu: Warning: Cannot modify header information – headers already sent by (output started at C:webwwwvvchecklogin.php:7) in C:webwwwvvchecklogin.php on line 9
kāds nezin kāpēc neatver vajadzīgo php failu?
Ja tiešām nekā savādāk nevar šo problēmu atrisināt, tad var izlīdzēties arī ar output buffering
Labots: Bāc, tagad reku man nedaudz izbrīnu izraisīja šitāda lieta. Lūk oficiālais piemērs no PHP
Es šamējo izmēģināju uz 2 dažādiem serveriem, bet uz abiem viņš DARBOJAS 😀 Darboties viņam taču pēc visas loģikas nevajadzētu, bet viņš darbojas bez nekādiem erroriem. Gan uz jaunākā PHP gan uz vecāka 5.1. WTF??
nezina, kāpēc session_start() rāda error, ja fails ir saglabāts kā UTF-8, bet ja saglabā ANSI, tad nav error!!
strādā ja saglabā UTF-8, bet error rāda, varētu vistmaz to nerādīt 🙂 būtu ok
Lai to novērstu, web lapās izmantojamajos failos vienmēr ir jāizmanto speciālo UTF-8 formātu bez BOM.
Notepad++ editorā šis formāts saucas “UTF-8 without BOM” (BOM formāts tur saucas vienkārši UTF-:oops:
Notepad2 editorā šis formāts saucas UTF-8 (BOM formāts tur saucas UTF-8 Signature)
Citos editoros arī ir kas līdzīgs.
Turpretī, parastais Windows Notepad šo formātu neatbalsta.
paldies!!
Es šamējo izmēģināju uz 2 dažādiem serveriem, bet uz abiem viņš DARBOJAS 😀 Darboties viņam taču pēc visas loģikas nevajadzētu, bet viņš darbojas bez nekādiem erroriem. Gan uz jaunākā PHP gan uz vecāka 5.1. WTF??
Ja serverim ir atslēgta kļūdu pazinojumu publiska rādīšana (kā tam uz produkcijas kastēm arī vajadzētu būt), tad konkrētais piemērs varētu arī strādāt.