kostenloser Webspace werbefrei: lima-city


PHP LOGOUT problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c****4

    hi,
    ich bin grad daran ein login script zu schreiben, aber nicht das, sondern eher das logout script macht mir probleme -.-
    hier erstmal der link zu der seite:
    http://web258.server-drome.net/matze/php/ct2oo4/index.php

    Und zwar sieht mein header mit der login box folgendermaßen aus:

    <?PHP
    // header.php
     echo"
      &nbsp;&nbsp;header
      <div class='loginbox'>
     ";
     if (isset($_COOKIE['login'])) {
      echo " Hallo matze , <a href='index.php?site=logout'>logout</a> ";
      }
     else {
      echo"
       <form action='login_check.php' method='get'>
        <input type='text' name='username' class='username' size='10' maxlength='7' />
    	<input type='password' name='password' class='password' size='10' maxlength='15' />
    	<input type='submit' name='send' value='OK'  />
       </form>
       ";}
    echo " </div>";
    
     $_GET['username'] = $username;
     $_GET['password'] = $password;
    ?>


    meine Login überprüfung sieht so aus:
    // login_check.php

    <?PHP
    $admin = matze;
    $pw = test;
    
    if ($username == $admin AND $password == $pw) {
     setcookie(login, time()+3600);
     header("Location: index.php?site=is_numeric");
    }
    else { header('Location: index.php?site=no_login'); }
    
    ?>


    soo bis jetzt alles kein problem... nach erfolgreichen anmelden wird in der loginbox des headers folgendes angezeigt:
    Hallo matze , <a href='index.php?site=logout'>logout</a>
    so auch klar, ich bin nun eingeloggt und zwar mit hilfe eines cookies namens 'login' was 1h existiert...

    So jetzt kommt mein Problem:

    // logout.php
    <?PHP
    setcookie (login, time()-3600);
    echo "Erfolgreich ausgeloggt";
    ?>


    jetzt wird angezeigt:
    Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web258/html/matze/php/ct2oo4/index.php:13) in /srv/www/htdocs/web258/html/matze/php/ct2oo4/logout.php on line 2
    Erfolgreich ausgeloggt

    das "Erfolgreich ausgeloggt" ist klar...
    aber die Fehlermeldung macht mir Kopfzerbrechen...
    Ich gebe ja schließlich vor setcookie schon nix aus :confused:
    meine index die angesprochen wird, sieht folgerndermaßen aus:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Unbenanntes Dokument</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    
    <body>
    
    <div class="wrapper">
     <div class='header'>
      <?PHP include('header.php'); ?>
     </div>
     
    
     <?PHP include('wrapper.php'); ?>
    <br />
    
     <div class="footer">
      &nbsp;&nbsp;footer
     </div>
    </div>
    
    </body>
    </html>


    ja... der scharfe beobachter hat festgestellt, dass man sich mit matze und test einloggen kann ;)
    :P

    bitte helft mir.
    Matze
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    aber die Fehlermeldung macht mir Kopfzerbrechen...
    Ich gebe ja schließlich vor setcookie schon nix aus


    Wenn du nichts ausgeben würdest, würde die Fehlermeldung auch nicht erscheinen.

    Wie mir das scheint rufst du in der index.php die Datei logout.php über einen include()-Befehl auf. Folglich darf auch in der index.php nichts vor include('logout.php') ausgegeben werden.
  4. Wenn ich mich einlogge und dann wieder ausloggen, dann wird die Fehlermeldung IM Design angezeogt, d.h. du gibst davor noch ziemlich viel HTML-Zeugs aus, was die Fehlermeldung verursacht.
  5. Autor dieses Themas

    c****4

    ich include die logout.php aber nicht...
    siehe 1.post...
    @spacke:
    naja das wollte ich auch so wenns ne andere mögloichkeit gibt dann nur her damit!
    soll ich vielleicht die logout.php nicht includen sondern als eigene page aufrufen??


    Beitrag geaendert: 7.1.2007 15:21:35 von ct2004

    so habs grad ausprobiert hab in meiner header.php anstatt index.php?site=logout nur logout.php geschreiben funktioniert aber leider auch nicht... wie sonst?

    Beitrag geaendert: 7.1.2007 15:25:17 von ct2004
  6. s********n

    Wieso mit Cookie und nicht mit Sessions???
    Und dann noch keine Verschlüsselung vorhanden!!!???

    Hast du schon mal gegoogelt?

    lg sebi
  7. Autor dieses Themas

    c****4

    ich bin totaler anfänger.. deswegen nciht mit verschlüsselung ohne sessions ich wollts halt einfahc mal mit cookies probieren, ja ich hab schon gegoogelt aber das php ahndbuch sowie sepfphp.de konnten mir nicht helfen... deswegen frage ich ja hier ;) also wie kann ich das cookie dann löschen? die methode die spacke vorschlug funktioniert auch nicht...
  8. s********n

    Also eine kleine Verschlüsselung einzubauen ist kein Problem! Das kannst auch noch am Schluss machen!

    Mach einmal bei setcookie den Abstand zu Klammer weg! Vielleicht ist das der Grund!!!

    Und falls du willst helf ich dir gerne bei den Sessions!

    lg sebi
  9. Autor dieses Themas

    c****4

    du willst einfach nicht das ich cookies nehm oder? ^^ :biggrin:

    mein plan ist es jetzt erstmal ein ganz einfach loginscript zu machen GANZ einfach... so wies jetzt halt schon fast ist... später möchte ich es etwas kopmlexere natur gestalten neben dem login soll eine checkbox angezeigt werden in der man auswählen kann "remember me" also mit cookie... mit sessions ist das kein problem das hab ch schon mal ausprobiert bei etwas anderem... aber ich hänge irgendwie bei diesen blöden cookies fest... hat jmd ne lsg für mich? bittöö ;)
  10. Also Sessions sind auf jeden Fall leichter zu handhaben, als Cookies.
    Schau dir doch vielleicht das hier mal an: http://php-einfach.de/tuts_php_login.php

    Außerdem solltest du dir angewöhnen bei allen Strings auch Anführungszeichen zu setzen. ;)
  11. Autor dieses Themas

    c****4

    wie meinst du das? meinst du " statt '?
    ich hab im handbuch gelesen, dass das besser ist da es nciht in den parser gelesen werden muss... oder was meisnt du? strings = text?

    achja der link ist sehr gut danke ich werde das später mal ausprobieren! aber der logut wird nicht erklärt... wie kann ich dieses blöde cookie löschen ich probier hier seit anderthalb stunden rumm -.-

    Beitrag geaendert: 7.1.2007 16:09:07 von ct2004

    Beitrag geaendert: 7.1.2007 16:09:24 von ct2004
  12. Ich meinte das eigentlich bezogen auf so Sachen wie $admin = matze; oder setcookie(login, time()+3600);. ;)
  13. Autor dieses Themas

    c****4

    achso gut ^^
    ja ok mach ich :-) danke ^^ :biggrin:
    so aber der cookie will nicht weg!? ich kann mich nur durch manuelles löschen von ihm trennen -.-
    wo werden cookies eigentlich gespeichert?
    Lasse ich sie mir mit meinem Firefox Browser anzeigen sind es sher viele u.a. auch meiner... gehe ich aber in das vrogesehene verzeichniss und Windows sind sehr viel weniger Cookies enthalten , auch meiner ist nicht dabei :-((
    C:\Dokumente und Einstellungen\[user]\Cookies
  14. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    achso gut ^^
    ja ok mach ich :-) danke ^^ :biggrin:
    so aber der cookie will nicht weg!? ich kann mich nur durch manuelles löschen von ihm trennen -.-
    wo werden cookies eigentlich gespeichert?
    Lasse ich sie mir mit meinem Firefox Browser anzeigen sind es sher viele u.a. auch meiner... gehe ich aber in das vrogesehene verzeichniss und Windows sind sehr viel weniger Cookies enthalten , auch meiner ist nicht dabei :-((


    FF speichert die Cookies dort:
    C:\Dokumente und Einstellungen\[user]\Anwendungsdaten\Mozilla\Firefox\Profiles\i2x1tks3.default\cookies.txt
    Also alle in einer einzigen *.txt-Datei.

    C:\Dokumente und Einstellungen\[user]\Cookies

    -> Dort speichert soweit ich weiß der IE die Cookies. Und zwar in vielen verschiedenen Dateien.
  15. Autor dieses Themas

    c****4

    ah gut danke!
    aber btt: Wielösch ich den cookie nu?
  16. Hi,


    ah gut danke!
    aber btt: Wielösch ich den cookie nu?


    Cookies kannst du löschen, indem du den Lebensdauer so einstellst, dass die Zeit schon vorbei ist:
    setCookie('name','',time() - 60);

    mfg,
    hr
  17. deine fehlermeldung kommt daher dass du, nachdem du <head><title> und sonstigem
    deinem script sagst er möge dir doch cookies anlegen. das macht er aber nur ohne zu meckern wenn du vor garnichts ausgegebn hast.

    problemlösung: du schreibst das mit den cookies noch vor <html>

    lg h-brand
  18. heavyraptor schrieb:
    Hi,


    ah gut danke!
    aber btt: Wielösch ich den cookie nu?


    Cookies kannst du löschen, indem du den Lebensdauer so einstellst, dass die Zeit schon vorbei ist:
    setCookie('name','',time() - 60);

    mfg,
    hr


    hatte ich eben vergessen. warum so kompliziert mit der haltbarkeit von den keksen?
    was hälst du von
    unlink ($_COOKIE['name']) ??
    viel bequemer und schöner ;)

    h-brand
  19. Autor dieses Themas

    c****4


    heavyraptor schrieb:
    Hi,


    ah gut danke!
    aber btt: Wielösch ich den cookie nu?


    Cookies kannst du löschen, indem du den Lebensdauer so einstellst, dass die Zeit schon vorbei ist:
    setCookie('name','',time() - 60);

    mfg,
    hr


    hatte ich eben vergessen. warum so kompliziert mit der haltbarkeit von den keksen?
    was hälst du von
    unlink ($_COOKIE['name']) ??
    viel bequemer und schöner ;)

    h-brand


    ähm unlink funktioniert aber doch eigentlich nur wenn sich die datei im selben ordner befindet?! deswegen kommt bei mir auch ein fehler...

    - - - - - - - - -

    so jetzt hab ich die logout.php nicht mehr includet, d.h. ich rufe sie nicht mehr mit index.php?site=logout auf sondern direkt...

    // logout.php
    <?PHP
    setcookie(login, time()-3600);
    echo "Erfolgreich ausgeloggt";
    ?>


    Jetzt werden zwar keine fehlermeldungen mehr angezeigt sondern wirklich nur "Erfolgreich ausgeloggt", es wird aber nicht ausgeloggt bzw der cookie bleibt erhalten -.-
    ich verzweifel langsam aber sicher wirklich noch... :(
    woran liegt das nu wieder? :-((
    matze
  20. mit unlink $variable löscht du die variable und damit den zugewiesenen Wert.
    Der Cookie wird nicht gelöscht da dass nur über den browser geht.
    lass dir mal den wert ausgeben der auf dem Cookie drauf steht.

    print_r($_COOKIE);

    siehe auch http://de3.php.net/manual/de/function.setcookie.php

    da stehen hilfreiche beispiele.

    h-brand
  21. Autor dieses Themas

    c****4

    Array ( [login] => 1168349263 ) Erfolgreich ausgeloggt

    den link kenn ich schon, mit hilfe dessen bin ich erst soweit gekommen ;)

    bei unlink komt aber folgender fehler:
    Warning: unlink(1168349263): No such file or directory in /srv/www/htdocs/web258/html/matze/php/ct2oo4/logout.php on line 2

    und im ahndbuch steht auch das mit unlink datein gelöscht werden

    http://de3.php.net/manual/de/function.unlink.php

    ????????????

    //->

    sooo jetzt hab ich den logout der login geht abe rnet mehr -.-

    login_check.php

    <?PHP
    $admin = matze;
    $pw = test;

    if ($username == $admin AND $password == $pw) {
    setcookie("login", "", time() + 3600);
    header("Location: index.php?site=is_numeric");
    }
    else { header('Location: index.php?site=no_login'); }

    ?>

    logout.php
    <?PHP
    setcookie ("login", "", time() - 3600);
    echo "Erfolgreich ausgeloggt";
    ?>

    sooo setze ich diesen string ein "" funktioniert der logout der login nicht, setze ich ihn nicht funktioniert der login der logout aber nicht?! woran leigt das nun wieder?

    Beitrag geaendert: 9.1.2007 16:22:35 von ct2004

    //-> HEY! Ich habs!!! Kraeusi von chattrix hat mir geholfen :-))

    und zwar siehts jetzt folgerndermaßen aus:

    <?PHP

    $name_des_cookies_1 = 'login';
    $inhalt = '';
    $verfallsdatum = time() - 3600;

    setcookie(
    $name_des_cookies_1,
    $inhalt,
    $verfallsdatum
    );

    echo "Erfolgreich ausgeloggt";

    ?>

    Danke an alle die mir verscuht haben mir zu helfen! danke! :thumb:

    Beitrag geaendert: 9.1.2007 16:52:37 von ct2004
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!