tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
916
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    SeeSharpNewBee SeeSharpNewBee ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    200
    Hi,

    ich weiß, das thema war hier sicher schon hundert mal oder so, ich hab auch ca. 30 beiträge gelesen, jedoch hat keiner davon mein problem gelöst, und das ist folgendes:

    ich setze cookies:

    PHP-Code:
    <?
        setcookie
    ('login[user]'$usrtime() + (3600*24*31)) or die ("cookie error");
        
    setcookie('login[pass]'$passtime() + (3600*24*31)) or die ("cookie error");
    ?>
    und möchte sie wenn der user die seite wieder aufmacht/neu lädt/sonstiges die cookies wieder ausgelesen werden, doch das funktioniert bei mir nicht. Cookies werden akzepiert und korrekt geschrieben.

    cookies auslesen:
    PHP-Code:
    <?PHP
    error_reporting
    (E_ALL);

    if(isset(
    $_COOKIE['login'])) 
    {    
        echo 
    "Hallo ".$_COOKIE['login']."!";
    }
    else
    {
        echo 
    "Willkommen, bitte loggen Sie sich ein!";
    }

    ?>
    oder muss das auch geschehen bevor header infos gesendet werden? Danke
     
    MFG SeeSharpNewBee

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Wenn Du die Cookies login[user] und login[pass] setzt, dann solltest Du auch diese auslesen und nicht den Cookie login.
    Die Rueckmeldung von setcookie() sagt uebrigens nichts darueber aus ob der Cookie nun gesetzt wurde oder nicht. Deine "or die()"-Konstrukte kannst Du Dir also absolut schenken.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Noch ein Sicherheitshinweis: Ein Passwort – egal in welcher Form –sollte nie in einem Cookie gespeichert werden. Prinzipiell sollten Cookies nicht anhand ihrer Daten mit einem Benutzer in Verbindung gebracht werden können. Daher sollte auch der Benutzername dort nicht gespeichert werden.
     
    Markus Wulftange

  4. #4
    SeeSharpNewBee SeeSharpNewBee ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    200
    Ok, das hab ich jetzt geändert in:

    PHP-Code:
    <?
        
    if(setcookie('login[user]'$usrtime() + (3600*24*31)) && setcookie('login[pass]'$passtime() + (3600*24*31)))
        {
            echo 
    "Cookies wurden gestzt";
        }
    ?>
    das hatt aber immer noch nichts gebracht, ich hab schon mehrere tuts gelesen und mit google gesucht, und überall komm ich nur zu der "konstruktion" die ich hier habe, damit meine ich nicht die "or die" sondern den rest, und es will einfach nicht funktionieren.
     
    MFG SeeSharpNewBee

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Vielleicht solltest du ein paar mehr Attribute des Cookies setzen (vgl. Parameter der setcookie()-Funktion).
     
    Markus Wulftange

  6. #6
    SeeSharpNewBee SeeSharpNewBee ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    200
    Wegen dem passwort, das wird md5 verschlüsselt, aber wenn ich so überlege, brauch ich eigentlich nur den benutzernamen! Trotzdem funktioniert das nicht, warum, waaaaaaaaa, ich werd wahnsinnig!
     
    MFG SeeSharpNewBee

  7. #7
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Falls dein Webserver ein Apache-Webserver ist, prüfe mal, welche Werte die apache_response_headers()-Funktion – also die tatsächlich gesetzten Header-Felder – zurückgibt. Darunter sollten sich auch die beiden Cookies befinden. Weitergehend solltest du prüfen, ob dein Browser die Cookies überhaupt akzeptiert und speichert.
     
    Markus Wulftange

  8. #8
    SeeSharpNewBee SeeSharpNewBee ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    200
    Diese funktin hat folgendes zurückgegeben:

    PHP-Code:
    Array ( [X-Powered-By] => PHP/5.1.1 Accept: */* 
    Accept-Language: de-at 
    Accept-Encoding: gzip, deflate 
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322) 
    Host: localhost 
    Connection: Keep-Alive 
    Cookie: PHPSESSID=e41afb7155dc4649d7f2530b5c27d282 
    damit kann ich aber nichts anfangen. Wegen, ob überhaupt erstellt werden bzw. akzeptiert werden, das hab ich schon überprüft, sie werden exakt erstellt und werden auch akzeptiert.

    Ich teste das ganze mit xampp, wenn das hilft. Danke
     
    MFG SeeSharpNewBee

  9. #9
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Probier mal Folgendes:
    PHP-Code:
    <?php

        ini_set
    ('display_errors'true);
        
    error_reporting(E_ALL);

        
    var_dumpsetcookie('foo''bar'time()+3600*24*31'/''.'.$_SERVER['SERVER_NAME']) );

    ?>
    Das var_dump() ist dabei nur zu Testzwecken.
     
    Markus Wulftange

  10. #10
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Nur mal so nebenbei: MD5 ist ein Hash, keine Verschluesselung. Und wenn Du schon Passworte hashst schlage ich vor, dass Du besser SHA1 nutzt, da dieser einen laengeren Hash erzeugt und somit die Chance von Kollisionen geringer ist.
    Weiterhin ist auch sowas wie
    PHP-Code:
    if(setcookie('login[user]'$usrtime() + (3600*24*31))) 
    ueberfluessig, denn solange setcookie() ausgefuehrt werden kann gibt es true zurueck.
    Zitat Zitat von php.net
    If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.
    Probier doch mal folgendes Script:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    if (isset(
    $_GET['check']))
        {
            if (isset(
    $_COOKIE['testcookie']))
                {
                    
    setcookie('testcookie','test',time()-3600);
                    echo 
    'Cookie gesetzt';
                }
            else
                {
                    echo 
    'Cookie nicht gesetzt';
                }
        }
    else
        {
            
    setcookie('testcookie','test',time()+3600);
            
    header('Location: cookietest.php?check=1');
        }
    ?>
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  11. #11
    SeeSharpNewBee SeeSharpNewBee ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    200
    Hi,

    danke für dein script, der cookie wird wie erwartet erstellt, nur lesen kann ich ihn nicht mehr.

    Vielleicht liegts ja auch an meiner methode in auszulesen?

    PHP-Code:
    echo $_COOKIE['testcookie']; 
    Danke!
     
    MFG SeeSharpNewBee

  12. #12
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Hast du meinen Vorschlag zur Spezifizierung der Attribute schon ausprobiert?
     
    Markus Wulftange

  13. #13
    SeeSharpNewBee SeeSharpNewBee ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    200
    @Gumbo:

    meinst du?
    PHP-Code:
    <?php

        ini_set
    ('display_errors'true);
        
    error_reporting(E_ALL);

        
    var_dumpsetcookie('foo''bar'time()+3600*24*31'/''.'.$_SERVER['SERVER_NAME']) );

    ?>
    das hat "bool(true)" ausgegeben. Und die hilfestellung zu den attributen von cookies hab ich auch schon gelesen, hab jedoch alle (für mich relevanten?) angaben beim erstellen des/der cookies gemacht, glaube ich...
     
    MFG SeeSharpNewBee

  14. #14
    SeeSharpNewBee SeeSharpNewBee ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    200
    Ich komm bei dem problem einfach nicht weiter, ich hab mittlerweile auch schon alles ausprobiert, aber nichts hat geholfen. Könnte sich bitte jemand meine scripts ansehen, ich hab sie an den post angehängt, danke!
    Angehängte Dateien Angehängte Dateien
    Geändert von SeeSharpNewBee (02.04.06 um 18:16 Uhr)
     
    MFG SeeSharpNewBee

  15. #15
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Ich guck mir grad mal Deinen Code an und finde das hier:
    Code php:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    <?php
        echo "<form action='vaild_user.php' target='mainframe' method='POST'><br><br><br><br><br><br>
                <fieldset align='center' id='login'>
                    <table align='center'>
                        <tr>
                            <td><label for='benutzername'>Benutzername:</label></td>
                            <td><input type='text' name='benutzername' size='40' /></td>
                        </tr>
                        <tr>
                            <td><label for='passwort'>Passwort:</label></td>
                            <td><input type='password' name='passwort' size='40' /></td>
                        </tr>
                    </table>
                    <table align='center'>
                        <tr>
                            <td><input type='submit' value='       login       '></td>
                            <td></td>
                            <td><input type='checkbox' name='stay_logged' value='1' />angemeldet bleiben?</td>
                        </tr>
                    </table>
                    <table align='center' id='login'>
                        <tr>
                            <td>Passwort<a href='get_new_pw.php' target='mainframe'> vergessen</a>?</td>
                        </tr>
                    </table>
                </fieldset>";
    ?>
    Welchen Sinn hat das bitte? Diese Seite haettest Du doch ohne weiteres als reine HTML-Seite bauen koennen.

    Naja, ich schau mal weiter.
    Uebrigens, halte Dich bitte an Gross- und Kleinschreibung.

    So, mal ein paar Beobachtungen:
    • Dein Formular ruft eine nicht-existente Datei auf.
      [htm]
      <form action='valid_user.php' target='mainframe' method='POST'><br><br><br><br><br><br>
      [/html]
    • Wenn ich einen Usernamen errate aber ein falsches Passwort eingebe wird mir der Hash des richtigen ausgegeben. Was zum Teufel soll das?
      PHP-Code:
      echo "Bitte überprüfen Sie das eingegebene Passwort!\n<br><br><br>";
      echo 
      "Übergebenes Passwort: ".$pass."<br><br><br>";
      echo 
      "Datenbank Passwort: ".$g_pass
    • Du schreibst als Wert des Cookies den String $usr. Nach der Anmeldung wird man dementsprechend mit Hallo $usr! gegruesst.
      PHP-Code:
      setcookie('login','$usr',time() + (3600*24*31)); 
    Dein Cookie wird bei mir uebrigens problemlos gesetzt und wieder gelesen. Mit welchem Browser hast Du getestet? Schonmal einen anderen probiert?
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

Ähnliche Themen

  1. Von Festplatte kann nicht mehr gelesen werden
    Von Iherp im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 21.03.10, 15:18
  2. PHP-Dateien werden nicht gelesen ! ! !
    Von Grunge im Forum PHP
    Antworten: 6
    Letzter Beitrag: 30.06.08, 14:18
  3. schriften können nicht gelesen werden
    Von darKuser im Forum Photoshop
    Antworten: 2
    Letzter Beitrag: 21.05.07, 11:38
  4. IP-Konfiguration konnte nicht gelesen werden.
    Von server im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 27.08.06, 12:39
  5. Binärformat kann nicht gelesen werden
    Von grischan im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 04.11.05, 13:39