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

  • 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.

  • #2
    Hast du Session überhaupt schon registriert?

    Kommentar


    • #3
      Zitat von Zorki
      Hast du Session überhaupt schon registriert?
      registriert ?!?

      ähmm anscheinend nicht

      Wuste auch gar nicht, dass man das machen muss...
      Wie geht das?

      Kommentar


      • #4
        Moin,

        Code:
        session_start();
        $_SESSION["USER"] = $_POST['userid'];
        $_SESSION["ipUser"] = $ipUserCheck;
        Die andere Möglichkeit:
        Code:
        session_start();
        $USER = $_POST['userid'];
        session_register('USER');
        Je nachdem wie deine Variable heisst, muss sie natürlich auch in den Klammern registriert werden.

        Grüße

        Kerrin

        Kommentar


        • #5
          wenn du nach einer if-abfrage mehr als einen befehl ausführst, solltest du doch schon geschweifte klammern verwenden...

          Kommentar


          • #6
            Was mich wundert, dass in meinem 10 Seitigen Tutorial nichts darüber steht ...

            Na egal.


            Also muss ich jede Variable mit session_register('Variable') registrieren, oder?

            OK dann teste ich es mal...

            Kommentar


            • #7
              Zitat von mistemef
              wenn du nach einer if-abfrage mehr als einen befehl ausführst, solltest du doch schon geschweifte klammern verwenden...
              wieso?

              bis aufs 1. if habe ich immer nur einen Befehl (echo)

              Kommentar


              • #8
                Hejsan,

                ja, für jede Variable, dann geht es - bei mir zumindest. Du solltest aber lieber
                Code:
                 $_SESSION["USER"] = $_POST['userid'];
                verwenden.

                Klammern, geschweift, wie? Egal, probier mal...


                Grüße

                Kerrin und Ich jetzt auch

                Kommentar


                • #9
                  Es wird immernoch der selbe Fehler angezeigt...
                  in line 5 also da wo sessionstart(); steht

                  Kommentar


                  • #10
                    Tjena,

                    wie lautet denn der Fehler?

                    Kerrin

                    Kommentar


                    • #11
                      ich Zitiere:

                      Warning: session_start() [function.session-start]: open(/tmp\sess_60f81ff1704950f8e676785880822d0f, O_RDWR) failed: No such file or directory (2) in D:\Apache Group\Apache2\htdocs\login.php on line 5

                      Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\Apache Group\Apache2\htdocs\login.php:4) in D:\Apache Group\Apache2\htdocs\login.php on line 5

                      Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\Apache Group\Apache2\htdocs\login.php:4) in D:\Apache Group\Apache2\htdocs\login.php on line 5

                      Parse error: parse error, unexpected ')' in D:\Apache Group\Apache2\htdocs\sessionhelpers.inc.php on line 5

                      Fatal error: Call to undefined function logged_in() in D:\Apache Group\Apache2\htdocs\login.php on line 15

                      Warning: Unknown: open(/tmp\sess_60f81ff1704950f8e676785880822d0f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

                      Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

                      Kommentar


                      • #12
                        Tjena,

                        kann es sein, dass der "session.save_path" in der php.ini auf ein verzeichnis zeigt, dass gar nicht existiert? Das solltest du zuerst checken und schauen, dass auch schreibrechte korrekt vergeben sind. die andere sache ist komisch. bist du sicher, dass du session_start(); ganz am Anfagn stehen hast?
                        was steht in der datei, die du einbindest? das müsste ich wissen. Aber erstmal die beiden Dinge oben anschauen. Zuerst muss session_start() stehen.
                        Ausserdem hilft es die Fehlermeldung: Cannot send session cache limiter - headers already sent in Goolge einzgeben, da kommen viel Antworten. Hoffe, ich konnte dir helfen???

                        Grüße

                        Kerrin

                        Kommentar


                        • #13
                          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();
                          ?>

                          Kommentar


                          • #14
                            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

                            Kommentar


                            • #15
                              mag mal jemand das $_SESSION["USER"] = $_POST['userid']; i meinen oberen code einfügen?

                              vieleicht bin ich auch einfach nur zu dumm

                              Kommentar

                              Lädt...
                              X