PHP Session Login: Session wird immer wieder zerstört
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
art
attribut
bearbeitung
button
code
copyright
editor
einstellung
funktion
kodierung
ordern
problem
session
situation
tag
test
text
url
versuchen
wurm
-
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='ä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.
Beitrag zuletzt geändert: 27.3.2013 18:41:42 von bitspyde -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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="ändern"/></form>'; if(isset($_POST['text'])) { echo '<h2>Diese Funktion ist noch in bearbeitung</h2>'; } }
-
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="ändern"/></form>'; if(isset($_POST['text'])) { echo '<h2>Diese Funktion ist noch in bearbeitung</h2>'; } }
Es ändert nichts -
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="ä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);
-
bitspyde schrieb:
nanuuuu!!?? mit auch, auf diese art:
... Ohne Session funktioniert das ganze Hab ich ausprobiert.<?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="ä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 immerini_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">
-
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 -
Ich hab das Problem auch, aber auf meinem eigenen Server :p Entweder liegt das an der PHP-Version, oder an irgendeiner blöden Einstellung.
-
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 :/ -
fabo schrieb:
also ich habe an der ini nichts geschraubt. es ist original von der firma.
... Ich schätze mal, in der php.ini ist der Wurm drin :/ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage