ielogošnās

Tiek skatīts 1 ieraksts (no 10 kopumā)
  • Autors
    Ieraksti
  • #149207
    Gachu
    Participant

    Sveicināti!!

    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!!

    #205681
    drono
    Participant

    Vienkāršākajā gadījumā, izmanto Sessions, vai sliktākajā gadījumā – Cookies.

    Iekš PHP, vispirms atveram sesiju

    Code:


    Pēc ielogošanās piešķiram $_SESSION mainīgajam kādu vērtību

    Code:

    $_SESSION[’ielogojies’]=’Janis’;


    Un tad katrā lapā pārbaudām, vai ielogojies ir jānis

    Code:

    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”.

    #205682
    Gachu
    Participant

    Darbības princips ir skaidrs!!

    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?

    #205683
    drono
    Participant

    Tu mēģini nosūtīt kaut kādu headeru informāciju (Cookies, location utt), pēc tam, kad jau ir sākta datu (HTML) sūtīšana. Tas vispārīgā gadījumā nav iespējams. Būtu arī noderīgi uzzināt, kas tieši atrodas attiecīgā faila 7. un 9. rindiņā.

    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 kā nevajag darīt:

    Code:



    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??

    #205684
    Gachu
    Participant

    skaidrs..brīžam strādā, brīžam nē!!

    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

    #205685
    drono
    Participant

    Ja errors rodas dēļ UTF-8, tad pie vainas ir šajā formātā esošais Byte Order Mark. Tie ir daži neredzamie simboli katra UTF-8 faila sākumā, kas tiek nosūtīti klientam, tāpēc vairs nevar sūtīt headerus.

    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.

    #205686
    Gachu
    Participant

    strādātikai Notepad2 UTF-8 !!

    paldies!!

    #205687
    Mad182
    Participant

    drono wrote:

    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.

    #205688
    Genādijs
    Participant

    //Jānis nav ielogojies, sūtām visus nah “logoties” :D:D vispār jau smieklīgi 😀

    #205689
    daGrevis
    Participant

    Pasūtam logoties, nah… 😀 Patiešām koderiem domāšana savādāka. 😀

Tiek skatīts 1 ieraksts (no 10 kopumā)
  • Jums ir jāpieslēdzas sistēmai, lai varētu komentēt šo tēmu.
Jaunākais portālā