php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.08.2004, 13:16  
Erfahrener Benutzer
 
Registriert seit: 30.04.2004
Beiträge: 225
rocco
rocco eine Nachricht über ICQ schicken
Standard Daten aus Session löschen

hi!

wie lösche ich daten aus einer session bzw. die komplette session? hab schon mit session_unset() versucht. ...vergeblich.

mfg
Rocco
rocco ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.08.2004, 13:18  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
      foreach($_SESSION as $key => $wert){
            unset(
$_SESSION[$key]);
    } 
 
Alt 31.08.2004, 13:33  
Gast
 
Beiträge: n/a
Standard

http://de3.php.net/session_destroy
 
Alt 31.08.2004, 14:18  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

session_destroy() zerstört die ganze Session und löscht nicht nur die Session-Vars! Am einfachsten gehts so:

$_SESSION = array();

Basti
Basti ist offline  
Alt 31.08.2004, 18:12  
Erfahrener Benutzer
 
Registriert seit: 30.04.2004
Beiträge: 225
rocco
rocco eine Nachricht über ICQ schicken
Standard

vielen herzlichen dank!
rocco ist offline  
Alt 31.08.2004, 21:04  
Erfahrener Benutzer
 
Registriert seit: 30.04.2004
Beiträge: 225
rocco
rocco eine Nachricht über ICQ schicken
Standard

also irgendwie funktioniert das nicht..... hab alle methden ausprobiert.

ich hab ein paar eingabefelder, übergib den wert an die session mit $_SESSION["name"]=$name; auf der nächsten seite erscheinen dann nochmal alle daten die der benutzer eingegeben hat, um zu bestätigen ob sie richtig sind (per echo $_SESSION["name"];) klickt man dann auf nein, sollten die variablen gelöscht werden. man kommt erneut zur eingabe, gibt andere daten an, bestätigt. auf der nächstes seite (wo wieder alles ausgegeben wird) steht dann jedoch wieder das, was man ursprünglich eingegeben hat.
why??? :?
rocco ist offline  
Alt 31.08.2004, 21:49  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Ich befürchte, hier musst du ein wenig Code posten, um das nachvollziehen zu können (bitte z.B. die Formulare auf je ein INPUT-Feld kürzen etc.).

Das die Seite nicht noch in irgendeinem Chache hängt hast du ja sicher geprüft, oder?

Basti

OT:
Wie kommt es zu deinem Avatar? Du bist nicht etwa glücklicher Windows-User? Ich dachte bis jetzt immer, Windows und damit glücklich sein würde sich gänzlich ausschließen *g...
Basti ist offline  
Alt 02.09.2004, 12:56  
Erfahrener Benutzer
 
Registriert seit: 30.04.2004
Beiträge: 225
rocco
rocco eine Nachricht über ICQ schicken
Standard

el index.php:
PHP-Code:
<?php
session_start
();
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="<?php echo $PHP_SELF?>">
  Vorname:<input type="text" name="vorname">


  <input name="submit" type="submit" value="==>Abschicken">
</form>
<?php
if (isset($submit)) {
    
$_SESSION["vorname"]=$vorname;

    echo 
'<script language="JavaScript">location.href="kontrolle.php?'.session_name().'='.session_id().'";</script>';
}
?>
</body>
</html>
die nächste seite (kontrolle.php):
PHP-Code:
<?php
session_start
();
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
function dont()
{
location.href="unset.php";
}
</script>
</head>

<body>
Sind diese Informationen richtig?: 
<?php
echo $_SESSION['vorname'];
?>
<form name="form1" method="post" action="<?php echo 'speichern.php?'.session_name().'='.session_id(); ?>">
  <input type="button" name="<== Nein" value="nein" onclick="dont()">
  <input type="submit" name="ja" value="ja">
</form>
</body>
</html>
...ich weiß dass mit dem JS ist umständlich gelöst, aber das hat seinen (banalen) grund


die letzte seite (unset.php):
PHP-Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
foreach($_SESSION as $key => $wert){
            unset(
$_SESSION[$key]);
    }
?>
<script language="JavaScript">location.href="index.php";</script>
</body>
</html>
wobei ich bei der letzten alles ausprobiert hab, was mir oben empfohlen wurde. nix hat bin geht!

danke
mfg
Rocco
rocco ist offline  
Alt 02.09.2004, 13:09  
Gast
 
Beiträge: n/a
Standard

http://de3.php.net/session_destroy
die unset.php:
PHP-Code:
 <?php 
session_start
();
foreach(
$_SESSION as $key => $wert){ 
            unset(
$_SESSION[$key]); 
    } 
session_destroy();
?>
alternativ kannst du das zweite beispiel von php.net benutzen:
PHP-Code:
<?php
// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();
// Löschen aller Session-Variablen.
$_SESSION = array();
// Zum Schluß, löschen der Session.
session_destroy();
?>
 
Alt 02.09.2004, 16:21  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Offensichtlich verlässt du dich darauf, dass dein PHP mit enable_trans_sid kompiliert wurde und session.use_trans_sid on ist. Dadurch werden alle internen Links und Formulare um die Session-ID ergänzt, falls der Client keine Cookies akzeptiert. Aber natürlich ergänzt PHP nicht deinen JavaScript-Code und das hast du in unset.php offensichtlich übersehen.

Vielleicht liegt da ja der Haken. Prinzipiell hast du aber auch ein paar schräge Aktionen gemacht:

Zuerst das Formular auszugeben und, falls dieses bereits abgeschickt wurde dann noch in den Body eine JS-Anweisung zu schreiben, dass der Client kontrolle.php mit der Session-ID laden solle ist ... wie soll ich sagen? ... merkwürdig.

Prüfe _zuerst_, ob das Formular abgeschickt wurde. Dazu solltest du in das Formular ein Hidden-Field setzen und dieses mit

PHP-Code:
if (isset($_POST['name_des_hidden_fields'])) 
prüfen, nicht mit

PHP-Code:
if ($submit
(folglich register_globals abschalten!)

Dann gibst du entweder das Formular aus oder schickst einen Location-Header an den Client:

PHP-Code:
header('Location: http://www.example.com/kontrolle.php'); 
Hier immer einen absoluten URL angeben und ggf. noch die Session-IID anhängen! Und, vor diesem Befehl darf keine Ausgabe an den Client erfolgt sein.

Und. meistens ist es sinnig, diese Funktionen alle in _eine_ Seite zu setzen und meistens macht es auch Sinn, in das Formular mit den nicht korrekten Daten eben diese dort voreinzutragen, damit der Benutzer nicht alle Felder neu eingeben muss, wenn er einen Fehler in nur einem Feld hatte. Aber das hängt natürlich von der Anwendung ab.

Schau dir mal den etsprechenden Eintrag in der DCLP-FAQ an (auf dclp-faq.de nach Normalform oder Affenformular oder so suchen).

@Paine:
Ist meistens eine gute Idee, einen Thread erstmal zu lesen, bevor man auf diesen Antwortet, meinst du nicht auch?

Basti
Basti ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session Variablen als Referenz!? O_o Sam781 PHP-Fortgeschrittene 4 01.10.2007 11:19
Daten in Session - Wie sinnvoll ist das? Igäl PHP Tipps 2008 12 02.09.2007 10:47
Mehrere Arrays unterschiedlicher Größe kombinieren querfisch PHP Tipps 2007 9 31.03.2007 21:34
Session Daten gehen verloren rabatz PHP Tipps 2007 17 11.02.2007 16:19
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Session Daten werden beim IE verschluckt. pherfinion PHP Tipps 2006 17 23.05.2006 17:41
daten an session anfügen PHP Tipps 2006 13 16.05.2006 07:47
Session Frage - gleiches Formular 2 mal alle Daten behalten NetLook PHP Tipps 2007 1 21.11.2005 18:42
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
Session Daten in gehen in Function verloren pherfinion PHP Tipps 2005-2 5 19.08.2005 16:04
Session gibt keine Daten aus PHP Tipps 2005 8 04.02.2005 21:09
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
Bei Fehler Daten an Formular zurück, mit Session Sonja PHP Tipps 2004 3 22.06.2004 18:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php session löschen, daten aus session löschen, formular session löschen, php session alle werte leeren, php per button daten aus session löschen, sessions php formular löschen, delete submit löscht immer der letzten key warum? php formular, daten aus einem formular löschen mit session php, session daten löschen php, php komplette session löschen, php formulardaten löschen session, href unset session, php session daten löschen unset, php input feld im session löschen, phpsession löschen, session_start() löscht formulardaten, session löschen php, session_start(); werte löschen, teil einer session löschen php, php daten aus session löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.