kostenloser Webspace werbefrei: lima-city


Problem mit Sessions

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nesciturus

    nesciturus hat kostenlosen Webspace.

    Moin moin!
    Ich habe ein Login-Script programmiert, das bestimme Variablen ?ber Sessions weitergibt. Nur da wo was hinsollte, kommt nix an. Da ich erst seit ein paar Tagen mit Sessions arbeiten kann, somit noch "Pionier" bin und ich vergeblich im Web nach L?sungen gesucht hab, bitte euch mir zu helfen. Unten sind 2 Scripts, das eine das den Loginvorgang ?berpr?ft und die Session startet, das andere wo theoretisch die Sessionvariablen ankommen sollten.

    login_friend.php (?berpr?fung des Logins:
    session_start(); 
       
    include ("connect_db.php"); 
       
    $anfrage="SELECT * FROM users WHERE (user_nick LIKE '".$_POST["name"]."') AND (user_psswd = '".md5 ($_POST["pass"])."')";  
    
    $ergebnis=mysql_query($anfrage);     
    echo mysql_error();    
    
    if (mysql_num_rows ($ergebnis) > 0)  
    {    
    $data = mysql_fetch_array ($anfrage);
    
    $_SESSION["user_id"] 	= $data["user_id"];  
    $_SESSION["user_psswd"] = $data["user_psswd"]; 
    $_SESSION["user_nick"]	= $data["user_nick"];  
    
    header ("Location: bla.php?=SID");    
    }
    else
    {   
    header("Location: form.php?error=Eingaben incorrekt");  
    }


    bla.php (Da sollten die Sessionvariablen ankommen):
    include("connect_db.php");   
     
    session_start();    
    
    echo "Hallo".$_SESSION['user_nick'];


    Danke im Vorraus
    LG nesciturus

    Beitrag ge?ndert am 23.12.2005 00:23 von nesciturus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Huhu,

    also ich sch?tze mal da fehlt die while-Schleife

    $data = mysql_fetch_array ($anfrage);
    
    
    
    $_SESSION["user_id"]     = $data["user_id"];  
    
    $_SESSION["user_psswd"] = $data["user_psswd"]; 
    
    $_SESSION["user_nick"]    = $data["user_nick"];



    durch den zu ersetzen

    while ($data = mysql_fetch_array ($anfrage))
    {
    $_SESSION["user_id"]     = $data["user_id"];  
    
    $_SESSION["user_psswd"] = $data["user_psswd"]; 
    
    $_SESSION["user_nick"]    = $data["user_nick"]; 
    }
  4. Autor dieses Themas

    nesciturus

    nesciturus hat kostenlosen Webspace.

    @neo
    Lieb das du mir helfen wolltest. Aber ich verstehe nicht ganz den Sinn der Schleife! Die Besagt ja, dass "solange $data=mysql_fetch_array($result); ... tue dies und das". Was hat das mit der ?bertragung der Session-Variablen zu tun? Vll verstehe ich dich auch nur falsch...
  5. r*****r

    $_SESSION["user_nick"] = $data["user_nick"];


    kann es sein, das $data gar nicht existiert?
  6. Check doch erstmal was ?berhaupt in der Variablen ist und poste das hier mal

    echo $data;


    Beitrag ge?ndert am 23.12.2005 01:29 von neo1000
  7. n********r

    und dann w?rde ich in deiner DB Abfrage nicht LIKE schreiben ist zu unsicher mache ein = raus.

    Du hast den Code von tutorials.de und in diesem Code gibt es einen Fehler mache es mal so:

    $anfrage="SELECT user_nick, user_psswd, user_id FROM users WHERE user_nick = '".$_POST["name"]."' AND user_psswd = '".$_POST["pass"]."')";


    Beitrag ge?ndert am 23.12.2005 04:42 von newwarrior

    Beitrag ge?ndert am 23.12.2005 04:43 von newwarrior
  8. Autor dieses Themas

    nesciturus

    nesciturus hat kostenlosen Webspace.



    neo1000 schrieb:
    Check doch erstmal was ?berhaupt in der Variablen ist und poste das hier mal

    echo $data;


    Da kommt gar nix....


    newwarrior schrieb:
    und dann w?rde ich in deiner DB Abfrage nicht LIKE schreiben ist zu unsicher mache ein = raus.

    Du hast den Code von tutorials.de und in diesem Code gibt es einen Fehler mache es mal so:

    $anfrage='SELECT user_nick, user_psswd, user_id FROM users WHERE user_nick = ''.$_POST['name'].'' AND user_psswd = ''.$_POST['pass'].'')';


    Hab ich probiert, aber es kommt da nur einen Fehlermeldung, dass das angeforderte Script nicht verf?gbar ist (Error 404).
  9. Autor dieses Themas

    nesciturus

    nesciturus hat kostenlosen Webspace.

    Ich weis nicht genau, aber ich hab die Vermutung, dass die Session gar net ?bergeben wird. Cookies hab ich aktiviert, kommt aber trotzdem nix an.

    Wie kann ich die Session-ID via Link ?bergeben???
  10. Wie kann ich die Session-ID via Link ?bergeben???


    <a href="<?php echo $PHP_SELF; ?>">Link</a>

    Versuchs mal so, dann m?sste die Session-ID automatisch angeh?ngt werden.

    Beitrag ge?ndert am 23.12.2005 10:49 von ou
  11. So weil mir dein Script keine Ruhe gelassen hat, habe ich mich hingesetzt es vereinfacht und das Problem gel?st.

    login.php

    session_start(); 
    
    include ("connect_db.php");
    
    $anfrage="SELECT * FROM users WHERE user_nick LIKE '".$_POST["name"]."' AND user_psswd = '".md5 ($_POST["pass"])."'";  
    $ergebnis=mysql_query($anfrage) or die (mysql_error());     
    $abfrage = mysql_fetch_object($ergebnis);
    
    $password = md5($_POST["pass"]);
    
    if ($abfrage->user_psswd==$password)
    	{    
    
    	$data = $abfrage or die(mysql_error());
    	
    	
    	$_SESSION["user_id"] = $data->user_id;  
    	
    	$_SESSION["user_psswd"] = $data->user_psswd; 
    	
    	$_SESSION["user_nick"]  = $data->user_nick;  
    	
    	header ("Location: hello.php?=SID");    
    	
    	}
    
    else
    
    {   
    
    header("Location: form.php?error=Eingaben incorrekt");  
    
    }


    login.html

    <form action="login2.php" method="post">
    Dein Username:<br>
    <input type="text" size="24" maxlength="50"
    name="name"><br><br>
    
    Dein Passwort:<br>
    <input type="password" size="24" maxlength="50"
    name="pass"><br>
    
    <input type="submit" value="Login">
    </form>


    hello.php

    include("connect_db.php");   
    
    session_start();    
    
    echo "Hallo ".$_SESSION['user_nick'];


    Beitrag ge?ndert am 23.12.2005 12:31 von neo1000
  12. Autor dieses Themas

    nesciturus

    nesciturus hat kostenlosen Webspace.

    Ein Dank an Neo1000!
    Es klappt, danke!

    Nur noch eine Frage: das ganze basiert nun ja auf cookies. Wie kann es schaffen, dass auch, wenn keine Cookies angenommen werden, die Session-ID ?bertragen wird? Ich weis, dass man die ID an den URL anh?ngt, aber wie das genau geht, hab ich nie kapiert!
  13. Autor dieses Themas

    nesciturus

    nesciturus hat kostenlosen Webspace.

    Also was ich meinte:
    bei dem da
    header ("Location: hello.php?=SID");
    sollte theoretisch die Session-ID (in der ungef?hren Gestalt von dem: V0cf18ce30575c86194392be38991) zu sehen sein. Soweit die Theorie. Die Praxis sieht so aus: hello.php?=SID Was ist daran das Problem(-chen)??
  14. k**********e

    header("Location: hello.php?" . SID);

    w?re richtig.
    SID ist nur gesetzt, wenn kein cookie gesetzt wurde (zB weil der user keine annimmt)

    na ja, net ganz... SID enth?lt einen strig aus "name=sess_id" oder "" wenn ein cookie mit diesen infos vorhanden ist

    Beitrag ge?ndert am 23.12.2005 21:18 von kirschbluete
  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!