POST per Header senden

@crack, versuch es so:
PHP:
<?php
if(isset($sid = $_COOKIE['PHPSESSID']) && (strlen($sid = $_COOKIE['PHPSESSID'])>0)){
$sid = $_COOKIE['PHPSESSID'];
session_id($sid);
session_start();
}else{
session_start();
$sid = session_id();
}

setcookie('PHPSESSID', $sid);

if(!empty($_POST) && empty($_GET))
{
	$_SESSION = $_POST;
}
print_r($_POST);
?>

was setcookie angeht, les dich mal in dass php manual rein:
http://de.php.net/manual/de/function.setcookie.php

evt. willst du den cookie später länger hin gültig haben
 
Zuletzt bearbeitet:
Ich kenne mich ja relativ gut mit Sessions und Cookies aus, nur war ich mir nach diesem Fehler unsicher, wie die Funktionen angeordnet werden sollten (von der Reihenfolge her):
Warning: Unknown: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0
 
Hi,

PHP:
<?php
setcookie('PHPSESSID', session_id());
session_start();
$sid = $_COOKIE['PHPSESSID'];
session_id($sid);
if(!empty($_POST) && empty($_GET))
{
	$_SESSION = $_POST;
}
print_r($_POST);
?>

Ich nehme mal an, das ist jetzt get_headers.php? Das setCookie brauchst Du dort nicht. Dein Client ist in diesem Fall ja post_by_headers.php. Außerdem liefert session_id() doch gar nichts, bevor die Session gestartet wurde. $_COOKIE wird auch leer sein, wenn Du den im POST-Request nicht mitschickst. Und ein session_id($sid) zum Setzen der Session-ID müsste dann wieder vor dem session_start() stehen. Sieht noch ein wenig durcheinander aus...

Sende in dem POST-Request ein Session-Cookie mit, dann kann get_headers.php so bleiben, wie es war.
Dazu müsstest Du allerdings die ID vorher in einer Variablen speichern, die Session mit session_write_close() beenden, die Variable an PostToHost übergeben und die Session anschließend wieder starten, da eine offene Session in post_by_headers.php session_start() in get_headers.php blockiert.

LG
 
Also wenn Deine Funktion Sessions unterstuetzen soll dann muss es mit Cookies umgehen koennen. Das sehe ich zur Zeit nicht. Weder sendest Du den Session-Cookie den kriegen solltest, noch sehe ich Code der Cookies auswertet.
 
Eigentlich habe ich mit den Sessions nur versucht eine Möglichkeit zu haben, wie ich überprüfen kann, dass die Variablen auch wirklich an die Datei geschickt wurden.
 
Das Problem ist ja dass eine Session nur dann weiter genutzt wird wenn der User-Agent (in der Regel der Browser, hier Dein Script) dies auch veranlasst, was in der Regel eben durch die Uebergabe des empfangenen Session-Cookies laeuft.
Ansonsten wird jedes Mal eine neue Session gestartet, welche entsprechend leer ist.
 
Hi,

Eigentlich habe ich mit den Sessions nur versucht eine Möglichkeit zu haben, wie ich überprüfen kann, dass die Variablen auch wirklich an die Datei geschickt wurden.

Das hatte doch schon in Deiner allerersten Version funktioniert, in der Du die Postvariablen einfach ausgegeben hast:

RipmaV hat gesagt.:
Ich versteh nich so ganz wo dein Problem liegt. Hier sind doch deine Daten:

PHP:
            [10] => Content-Type: text/html
            [11] => 
            [12] => Array
            [13] => (
            [14] =>     [username] => admin
            [15] =>     [password] => test
            [16] => )
            [17] =>

LG
 
Ich wollte versuchen mich über diese Methode über einen Login an einem System anzumelden. Mehr hatte ich damit nicht vor. Aktuell brauche ich es nicht, aber es ist bestimmt irgendwann mal praktisch, wenn man schon so was hat.
 
Also wenn Du sowas machen willst musst Du Dich auf jeden Fall mit Cookies beschaeftigen, denn ansonsten wirst Du nicht ueber das Login-Formular hinauskommen.
 
Zurück