Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Session beenden mit session destroy() klappt nicht so wirklich

Frage Entwicklung PHP

Mitglied: coltseavers

coltseavers (Level 2) - Jetzt verbinden

25.01.2010 um 23:58 Uhr, 6673 Aufrufe, 6 Kommentare

Hallo!

Ich habe folgendes Problem mit Sessions:

Beispielprojekt: Onlineshop.
Sessions werden eingesetzt, der Kunde kauft ein und schliesst die Bestellung ab.

Ich möchte nun erreichen, dass dann die Session komplett "zerstört" wird.
Dazu führe ich den Befehl "session_destroy();" aus.

Das Problem ist nun offenbar, dass die Session-ID in einem Cookie beim Client gespeichert wird.
Wenn man nach Bestellabschluß (also auch nach session_destroy();) dann auf den Button "Warenkorb anzeigen" klickt,
wird der Warenkorb wieder samt Inhalt angezeigt (Dieser orientiert sich nach der Session-ID). Er soll aber nach Bestellabschluss natürlich leer sein.

Was läuft da falsch? Wird bei session_destroy(); nicht automatisch auch das Cookie gelöscht?
Oder muss man das noch explizit nachholen? Falls ja: wie?

Danke & Gruß,
Colt Seavers
Mitglied: dog
26.01.2010 um 00:35 Uhr
Was das Cookie auf dem Client macht ist doch vollkommen unerheblich.

PHPs interne Session-Implementation speichert auf dem Client nur eine Session-ID, alle Dateien dazu liegt auf dem Server in einer Datei mit dem Namen der ID.

session_destroy löscht alle Daten innerhalb einer Session (nicht die Session selber).
Ich würde aber mal sagen, du hast hier ein tiefergreifendes Problem!

Das Cookie kannst du mit
01.
setcookie(session_name(),false);
löschen...
Bitte warten ..
Mitglied: coltseavers
26.01.2010 um 01:01 Uhr
Zitat von dog:

session_destroy löscht alle Daten innerhalb einer Session (nicht die Session selber).


aha?!

Ich find das wird hier anders erklärt:
http://www.selfphp.de/funktionsreferenz/session_funktionen/session_dest ...

Aber egal, was von beiden stimmt:
Wenn alle Daten gelöscht werden, dann ja auch die Session-ID. Der Warenkorb existiert aber weiterhin, und der findet seinen Inhalt über die Session-ID...
verstehe nicht, woher er die dann noch kriegt ?!
Bitte warten ..
Mitglied: dog
26.01.2010 um 01:39 Uhr
Ich find das wird hier anders erklärt:

Darum nimmt man auch immer die offizielle Doku: http://de.php.net/session_destroy

Aber egal, was von beiden stimmt:

Stimmt, du hast ein anderes Problem.
Darum aktivierst du erstmal die Fehleransicht:
01.
ini_set('display_errors','On'); 
02.
error_reporting(E_ALL|E_STRICT);
Bitte warten ..
Mitglied: coltseavers
26.01.2010 um 01:43 Uhr
habe rausgefunden, dass das Problem beim Cookie liegt.
Wenn ich das Cookie manuell (im Browser) lösche, ist auch der Warenkorb leer.

kriegs aber nicht mit setcookie() gelöscht/geändert -> fehlermeldung.
auch regenerate_session_id() bringt ne fehlermeldung.

fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/xxx.de/yyyy.php:123) in /var/www/xxx.de/yyy.php on line 111
Bitte warten ..
Mitglied: 62929
26.01.2010 um 07:42 Uhr
Hallo,

warum nutzt du nicht den expire Parameter von setcookie?
Wenn dir das zu statisch ist, kannst du auch den Cookie aller paar Seitenklicks neu setzen. So kannst du sicher gehen, dass niemand ausgeloggt wird, der sich schon seit Stunden in deinem System befindet.

Gruß
dante!


PS: Header Manipulationen müssen immer vor dem ersten Output passieren, also möglichst am Code Anfang.
Bitte warten ..
Mitglied: dog
26.01.2010 um 09:32 Uhr
Das Problem kriegen wir leicht in den Griff:

In der php.ini
output_buffering On
eintragen

oder als erstes in dein Programm
ob_start();
einfügen
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Hyper-V
Hyper V 2012 R2 - Enhanced Session Mode klappt nicht (7)

Frage von bytetix zum Thema Hyper-V ...

Windows 10
gelöst Klappt es noch mit 7 Key Windows 10 zu aktivieren? (12)

Frage von zeroblue2005 zum Thema Windows 10 ...

Erkennung und -Abwehr
Großstörung bei der Telekom: Was wirklich geschah (3)

Link von Frank zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...