php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.03.2009, 12:00  
Neuer Benutzer
 
Registriert seit: 10.03.2009
Beiträge: 12
Shinak befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Problem mit der übergabe einer Session ID

Hallo Leute,

ich habe ein Problem mit dem übergeben der Session ID an eine andere Seite.
Hier mal ein code.

index.php
PHP-Code:
<?
// index.php
// Errorhändling Aktivieren
error_reporting(E_ALL);

    if ( !isset( 
$_SESSION ['ready'] ) )
    {
        
session_start ();
        
$_SESSION ['ready'] = TRUE;
    } 
echo 
"Index<br>";
echo 
"<hr>";

include (
"page1.php");
?>
page1.php
PHP-Code:
<?
// page1.php
echo "Page 1<br>";
echo 
"<hr>";
echo 
"Session ID: ".session_id ()."<br>";
echo 
"Session ok ?".$_SESSION ['ready']."<br>";
echo 
'<a href="page2.php?' SID '">page 2</a>';
?>
page2.php
PHP-Code:
<?
// page2.php
// Errorhändling Aktivieren
error_reporting(E_ALL);

echo 
"Page 2<br>";
echo 
"<hr>";
echo 
"Session ID: ".session_id ()."<br>";
echo 
"Session ok ?".$_SESSION ['ready']."<br>";
?>

Ausgabe index.php mit inculde von page1.php
Code:
Index
Page 1
Session ID: 411540d0fee973a0874a55dd2f9d4516
Session ok ?1
page 2
Ausgabe von page2.php
Code:
Page 2
Session ID:

Notice: Undefined variable: _SESSION in /var/www/page2.php on line 9
Session ok ?
Adresszeile von page2.php
Code:
page2.php?
Es wir keine Session ID in der URL angezeigt.

Ich weiss ja nicht ob ich da irgendwo einen Denkfehler habe, aber normal müste die ID doch übergeben worden und auch abrufbar sein.

Ich hoffe Ihr könnt mir hier weiter helfen.
Shinak ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.03.2009, 12:07  
Erfahrener Benutzer
 
Benutzerbild von Felix
 
Registriert seit: 17.06.2008
Beiträge: 184
Felix befindet sich auf einem aufstrebenden Ast
Standard

du musst auf jeder seite wo du session verwenden willst session_start(); als erstes ausführen.

PHP: session_start - Manual

//EDIT: Daran liegts aber nicht ... hab gerade gesehn das du ja page1.php mit include einfügst ...sry

===

was willst du eigentlich tun?

du schreibst:
PHP-Code:
echo '<a href="page2.php?' SID '">page 2</a>'
auf SID liegt ja auch nix

PHP-Code:
 echo '<a href="page2.php?' session_id() . '">page 2</a>'
so würde es gehn.
__________________
Wer Rechtschreibefehler in meinen Beiträgen findet,
der darf sie gerne behalten/tauschen/bei ebay versteigern...

Geändert von Felix (13.03.2009 um 12:19 Uhr).
Felix ist offline  
Alt 13.03.2009, 12:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nein. session_id () gibt nur die ID zurück, SID aber einen GET taugliche String (Parameter mit session_name () analogen Bezeichner und Zuweisung und Session ID). Aber imho nur, wenn Cookies nicht verfügbar sind.

Steht im Manual.
Zitat:
Alternatively, you can use the constant SID which is defined if the session started. If the client did not send an appropriate session cookie, it has the form session_name=session_id. Otherwise, it expands to an empty string. Thus, you can embed it unconditionally into URLs.
Aber:
Zitat:
PHP is capable of transforming links transparently. Unless you are using PHP 4.2.0 or later, you need to enable it manually when building PHP. Under Unix, pass --enable-trans-sid to configure. If this build option and the run-time option session.use_trans_sid are enabled, relative URIs will be changed to contain the session id automatically.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (13.03.2009 um 12:28 Uhr).
nikosch ist offline  
Alt 13.03.2009, 12:30  
Erfahrener Benutzer
 
Benutzerbild von Felix
 
Registriert seit: 17.06.2008
Beiträge: 184
Felix befindet sich auf einem aufstrebenden Ast
Standard

stimmt nikosch steht im Manual ...wusste dies nicht ...aber funktionieren tut es bei mir nicht ...

//EDIT: hab dein edit erst jetzt gelesen ...kk
__________________
Wer Rechtschreibefehler in meinen Beiträgen findet,
der darf sie gerne behalten/tauschen/bei ebay versteigern...
Felix ist offline  
Alt 13.03.2009, 12:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
//EDIT: Daran liegts aber nicht ... hab gerade gesehn das du ja page1.php mit include einfügst ...sry
Doch, genau daran liegts:
Zitat:
if ( !isset( $_SESSION ['ready'] ) )
{
session_start ();
Zumindest wird $_SESSION nie gesetzt sein, wenn session_start () noch nicht erfolgt ist. Das danach zu tun könnte zu spät sein. Unbedingt mal an den Anfang des Scripts schreiben. Und wirklich jegliche Ausgabe vorher (HTML, Leerzeichen, BOM) vermeiden.

Zitat:
If session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 13.03.2009, 12:38  
Neuer Benutzer
 
Registriert seit: 10.03.2009
Beiträge: 12
Shinak befindet sich auf einem aufstrebenden Ast
Standard

Hallo Felix,

das wird aber hier PHP: session_start - Manual anderst beschrieben. Und ich kenne es auch aus einem anderen Tutorial so.

Auszug aus dem Tutorial
Code:
Anstatt die Session-ID mit session_name und session_id zu übergeben gibt
es bei Sessions eine Konstante SID. Sie enthält beim starten der Session den 
String sessionname=sessionid, eignet sich also hervorragend um mit &  an die URL
angehängt zu werden. Wird die Session-ID mit Cookies übergeben sorgt 
session_start() dafür dass die Konstante leer ist. Man braucht die Session-ID ja 
nur einmal übergeben, nicht doppelt mit Cookies und mit der URL.
Ich habe hier das nur kurz mal zusammen geschrieben um das Problem mit der Session zu lösen. Normal wird auf page1.php ein Form ausgefüllt das in page2.php verabreitet wird und dann wieder automatich page1.php bzw. index.php?section=form wieder geöffnet wo ich dann noch ein paar sachen von page2.php ausgebe was auch nicht so geht wie ich das will, da ich diese gerne über $_SESSION['wert1'] übergeben möchte. Momentan mache ich es über $_GET['wert1'].

Muss ich jetzt auf jede Seite ein
PHP-Code:
session_start (); 
einbauen?
Was passiert denn dann mit den Werten die in einer Session gespiechert sind?

Geändert von Shinak (13.03.2009 um 12:43 Uhr).
Shinak ist offline  
Alt 13.03.2009, 12:42  
Erfahrener Benutzer
 
Benutzerbild von Felix
 
Registriert seit: 17.06.2008
Beiträge: 184
Felix befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Shinak Beitrag anzeigen
Hallo Felix,

das wird aber hier PHP: session_start - Manual anderst beschrieben. Und ich kenne es auch aus einem anderen Tutorial so.
[OT]
Ja ich hab mich auch schon als Unwissender geoutet ...heut ist nicht mein Tag (Freitag 13.)
[/OT]
__________________
Wer Rechtschreibefehler in meinen Beiträgen findet,
der darf sie gerne behalten/tauschen/bei ebay versteigern...
Felix ist offline  
Alt 13.03.2009, 12:44  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Naja, ich gehe davon aus, dass mein letztes Posting die bestehenden Fragen klärt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 13.03.2009, 12:57  
Neuer Benutzer
 
Registriert seit: 10.03.2009
Beiträge: 12
Shinak befindet sich auf einem aufstrebenden Ast
Standard

@ Felix ist doch nicht schlimm !

@ nikosch
ok habe jetzt in page2.php auch ein session_start (); geschrieben und es funktioniert.

Danke euch allen für die hilfe.
Shinak ist offline  
Alt 13.03.2009, 12:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nein!!! Fehler vorprogrammiert! session_start darf man nicht doppeln! Schreib es einfach an den Anfang des ersten Scripts, da ist doch nun nichts bei.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch 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
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Session Problem dimitri PHP Tipps 2007 8 29.12.2005 15:53
Session Problem R4v3r PHP Tipps 2007 3 30.11.2005 23:25
Problem mit unset() und SESSION PHP Tipps 2007 3 17.11.2005 16:48
session problem PHP Tipps 2005-2 2 26.10.2005 00:25
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
SESSION Problem mit Opera 7 [Gelöst] akratellio PHP Tipps 2005-2 4 14.07.2005 10:51
Problem mit Session PHP Tipps 2005-2 13 10.07.2005 18:20
übergabe problem - session... PHP Tipps 2005-2 4 04.06.2005 11:44
seltsames php und session problem netti PHP-Fortgeschrittene 16 01.06.2005 17:01
session problem PHP Tipps 2005 10 23.05.2005 12:41
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Session Problem beim Login PHP Tipps 2004-2 6 15.12.2004 09:37
SESSION Problem PHP Tipps 2004 3 30.06.2004 20:29
SESSION Problem PHP Tipps 2004 10 18.06.2004 23:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php session id übergeben, session id übergeben, http://www.php.de/php-einsteiger/52858-erledigt-problem-mit-der-uebergabe-einer-session-id.html, php id übergeben, undefined variable: session_id, php session_id übergeben, session id php übergeben, sessionid php übergeben, php sessionid übergeben, php session opera, php session an andere seite übergeben, php session id get übergeben, undefined variable: _session nach href, session id an andere seite übergeben, session id nicht übergeben, session_id übergeben php, $_session an andere webseite übergeben, php session andere seite übergeben, session id manuell übergeben, session_id übergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:27 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