kostenloser Webspace werbefrei: lima-city


problem mit cookies

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    Hallo leute

    ich möchte gerne eine Wiederkerfunktion schreiben, habe aber ein kleines Problem...

    Das Folgende Script steht vor jeglicher ausgabe, also liegt es schonmal nicht daran, aber der cookie username bzw. passwort wird nicht erstellt oder ist leer...

    if($_GET['ct'] == "login")
    {
    if($_POST['merken'] == "merken")
    {
    if($username != "" OR $passwort != "")
    {
    $abfragesetc = "SELECT * FROM rsbenutzer WHERE username LIKE '$username' LIMIT 1"; 
    $ergebnissetc = mysql_query($abfragesetc); 
    $rowsetc = mysql_fetch_object($ergebnissetc);
    if($rowsetc->gesperrt != "ON")
    {
    $username = $rowsetc->username;
    setcookie("username",$username,time()+(3600*24));
    setcookie("passwort",$passwortmd5,time()+(3600*24));
    }
    }
    }
    }
    elseif($_GET['ct'] == "logout")
    {
    setcookie("username","",time() - 3600);
    setcookie("passwort","",time() - 3600);
    }


    Wäre nett, wenn mir jemand helfen könnte...

    Gruß
    Technofan


    Beitrag geändert: 1.11.2007 10:26:33 von technofan
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. e********l

    Und wo liest du das Cookie wieder aus? Ich seh da nur wie es gesetzt wird und gelöscht wird. Generell empfehle ich nicht für alles ein extra Cookie zu nehmen. Schreib dir lieber ein Objekt das du serialisiert und dann kodiert im Cookie speicherst.
  4. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    ja, das Auslesen klapt, hab ich mit der fertigen Variante, also ohne schleifen getestet.
    darum geht es sich aber nicht, der coockie wird garnet erst gesetzt.
    und das seriali dingsbums, was du da erwähnst is meines erachtens net nötig... will ja einfach nur, dass man automatisch wieder eingelogt ist, mehr net.
  5. Die Variable $passwortmd5, die du in Zeile 14 in den Cookie schreiben willst, ist nicht definiert. Außerdem wird in deinem Script nirgens überprüft, ob das eingegebene Passwort korrekt ist. Du wirst erst $passwort in MD5 umwandeln müssen, das dann mit dem in der gespeicherten Hash vergleichen und dann das richtige Passwort als Hash in den Cookie schreiben.

    Außerdem ist dein Script sehr anfällig gegenüber SQL-Injections, nur so am Rande. ;)
    http://de.wikipedia.org/wiki/SQL-Injektion
    Das was der Benutzer eingibt, wird direkt als Teil eines SQL-Befehls an die Datenbank gesendet. Da solltest du dir noch was überlegen.
  6. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    if($_POST['merken'] != "")
    {
    $abfragesetc = "SELECT * FROM rsbenutzer WHERE username LIKE '".$_POST['username']."' LIMIT 1"; 
    $ergebnissetc = mysql_query($abfragesetc); 
    $rowsetc = mysql_fetch_object($ergebnissetc);
    if($rowsetc->gesperrt != "ON")
    {
    
    $user = $_POST['username']; 
    $pw = $_POST['password'];
    $pwmd5 = md5($pw);
    
    if($rowsetc->passwort == $pwmd5)
    {
    setcookie("username",$user,time()+(3600*24));
    setcookie("passwort",$pwmd5,time()+(3600*24));
    }
    }
    else
    {
    setcookie("username","",time() - 3600);
    setcookie("passwort","",time() - 3600);
    }
    }


    so, habs nochmal kompletiert...

    Injektionen = Unm&#246;glich, weil nur ausgelesen wird und net eingetragen. <.<
  7. e********l

    Vielleicht verweigert einfach dein Browser Cookies. Hast das schonmal &#252;berpr&#252;ft?

    @serialisierung: Naja, man hat damit eigentlich nur Vorteile. ;) Und ich w&#252;rd den ganzen Cookie Set /Unset Krams in eine Login/Logout Funktion packen. Das ist wesentlich &#252;bersichtlicher

    // code der immer ausgef&#252;hrt wird
    ...
    // handle login, if requested
    if ($act == 'login') {
    	login();	
    }
    
    if ($act == 'logout') {
    	logout();
    }
    ...
    if (Cookie::exists('meincookie') && !isset($_SESSION['user'])) {	// Member logged in via cookie ^_^
    	$cookie = new Cookie('meincookie');
    	$cookie->load();
    	// display this users homesite if his cookie is valid
    	$cookieUser = $cookie->getValue();
    	$meinUser = new MeinUser($cookieUser->id);
    	$meinUser->load();
    	$meinUser->setIsLoggedIn(true);
    	
    	$sessionUser = new SessionUser();
    	$sessionUser->id		= $meinUser->getID();
    	$sessionUser->email		= $meinUser->getEMail();
    	$sessionUser->name		= $meinUser->getName();
    	$sessionUser->status	= $meinUser->getStatus();
    	$sessionUser->loggedIn	= $meinUser->isLoggedIn();
    	
    	$user = $sessionUser;
    } else if (isset($_SESSION['user'])) {	// Member logged in via session id
    	// when this is a MeinUser, then replace it with SessionUser	
    	$user = unserialize($_SESSION['user']);
    		
    	if (is_a($user,'MeinUser')) { // TODO: improve this!!!
    		$sessionUser = new SessionUser();
    		$sessionUser->id		= $user->getID();
    		$sessionUser->email		= $user->getEMail();
    		$sessionUser->name		= $user->getName();
    		$sessionUser->status	= $user->getStatus();
    		$sessionUser->loggedIn	= $user->isLoggedIn();
    		$user = $sessionUser;
    	}
    } else {	// It's a guest!
    	// Hier den Krams f&#252;r g&#228;ste handhaben
    }


    So etwa sieht das in einem Projekt aus an dem ich derzeit arbeite. Die KLassen sind simpel aufgebaut und dienen nur als Datencontainer.

    In Login wird jenachdem was beim Login angegeben wurde ein COokie erstellt bzw ein Session Objekt. Ganz simpel ;)
  8. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    also, so wie du das machst, geht das bei mir net, weil bei mir alles in den content includet wird, ich kann also keine extradatei machen, und so wie du des machst ist es auch zu kompliziert finde ich... warum so viel Aufwand, wenns auch k&#252;rzer geht... aber zu allem &#220;berfluss musste ich gerade feststellen, dass der IE nicht in der Lage ist eine Session zu speichern... er logt sich kurz ein, und sobald man iwo draufklickt, ist man wieder ausgelogt, ist aber nur beim IE so
  9. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    ok, ich hab die L&#246;sung beider Probleme...

    Leute, ich sach euch eins... geht Nie zu United Domains nie im Leben!!!!!!!!!!!!!!!!!

    Die Weiterleitung von denen ist sowas von derma&#223;en bescheuert, das glaubt ihr net, nur der Frame macht das, was man will, aber wer will schon ne Frameweiterleitung? XD

    ich habe mich bei mir mit dem IE auf www.x-musik.com einmal mit der Domain von United Domains eingelogt und einmal mit der eigentlichen Domain von mit... mit UD gings nur 2 Sekunden und mit meiner eigenen gings ganze... ja, unendlich eben. XD
    genau das gleiche mit dem Cookies... ohne UD gings und mit nicht
    oder gibt's bei UD ne Einstellung??? weil meine Besucher haben auch ca. alle 5 sec ne andere IP. XD
  10. e********l


    also, so wie du das machst, geht das bei mir net, weil bei mir alles in den content includet wird, ich kann also keine extradatei machen, und so wie du des machst ist es auch zu kompliziert finde ich... warum so viel Aufwand, wenns auch k&#252;rzer geht... aber zu allem &#220;berfluss musste ich gerade feststellen, dass der IE nicht in der Lage ist eine Session zu speichern... er logt sich kurz ein, und sobald man iwo draufklickt, ist man wieder ausgelogt, ist aber nur beim IE so


    Naja, mag kompliziert sein, aber ich brauch das auch an sehr vielen Stellen. Die Datei in der das steht wird am Anfang eingebunden und liest noch so einiges anderes aus. Konfig Datei, Templates, etc ;)
  11. s***h


    ok, ich hab die L&#246;sung beider Probleme...

    Leute, ich sach euch eins... geht Nie zu United Domains nie im Leben!!!!!!!!!!!!!!!!!

    Die Weiterleitung von denen ist sowas von derma&#223;en bescheuert, das glaubt ihr net, nur der Frame macht das, was man will, aber wer will schon ne Frameweiterleitung? XD

    ich habe mich bei mir mit dem IE auf www.x-musik.com einmal mit der Domain von United Domains eingelogt und einmal mit der eigentlichen Domain von mit... mit UD gings nur 2 Sekunden und mit meiner eigenen gings ganze... ja, unendlich eben. XD
    genau das gleiche mit dem Cookies... ohne UD gings und mit nicht
    oder gibt's bei UD ne Einstellung??? weil meine Besucher haben auch ca. alle 5 sec ne andere IP. XD



    Ich bin bei United-Domains und bei mir funktioniert alles einwandfrei. Da k&#246;nnen die Jungs von United Domains doch nichts daf&#252;r, wenn du deine Seite mit einem Frame weiterleiten l&#228;sst? Bei United Domains hat man 3 oder 5 Weiterleitungsarten zur Auswahl!! ;)
  12. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.


    Ich bin bei United-Domains und bei mir funktioniert alles einwandfrei. Da k&#246;nnen die Jungs von United Domains doch nichts daf&#252;r, wenn du deine Seite mit einem Frame weiterleiten l&#228;sst? Bei United Domains hat man 3 oder 5 Weiterleitungsarten zur Auswahl!! ;)


    Ich lasse meine Seite eben nicht via Frame weiterleiten, sondern via Header. x.x
    und meine Besucher haben alle 5 sec ne neue IP, was wiederum bewirkt, dass die cookies zwar gesetzt werden, aber dann nicht mehr gefunden werden k&#246;nnen, weil: andere IP ... Uploads sind genau so unm&#246;glich, da der Request nicht stabiel gesendet werden kann

    evil-devil schrieb:
    Naja, mag kompliziert sein, aber ich brauch das auch an sehr vielen Stellen. Die Datei in der das steht wird am Anfang eingebunden und liest noch so einiges anderes aus. Konfig Datei, Templates, etc ;)


    Ja siehste, dann ist das ja f&#252;r mich &#252;berfl&#252;ssig ^^ ich hab auch eine Datei, die f&#252;r Jede Kategorie Eintragungen Vornimmt (Forum: Neues Thema, Antworten, Editiren, beitr&#228;ge l&#246;schen, themen l&#246;schen... G&#228;stebuch: Eintrag schreiben, Eintrag kommentieren, Eintrag l&#246;schen... und s&#228;mtliches halt) und das alles mit 4 Funktionen, die sich der jeweiligen Kategorie anpassen. ^^
  13. s***h



    Ich lasse meine Seite eben nicht via Frame weiterleiten, sondern via Header. x.x
    und meine Besucher haben alle 5 sec ne neue IP, was wiederum bewirkt, dass die cookies zwar gesetzt werden, aber dann nicht mehr gefunden werden k&#246;nnen, weil: andere IP ... Uploads sind genau so unm&#246;glich, da der Request nicht stabiel gesendet werden kann



    Dann mach doch mal per DNS-Control. So mach ich das und hatte damit noch nie Probleme. Das ist sowieso die beste Variante ;)
  14. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    Tja, wenns das bei United-Domains gibt, versuch ich das mal
  15. 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!