kostenloser Webspace werbefrei: lima-city


PHP Session Login: Session wird immer wieder zerstört

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bitspyde

    bitspyde hat kostenlosen Webspace.

    Ich bin echt dumm ich komm mit meinen script nicht weiter
    Ich möchte ein login machen das etwas länger als bis man auf den nächsten tag/button">button klickt hält:
    <?php
    if(isset($_POST['pw']) and $_POST['pw'] == "passwort"){
    session_start();
    $_SESSION['gOGbjgtcvbujnighi575'] = true;
    echo "<h2>Sie haben sich erfolgreich angemeldet</h2>";
    }
    if($_SESSION['gOGbjgtcvbujnighi575'] == true){
    session_start();
    $_SESSION['gOGbjgtcvbujnighi575'] == true;
    echo "<br><a href='index.php?logout'>abmelden</a><form method='post'><textarea id='text' name='text'>StartText</textarea><input type='submit' value='&auml;ndern'/></form>";
    }
    elseif(isset($_POST['text']) and $_SESSION['gOGbjgtcvbujnighi575'] == true){
    echo "<h2>Diese Funktion ist noch in bearbeitung</h2>";
    }
    if(isset($_GET['logout'])){
    $_SESSION['gOGbjgtcvbujnighi575'] = false;
    session_destroy();
    }
    ?>

    Das Problem ist wenn ich auf den ändern button klicke ist die Session plötztlich weg und es ist nichts außer ne leere Seite zu sehen.
    Ohne Session funktioniert das ganze Hab ich ausprobiert.:biggrin:

    Beitrag zuletzt geändert: 27.3.2013 18:41:42 von bitspyde
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Versuche es so:
    <?php
    
    session_start();
    
    if(isset($_POST['pw']) && $_POST['pw'] == "passwort") {
    	$_SESSION['gOGbjgtcvbujnighi575'] = true;
    	echo '<h2>Sie haben sich erfolgreich angemeldet</h2>';
    }
    
    if(isset($_GET['logout'])) {
    	$_SESSION['gOGbjgtcvbujnighi575'] = false;
    	session_destroy();
    }
    
    if($_SESSION['gOGbjgtcvbujnighi575']) {
    	echo '<br><a href="index.php?logout">abmelden</a><form method="post"><textarea id="text" name="text">StartText</textarea><input type="submit" value="&auml;ndern"/></form>';
    	if(isset($_POST['text'])) {
    		echo '<h2>Diese Funktion ist noch in bearbeitung</h2>';
    	}
    }
  4. Autor dieses Themas

    bitspyde

    bitspyde hat kostenlosen Webspace.

    hackyourlife schrieb:
    Versuche es so:
    <?php
    
    session_start();
    
    if(isset($_POST['pw']) && $_POST['pw'] == "passwort") {
    	$_SESSION['gOGbjgtcvbujnighi575'] = true;
    	echo '<h2>Sie haben sich erfolgreich angemeldet</h2>';
    }
    
    if(isset($_GET['logout'])) {
    	$_SESSION['gOGbjgtcvbujnighi575'] = false;
    	session_destroy();
    }
    
    if($_SESSION['gOGbjgtcvbujnighi575']) {
    	echo '<br><a href="index.php?logout">abmelden</a><form method="post"><textarea id="text" name="text">StartText</textarea><input type="submit" value="&auml;ndern"/></form>';
    	if(isset($_POST['text'])) {
    		echo '<h2>Diese Funktion ist noch in bearbeitung</h2>';
    	}
    }

    Es ändert nichts :-(
  5. if($_SESSION['gOGbjgtcvbujnighi575']) 
       { echo '<br>
               <a href="index.php?logout">abmelden</a>
    		   <form method="post">
    		   <textarea id="text" name="text">StartText</textarea>
    		   <input type="submit" value="&auml;ndern"/>
    		   </form>';
          if(isset($_POST['text'])) 
    	    {echo '<h2>Diese Funktion ist noch in bearbeitung</h2>';
            }
        }

    im form-tag fehlt:
    <form action="" method="post">
    für ein Debuggen empfiehlt sich var_dump($_SESSION) und var_dump($_POST) und Anfang des Scripts:
    ini_set('error_reporting', E_ALL);
  6. bitspyde schrieb:
    ... Ohne Session funktioniert das ganze Hab ich ausprobiert.:biggrin:
    nanuuuu!!?? mit auch, auf diese art:
    <?php
    
    ini_set('display_errors', 1);
    error_reporting(E_ALL | E_STRICT);
    
    session_start();
    
    /* ---- test stuff: --------------------------------------------------------- */
    #$_GET['logout']                   = '';
    #$_POST['pw']                      = 'passwort';
    #$_SESSION['gOGbjgtcvbujnighi575'] = true;
    echo 'GET:<pre>'.print_r($_GET,true).'</pre>';
    echo 'POST:<pre>'.print_r($_POST,true).'</pre>';
    echo 'SESSION:<pre>'.print_r($_SESSION,true).'</pre>';
    /* ---- END test stuff: ----------------------------------------------------- */
    
    if(!empty($_POST['pw']) AND $_POST['pw'] == 'passwort') {
      $_SESSION['gOGbjgtcvbujnighi575'] = true;
      echo "<h2>Sie haben sich erfolgreich angemeldet</h2>";
    }
    
    if(!empty($_SESSION['gOGbjgtcvbujnighi575']) AND ($_SESSION['gOGbjgtcvbujnighi575'] == true)) {
      $_SESSION['gOGbjgtcvbujnighi575'] == true;
      echo '<br>
        <a href="index.php?logout">abmelden</a>
        <form action="" method="post">
          <textarea id="text" name="text">StartText</textarea>
          <input type="submit" value="&auml;ndern"/>
        </form>';
    } elseif(!empty($_POST['text']) AND $_SESSION['gOGbjgtcvbujnighi575'] == true) {
      echo "<h2>Diese Funktion ist noch in bearbeitung</h2>";
    }
    
    if(!empty($_GET['logout'])) {
      $_SESSION['gOGbjgtcvbujnighi575'] = false;
      session_destroy();
    }

    verwende immer
    ini_set('display_errors', 1);
    error_reporting(E_ALL | E_STRICT);
    du machst hie und da fehler ;)

    außerdem, html attribute stehen immer zwischen doppelten anführungszeichen! also
    <form action="" method="post">
  7. schuetzengilde

    schuetzengilde hat kostenlosen Webspace.

    Hallo bitspyde,

    berichte bitte kurz mal, ob es bei dir geklappt hat. Ich habe eine ähnliche Situation und versuche schon einige Zeit lang, diese zu lösen.

    MfG
  8. Ich hab das Problem auch, aber auf meinem eigenen Server :p Entweder liegt das an der PHP-Version, oder an irgendeiner blöden Einstellung.
  9. fabo schrieb:
    ... PHP-Version, ...
    also mien version ist
    $ php -v
    PHP 5.4.12 (cli) (built: Feb 20 2013 12:30:03)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    und es funktioniert einwandfrei.
  10. PHP 5.4.13-1~dotdeb.1 (cli) (built: Mar 21 2013 08:29:56)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
        with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd.


    Ich schätze mal, in der php.ini ist der Wurm drin :/
  11. fabo schrieb:
    ... Ich schätze mal, in der php.ini ist der Wurm drin :/
    also ich habe an der ini nichts geschraubt. es ist original von der firma.
  12. Ein Von PHP unabhängiger Ferhler:
    Kodierung des Scripts in UTF-8

    Bei Verwendung von Sessions immer im Editor UTF-8 ohne BOM wählen.
    Sonst wird das Byte Order Mark gesendet und die Session zerschossen.
  13. 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!