PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

28-08-2003, 12:50
|
BigBlue
Newbie
|
|
Registriert seit: Aug 2003
Ort: Düsseldorf
Beiträge: 2
|
|
session_start();
Hi,
meine Frage ist ;
wenn ich versuche eine session zu starten bekomme ich immer diese meldung:
Warning: session_start() [function.session-start]: open(/tmp\sess_68c0efb07d4c7ad492df2a9a6aa6ae2d, O_RDWR) failed: No such file or directory (2) in c:\programme\apache group\apache\htdocs\css_try\sesion.php on line 9
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\programme\apache group\apache\htdocs\css_try\sesion.php:8) in c:\programme\apache group\apache\htdocs\css_try\sesion.php on line 9
Warning: Unknown(): open(/tmp\sess_68c0efb07d4c7ad492df2a9a6aa6ae2d, 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
.Wie kann ich session richtig starten?
Mfg
BigBlue
|

28-08-2003, 12:54
|
schmalle
  Ich Root, Du nix
|
|
Registriert seit: Jun 2001
Ort: Egelsbach FFM
Beiträge: 9.170
|
|
du musst in deiner PHP.INI den pfad für die session files anpassen. auf ein verzeichnis, dass auch existiert am besten
|

28-08-2003, 15:10
|
BigBlue
Newbie
|
|
Registriert seit: Aug 2003
Ort: Düsseldorf
Beiträge: 2
|
|
hi,
ich hebe meine php.ini file wie unten geändert.
session.save_path = /tmp war default und jetzt
session.save_path =C:\WINDOWS\Temp
Mein Coding ist wie unten.
PHP-Code:
<?php
session_start();
?>
EDIT: Auch du kannst die code.tags/php.tags des Forum benutzen! php.tags by wotan
Das gibt fehlermedung:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\programme\apache group\apache\htdocs\css_try\sesion.php:8) in c:\programme\apache group\apache\htdocs\css_try\sesion.php on line 9
was muss ich jetzt tun um session_sta´rt zu richtig zu nutzen.
Mfg
BigBlue
Geändert von Wotan (28-08-2003 um 15:22 Uhr)
|

28-08-2003, 15:20
|
blackhole
Junior Member
|
|
Registriert seit: Feb 2003
Ort: Bonn
Beiträge: 52
|
|
Bevor du die Session startest, darf noch keinerlei Output an den Client gesendet worden sein, also setz session_start() direkt an den Anfang der Datei.
|

28-08-2003, 15:22
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
Anmerkung: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird.
http://php.net/session_start
|

12-09-2003, 20:40
|
tomstig
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
|
|
hallo,
ich hab dasselbe problem...
ich hab in der php.ini den session.save_path auf "C:\Windows\Temp" gestellt, aber noch immer sagt er:
Code:
Warning: session_start() [function.session-start]: open(/tmp\sess_b1368ec575d7866e0332794ff727a414, O_RDWR) failed: No such file or directory (2) in c:\dokumente und einstellungen\ich\desktop\script\haha.php on line 5
Was ist /tmp???
Zusätzlich gibt es noch diese Fehlermeldungen:
Code:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\dokumente und einstellungen\ich\desktop\script\haha.php:5) in c:\dokumente und einstellungen\ich\desktop\www\ordi-kalender korrekt\haha.php on line 5
$my_sid: b1368ec575d7866e0332794ff727a414 | session-id():b1368ec575d7866e0332794ff727a414 | SID: PHPSESSID=b1368ec575d7866e0332794ff727a414
Warning: Unknown(): open(/tmp\sess_b1368ec575d7866e0332794ff727a414, 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
der quellcode ist wie folgt:
PHP-Code:
<?php srand((double)microtime()*10000); $my_sid = md5(uniqid(rand())); session_id($my_sid); session_start(); echo "\$my_sid: ", $my_sid; echo " | session-id():", session_id(); echo " | SID: ", SID; ?>
hoffentlich kann mir irgendjemand helfen!!
mfg thomas
p.s.: ich verwende win xp professional....
da ist ein kleiner unterschied zwischen den pfaden von home und prof...
Geändert von tomstig (09-12-2009 um 15:23 Uhr)
|

12-09-2003, 20:47
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
scheinbar hat er den Wert nicht akzeptiert.
Hast du nach der Änderung den Apache neu gestartet?
Die php.ini, die du ändern musst ist die C:\WINDOWS\php.ini
|

12-09-2003, 21:00
|
tomstig
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
|
|
ey danke....
oft liegen die lösungen doch so nah...
1. hab ich die php.ini im php ordner verändert
2. apache vergessen...
vielen danke
mfg
|

12-09-2003, 21:41
|
tomstig
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
|
|
wenn wir gleich dabei sind...
haha.php:
PHP-Code:
<?php
srand((double)microtime()*10000);
$my_sid = md5(uniqid(rand()));
session_id($my_sid);
session_start();
$_SESSION[id] = $my_sid;
echo "\$my_sid: ", $my_sid;
echo " | session-id():", session_id();
echo " | SID: ", SID;
echo "<br><a href=\"haha2.php?".SID."\">weiter...</a>";
?>
haha2.php:
PHP-Code:
<?php
echo $_SESSION[id]; #funktioniert nicht. Warum?
echo $_GET[PHPSESSID]; #funktioniert
?>
mfg thomas
p.s.: sind schon einfallsreiche dateinamen...
|

12-09-2003, 22:37
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
|
|
in haha2.php fehlt session_start()
ausserdem ... warum baust du dir deine session_id selber in der haha.php ?
|

13-09-2003, 13:33
|
tomstig
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
|
|
das script hab ich aus einem buch abgeschrieben...
da haben sie gezeigt, dass es so auch geht...
danke, jetzt funktioniert es...
Geändert von tomstig (13-09-2003 um 13:38 Uhr)
|

13-09-2003, 13:52
|
DSB
Banned
|
|
Registriert seit: Dec 2002
Ort: Hamburg
Beiträge: 374
|
|
Zitat:
Original geschrieben von Abraxax
warum baust du dir deine session_id selber in der haha.php ?
|
Soweit ich weiß, geht die selbstgebaute ID bei einem Refresh des Browsers nicht verloren - sonst wird bei jedem Refresh eine neue Session gestartet.
|

13-09-2003, 14:23
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
|
|
Zitat:
Original geschrieben von DSB
Soweit ich weiß, geht die selbstgebaute ID bei einem Refresh des Browsers nicht verloren - sonst wird bei jedem Refresh eine neue Session gestartet.
|
ich verstehe nicht, was du meinst.
wenn immer session_start() enthalten ist, wird die session beim ersten mal mit nummer versehen und bei den weiteren malen immer wiederaufgenommen.
nur das erstellen einer eigenen session_id ist nicht notwendig. das meine ich.
|

13-09-2003, 15:32
|
DSB
Banned
|
|
Registriert seit: Dec 2002
Ort: Hamburg
Beiträge: 374
|
|
Zitat:
Original geschrieben von Abraxax
ich verstehe nicht, was du meinst.
wenn immer session_start() enthalten ist, wird die session beim ersten mal mit nummer versehen und bei den weiteren malen immer wiederaufgenommen.
nur das erstellen einer eigenen session_id ist nicht notwendig. das meine ich.
|
Das ist auch nur auf der Seite der Fall, wo die Session gestartet wird und
wenn Cookies im Browser deaktiviert sind.
Wird diese Seite refreshed, wird die soeben erzeugte SID nicht an den URL angehangen. Dadurch erkennt der Server keinen Zusammenhang zu der vorher gestarteten Session und startet eine neue Session.
So zumindest habe ich die Problematik im Kopf. Leider habe ich zur Zeit mein PHP-Buch verliehen (hole es mir aber heute abend wieder *g*) und kann dann genauer sagen, warum man das mit einer eigenen SID-Zuweisung verhindern kann. Genaue Erklärung folgt also noch...ich bitte um etwas Geduld. :-)
|

14-09-2003, 01:55
|
DSB
Banned
|
|
Registriert seit: Dec 2002
Ort: Hamburg
Beiträge: 374
|
|
So, da hatte ich das wohl nicht so ganz richtig in Erinnerung.
Der von mir beschriebene Fall trifft nur dann zu, wenn auf ein und derselben Seite eine Session erzeugt und auch genutzt wird, sich eine einzige Seite also selbst aufruft und mit der Funktion session_id() gearbeitet wird.
Grundsätzlich hat Abraxax also (wie kann es auch anders sein *g*) recht.
In diesem Beispiel ging es um einen Counter:
Zitat:
Falls das Cookie jedoch nicht gesetzt werden kann, die Übermittlung der Session-ID also über die URL erfolgt, zeigt sich hier ein Problem.
Führt der Anwender im Browser einen "Reload"aus, geht die soeben erzeugte Session-ID verloren.
Abhilfe schafft eine automatischer Aufruf der Seite.
Dann muss man die Session-ID jedoch manuell erzeugen.
PHP-Code:
<?PHP
$my_id = session_id();
if (!(eregi("[a-z0-9]{32}",$my_id)))
{
srand((double)microtime()*1000000);
$my_id = md5(uniqid(rand()));
session_id(Smy_id);
session_start();
$destination = "http://".$HTTP HOST.$PHP SELF;
$destination .= "?".$SID;
header("location: $destination");
exit;
}
session start();
session_register("counter");
$counter++;
echo $counter." Aufrufe";
?>
Die Funktion session id() hat gleich zwei Aufgaben. Wird sie mit einem Parameter aufgerufen, wird die Session-ID gesetzt. Ohne einen Parameter gibt sie die aktuelle ID zurück.
Als Erstes wird mit einem regulären Ausdruck geprüft, ob eine mögliche Session-ID vorhanden ist. Falls dies nicht der Fall ist, muss eine berechnet werden. Dazu wird mittels srand()der Zufallsgenerator initialisiert.Als Parameter wird eine Zahl übergeben.
Eine Zufallszahl wird als Basis für uniqid()genutzt. Durch die Verschlüsselung der Rückgabe wird ein String von 32 Zeichen gebildet, der auch keine Sonderzeichen enthält.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|