Archiv verlassen und diese Seite im Standarddesign anzeigen : Session-Problem...
Mmmmm. Großes Problem das mich meine Nerven kostet.... Ich starte im ersten Script die Session und registriere auch gleich eine Variable. Diese Variable wird auch gleich mit Werten belegt. Auf der nächsten Seite versuch ich die Session mit session_start() wieder aufzunehmen. Denkste funzt nur wenn ich das Cookie annehme. Wenn das Cookie nicht angenommen wird startet der PHP-Trottel gleich wieder ne neue Session. Ja ich habe mir schon viele Seiten über Sessions reingezogen und habe viele möglichkeiten ausprobiert. Das will aber nicht funzen.... Meine Nerven sind am Ende. In dem Verzeichniss in dem die Cookies gespeichert sind ist auch zu erkennen das die Variable mit einem Wert belegt ist und Ordnungsgemäß registriert wurde. Ja es wird die SID an die nächste Seite mit übergeben und trotzdem funzt die SCH... nicht. BITTE helft mir sonst dreh ich noch durch.........
wenn du session_start aufrufst muss die Session Variable Vorhanden sein!
Gib einfach mach die Session Variable direkt vor session_start() aus (meistens $PHPSESSID). Warscheinlich ist sie bei dir leer...
Wenn du session_start() z.B. in einer Funktion aufrufst, dann vergiss nicht $PHPSESSID mit global reinzuholen.
Heul. Es geht immer noch nicht...
Das ist der Code von der Startseite: ( der fett gedruckte Teil ist der Problemfall... Beim Senden der anderen Header auf sich selbst (die Datei heißt authent.php) funtzt es und er will keine neue Session starten aber dann...)
<?php
session_start();
session_register("session");
$sessionid = $HTTP_POST_VARS[PHPSESSID];
$login =$HTTP_POST_VARS[login];
$aktion =$HTTP_POST_VARS[aktion];
$nachricht="";
if ( isset( $aktion ) && $aktion == "login" )
{
if ( empty( $login ) || empty( $login[pass] ) || empty( $login[org] ) )
{
$nachricht .= "Sie müssen alle Felder ausfüllen<br>\n";
header( "Location: ../daten/authent.php?".SID );
}
elseif ( ! ( empty( $login[benutzer] ) || empty( $login[pass] ) || empty( $login[org] ) ))
{
global $session, $logged_in;
$session[logged_in] = false;
$db = "systemx";
$connect = pg_connect("dbname=$db user=$login[benutzer] password=$login[pass]");
$authent = "select * from stationen where station='$login[org]';";
if ( $result = pg_exec ($connect, $authent) )
{
$row = pg_numrows($result);
if ( $row < 1 )
{
header( "Location: ../daten/authent.php?".SID );
exit;
}
elseif ( $row >0 )
{
global $PHPSESSID;
$session[id] = $HTTP_POST_VARS[PHPSESSID];
$session[org] = $login[org];
$session[benutzer] = $login[benutzer];
$session[pass] = $login[pass];
$session[logged_in] = true;
$_SESSION['session']=$session;
[B]header( "Location: ../uebersicht.php?".SID );
exit;
}
}
$session[logged_in] = true;
$nachricht .= "Falsches Passwort, versuchen Sie es nochmal<br>\n";
}
}
?>
und auf der uebersicht.php wie folgt:
( session_name() gibt PHPSESSID aus)
<?php
global $PHPSESSID;
session_start();
.....
?>
sorry die session wird schon ein skript vorher gestartet.... das übergeben funtzt da aber auch....:
<?php
session_start();
session_register("session");
?>
<form action='../phpz/anmeldung.php' method='post'>
<input type='hidden' name='<?php print session_name(); ?>' value='<?php print session_id(); ?>'>
<input type='hidden' name='aktion' value='login'>
<table align='center' class='auth'><tr><td class='auth' onMouseOver="status='Stationsname eintragen';">Station</td><td class='auth'><input type='text' name='login[org]' value='<?php print $form[org]; ?>' width='50'></td></tr>
<tr><td class='auth' onMouseOver="status='Benutzernamen eintragen';">Benutzername</td><td class='auth'><input type='text' name='login[benutzer]' width='50' value='<?php print $form[benutzer]; ?>'></td></tr>
<tr><td class='auth' onMouseOver="status='Passwort eintragen';">Passwort</td><td class='auth'><input type='password' name='login[pass]' width='50' value='<?php print $form[pass]; ?>'></td></tr>
<tr><td class='auth' onMouseOver="status='Eingaben löschen';"><button class='auth' type=reset><img src='<?php echo $buttoncancel; ?>' alt='reset'> löschen</button></td>
<td class='auth' onMouseOver="status='absenden';"><button class='auth' type='submit' target='haupt'><img src='<?php echo $buttonok; ?>' alt='anmelden'> anmelden</button></td></tr>
</table>
</form>
Also nochmal...
Ist bei der uebersicht.php die $PHPSESSID angekommen oder nicht?
Mach mal ein echo $PHPSESSID vor dem session_start();
Und versuchs eventuell mal mit
header( "Location: ../uebersicht.php?PHPSESSID=" . $_REQUEST['PHPSESSID']);
Also in dem obrigen Beispiel siehst du beim ersten senden -- header( "Location: ../daten/authent.php?".SID ) --des HEADERS funktionier die ganze Sache. Da habe ich auch die $PHPSESSID zur verfügung (hier wird das Formular an das 2.Beispiel zurückgegeben). Bei dem 2. Senden des HEADERS an die uebersicht funtzt nix mehr. Ich habe demzufolge auch keine $PHPSESSID zur Verfügung und PHP will gleich eine neue Session starten........Danke schon mal für die Aufmerksamkeit ich hoffe ich ziehe dich nicht mit in den Wahnsinn.....
stop stop stop stop stop Ich bin blöd!!!!!!!!!!!!!!!! Nicht mehr drüber nachdenken! Ich bin blöd! Ich schreib gleich mal was ich falsch gemacht habe!
So. Jetzt funztz..... Wenn Dummheit bestrafft werden würde dann wäre ich für die nächsten 5 Mill. Jahr im Knast.... Tut mir leid dich belästigt zu haben. Ich hab das Script noch durch ein anderes geleitet wo die Seite in 2 Frames aufgeteilt wird. von da aus ist dann die Session nicht weitergeleitet wurden..... MMMMM ich hoffe ich flieg dafür nicht aus dem Forum...........
Quatsch... :D sowas is jedem mal passiert.
Ich hab mich am Anfang auch Stundenlang mit den Session Funktionen rumgeschlagen... jetzt hab ich mir ein gescheites Framework dafür geschrieben und denk nicht mehr groß drüber nach.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.