Ankündigung

Einklappen
Keine Ankündigung bisher.

probleme mit session

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema probleme mit session.

    probleme mit session

    Hi,

    ich will euch ganz bestimmt nicht mit einem findet-de-Fehler-Threat nerven, aber langsam verzweifle ich.

    Ich wollte mit der Sessionfunktion ein Memberbereich schreiben, aber irgendwie hab ich probleme damit.

    Code:
    <?
    session_start();
    include 'sessionhelpers.inc.php';
    if (isset($_POST['login']))
    {
    	$userid=check_user($_POST['username'], $_POST['userpass']);
    	if ($userid!=false)
    		login($userid);
    	else
    		echo 'Ihre Anmeldung war nicht korrekt!';
    }
    if (!logged_in())
    	echo '<form method="post" action="login.php"> 
    
    Benutzername: <input type="password" name="username"> </p> 
    
    Passwort: <input type="password" name="userpass" id="userpass"> </p> 
    
     <input name="login" type="submit" id="login" value="Einloggen"> </p> </form>';
    else
    	echo 'Ausloggen';
    echo '
    
    Check';
    ?>
    ich denke es liegt an "session_start()"... jedenfalls wird das mir jedesmal als fehlermeldung rausgeschmissen.

    Gibt es irgendwas, was man beachten muss, was ich nicht beachtet hab?

    Schon mal danke im vorraus.

  • Gast-Avatar
    Ein Gast antwortete
    Sooo jetzt geht es...

    das eigentlich Script hat schon bis auf ein paar kleine schönheitsfehler geklappt, nur funktioniert es irgendwie nicht auf meinem PC...

    Also vielen Dank @kuke

    Jetzt muss ich nur noch schaun, wie ich es an meinem PC zu laufen bekomm, weil ich hab keine Lust bei jedem Test, die Daten auf den Server hochzuladen...

    Kann mir noch jemand beantworten, ob das Forum phpBB nur mit Cookies arbeitet oder sowohl mit cookies als auch mit session

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hejsan,


    keine ahnung, kenne es nicht, bzw. habe es noch nicht ausprobiert. werde ich aber mal machen.

    Grüße

    Jan

    PS: wie läuft deine session-sache?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Wenn ich mal erwähnen darf, die Funktionen session*register sind veraltet, man sollte nur noch mit $_SESSION arbeiten.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wie ist es eigentlich beim Forum phpBB

    arbeitet des mit session und mit cookies oder nur mit cookies?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hejsan,

    nana, weiter probieren, es muss gehen, ansonsten liegt es an deinen lokalen einstellungen. lade es mal auf einen anderen webserver, du wirst sehen es geht. dann musst du nur noch deine eistellungen ändern. dat geit!

    cookies sind auch sehr bequem. problem ist, dass user es unter "internetoptionen" deaktivieren, bzw. einschränken können und du dann wieder auf sessions umsteigen müsstest. es kommt auf deine user an, manchmal machen cookies auch sinn. kannst es deinen usern ja aufzwängen. ich finde sessions aber besser.

    viel glück...

    Kerrin

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    naja funktioniert noch nicht so ganz 100%
    aber jetzt hab ich keinen nerv mehr dazu...

    ich mach dann Morgen weiter.

    Was ist denn eigentlich genau der Nachteil von Cookies?
    Ich würde das fast sogar bevorzugen, dann das mit der Session dann sein lassen

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hab auch gesehen, dass ich noch einige Tippfehler hab

    aber wenn ich mein Script auf einen Internetserver lade, hängt er sich nicht da auf, wie bei mir am Rechner, sondern macht weiter.

    Nur muss ich jetzt noch die übrigen Fehler ausmerzen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hier mal der code:

    Login:

    Code:
    <form action="sessionHelpers.php" method="post">
    <input type="text" size="10" maxlength="20" name="username">
     <input type="password" size="10" maxlength="20" name="userpass">
    <input type="submit" value="Login">
    dann kommen deine Dateien mit meinen zusaätzen:

    Code:
    <?php
    session_start();
    $user = $_POST['username'];
    $userpw = $_POST['userpass'];
    session_register('user');
    session_register('userpw');
    include 'sessionhelpers.inc.php';
    $sID = session_id();
    echo "$user
    ";
    echo "$sID";
    ?>
    
    <?php
    
    if (isset($_POST['login']))
    {
       $userid=check_user($_POST['username'], $_POST['userpass']);
       if ($userid!=false)
          login($userid);
       else
          echo 'Ihre Anmeldung war nicht korrekt!';
    }
    if (!logged_in())
       echo '<form method="post" action="login.php"> 
    
    Benutzername: <input type="password" name="username"> </p> 
    
    Passwort: <input type="password" name="userpass" id="userpass"> </p> 
    
     <input name="login" type="submit" id="login" value="Einloggen"> </p> </form>';
    else
       echo 'Ausloggen';
    echo '
    
    Check';
    ?>
    ... von mir etwas geändert. dann kommt die "include"-datei:

    Code:
    function connect()
    {
       $con=mysql_connect() or
    die (mysql_error);
       mysql_select_db('datenbank', $con) or
    die(mysql_erreo());
    }
    
    function check_user($name, $pass)
    {
       $sql="SELECT UserId
          FROM users
          WHERE UserName='$name' AND UserPass=MD5('$pass')
          LIMIT 1";
          $result=mysql_query($sql) or die (mysql_error());
          if (mysql_num_rows($result)==1)
          {
             $user=mysql_fetch_assoc($result);
             return $user['UserId'];
          }
          else
             return false;
    }
    
    function login($userid)
    {
          $sql= "UPDATE users
          SET UserSession='session_id()'
          WHERE UserID= '$userid';
          mysql_query($sql);";
    }
    
    function logged_in()
    {
       $sql="SELECT UserId
       FROM users
       WHERE UserSession='".session_id()."'
       LIMIT 1";
       $result=mysql_query($sql);
          return (mysql_num_rows($result)==1);
    }
    
    function logout()
    {
       $sql="UPDATE users
       SET UserSession=NULL
       WHERE UserSession='".session_id."'";
       mysql_query($sql);
    }
    
    //connect();
    ?>
    Auch hier habe ich einiges weggenommen, wie Klammern etc, wo ich Fehlermeldungen bekommen habe??? However, so solltest du die session_id angezeigt bekommen. Übrigens wie session_id(); kannst du dir auch den Namen der session anzeigen lassen mit session_name(); unter dem namen wird die sessionquasi gespecihert- unterschliedlich auf verschiedenen betriebssystemen. kannst ja mal verscuhen...

    gruß

    kerrin

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Mein code:

    Code:
    <form action="AuthMenu.php" method="post">
    
    <input type="text" size="10" maxlength="20" name="userid"> 
    <input type="password" size="10" maxlength="20" name="passwort">
    <input type="submit" value="Login">
    </form>
    im skript zur Authentifizierung:

    Code:
    <?php
    //include("function_session.php");
    session_start();
    $USER = $_POST['userid'];
    session_register('USER');
    ?>
    
    bei mir funktioniert es. hast du keinen service provider, wo du die skripte testen kannst? dann wüsstest du, dass es an deinen lokalen einstellungen liegt. ich werde es mal bei uns in der firma testen. melde mich gleich wieder...
    
    
    grüße
    
    Kerrin

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    nein immernoch das selbe...

    das kann doch nciht sein... irgendwo muss der Fehler sein.
    Hab auch schon tausendmal nachgeschaut, ob die Daten auch richtig liegen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Probier mal das:

    Code:
    session_start();
    $USER = $_POST['userid'];
    $_SESSION["USER"] = $_POST['userid'];
    Frag mich nicht. Sollte es nicht gehen nimm:

    Code:
    session_start();
    $USER = $_POST['userid'];
    session_register('USER');
    das muss gehen - entsprechend DEINER variablen-vergabe.
    ... bei mir geht es...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    mag mal jemand das $_SESSION["USER"] = $_POST['userid']; i meinen oberen code einfügen?

    vieleicht bin ich auch einfach nur zu dumm

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hmmm, das skript stimmt, der aufruf der funktionen sollte auch gehen,. Es muss daran liegen, dass die session nicht registiert ist, bzw du den temporären ordner in der php.ini nicht korrekt vergeben hast. hast du das schon gecheckt? ansonsten nimm mal mama google. bis denne...


    grüße

    kerrin

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    folgendes script wird eingefügt (sessionhelpers.inc.php)

    Code:
    <?
    function connect()
    {
    	$con=mysql_connect() or
    die (mysql_error));
    	mysql_select_db('datenbank', $con) or
    die(mysql_erreo());
    }
    
    function check_user($name, $pass)
    {
    	$sql="SELECT UserId
    		FROM users
    		WHERE UserName='".$name"' AND UserPass=MD5('"".$pass."')
    		LIMIT 1";
    		§result=mysql_query($sql) or die (mysql_error());
    		if (mysql_num_rows($result)==1)
    		{ 
    			$user=mysql_fetch_assoc($result);
    			return $user['UserId'];
    		}
    		else
    			return false;
    }
    
    function login($userid)
    {
    	   $sql=UPDATE users
    	   SET UserSession='".session_id()."'
    	   WHERE UserID='.$userid;
    	   mysql_query($sql);
    }
    
    function logged_in()
    {
    	$sql="SELECT UserId
    	FROM users
    	WHERE UserSession='".session_id()."'
    	LIMIT 1";
    	$result=mysql_query($sql);
    		return (mysql_num_rows($result)==1);
    }
    
    function logout()
    {
    	$sql="UPDATE users
    	SET UserSession=NULL
    	WHERE UserSession='".session_id."'";
    	mysql_query($sql);
    }
    
    connect();
    ?>

    Einen Kommentar schreiben:

Lädt...
X