SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.12.2004, 17:29:41
Benutzerbild von quirrly
quirrly quirrly ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 46
Session-ID über Link ins nächste Script übergeben ???

Hallo, Ich bins wieder :-)

Ich bin immer noch am Wurschteln mit diesen saublöden Sessions, und blicks einfach nicht.

Ich habe jetzt beschlossen, eine Session schon beim Aufrufen meiner Webseite zu starten, damit sich ein User ständig und überall auf der Webseite bewegen kann, bevor er einen Kauf abschliesst, und evtl schon ausgewählte Artikel im Warenkorb nicht verloren gehen.

Ich fürchte, da kommt zwar Riesenmenge Arbeit auf mich zu, weil wohl sämtlich Links ergänzt werden müssen, sehe ich das richtig ?

Jetzt wäre aber mal gut zu wissen, wie ich denn die Session-ID richtig über einen Link weitergebe ? Über Formulare kann ich das nur bei der weiteren Kaufabwicklung tun, weil eben nur da Formulare zur Verfügung stehen.

Unten steht mal meine Version von dieser ID-Übergabe über nen Link aber es funzt nicht, warum ?

<a href="onlineshop.php?PHPSESSID=<?php echo $PHPSESSID ?>" target="_self" class="glink" id="gl2">Onlineshop</a>

Der Server gibt folgenden Fehler zurück:

Parse error: parse error, unexpected '=' in /******/htdocs/index.php on line 76

Geändert von quirrly (23.12.2004 um 17:33:16 Uhr)
Mit Zitat antworten
  #2  
Alt 23.12.2004, 17:32:35
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Die Session id musst du nur dann an die Links anhängen, wenn die Einstellung session.use_trans_sid in deiner php.ini deaktiviert ist. Ansonsten brauchst du diese nur bei Weiterleitung mit der Funktion header() anhängen:
PHP-Code:
<?php
    header
('Location: [url]http://www.meineseite.de?[/url]' SID);
?>
Warum dir die Zeile einen parse error liefert, kann ich dir nicht sagen, ohne die vorherige(n) Zeile(n) zu kennen.
Mit Zitat antworten
  #3  
Alt 23.12.2004, 17:37:49
Benutzerbild von quirrly
quirrly quirrly ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 46
Zitat:
Original geschrieben von xabbuh
Die Session id musst du nur dann an die Links anhängen, wenn die Einstellung session.use_trans_sid in deiner php.ini deaktiviert ist. Ansonsten brauchst du diese nur bei Weiterleitung mit der Funktion header() anhängen:
PHP-Code:
<?php
    header
('Location: [url]http://www.meineseite.de?[/url]' SID);
?>
Warum dir die Zeile einen parse error liefert, kann ich dir nicht sagen, ohne die vorherige(n) Zeile(n) zu kennen.

Aber wenn ich im Zielscript die Session-ID abrufe, dann wird kein Inhalt angezeigt. Wenn ich noch im selben Dokument die ID der gestarteten Session anzeigen lassen, dann wird mir diese angezeigt, also wo liegt dann der Fehler ? Anscheinend muss ich das irgendwie weiterleiten oder nicht ?

Auch ist komisch, dass beim Aktualisieren des Browsers auf der index.php wo ich die Session starte, mit jedem Male eine andere ID angezeigt wird, also irgendwas stimmt doch da nicht.......
Mit Zitat antworten
  #4  
Alt 23.12.2004, 17:40:45
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Du hast aber schon auf jeder Seite session_start() stehen und nicht nur auf der ersten Seite?
Mit Zitat antworten
  #5  
Alt 23.12.2004, 17:47:32
Benutzerbild von quirrly
quirrly quirrly ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 46
Zitat:
Original geschrieben von xabbuh
Die Session id musst du nur dann an die Links anhängen, wenn die Einstellung session.use_trans_sid in deiner php.ini deaktiviert ist.
Ok, hab das Problem gefunden, beim Server von 1&1 ist "session.use_trans_sid" in der aktuellen PHP-Version deaktiviert. Das steht in einer Info auf der Webseite.

Zitat:
Ansonsten brauchst du diese nur bei Weiterleitung mit der Funktion header() anhängen:

PHP-Code:
<?php
    header
('Location: [url]http://www.meineseite.de?[/url]' SID);
?>
Das sagt mir nix. Soll ich diese Funktion jetzt nutzen, anstatt das überall an die Links zu hängen, und wo ?

Zitat:
Warum dir die Zeile einen parse error liefert, kann ich dir nicht sagen, ohne die vorherige(n) Zeile(n) zu kennen.
Ich habe nur diesen Link-Zusatz eingefügt, sonst nix. Davor ging die Seite einwandfrei.
Mit Zitat antworten
  #6  
Alt 23.12.2004, 17:50:17
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
SID ist eine Konstante die von PHP beim Aufruf der Funktion session_start() definiert wird. So lange ein Cookie mit der Session id gesetzt werden konnte, ist SID einfach leer. Wenn dieses Cookie aber nicht gesetzt werden konnte ist SID vom Format session_name() . '=' . session_id().
Du brauchst also nur diese Konstante an jeden deiner Links anhängen.
Mit Zitat antworten
  #7  
Alt 23.12.2004, 18:25:27
Benutzerbild von quirrly
quirrly quirrly ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 46
Also wie ich es mache, es geht nicht:

HINWEIS:
1&1 schreibt in den Infos auf der Webseite:

(1.) PHP läuft bei 1&1 WebHosting als CGI. Damit funktioniert eine Authentifizierung per Script nicht
(2.) "session.use_trans_sid" sind in der aktuellen PHP-Version deaktiviert.

Hat das jetzt irgendwelche Nachteile für die weitere Nutzung von PHP, bzw. für mein Vorhaben ? Der Server versteht ja eigentlich PHP3, PHP4, PHP5....

-----------------------------------------

Wenn ich es so schreibe:

<a href="onlineshop.php?PHPSESSID=<?php echo $PHPSESSID ?>" target="_self" class="glink" id="gl2">Onlineshop</a>

kommt der Serverfehler.

Wenn ich die Zeile so schreibe:

<?php header('Location: <a href="onlineshop.php" target="_self" class="glink" id="gl2">Onlineshop</a>'. SID) ?>

Dann gibts keinen Serverfehler mehr, aber das Menü/Link "Onlineshop" erscheint nun nicht mehr in der Navigationsleiste *bald am verzweifeln ist* Es ist einfach weg.....
Mit Zitat antworten
  #8  
Alt 23.12.2004, 23:15:09
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Zitat:
Original geschrieben von quirrly
Hat das jetzt irgendwelche Nachteile für die weitere Nutzung von PHP, bzw. für mein Vorhaben ?
Du hast halt ein wenig mehr Programmieraufwand, da du die Session id immer manuell übergeben musst.

Zitat:
Wenn ich es so schreibe: [...] kommt der Serverfehler.
Was für ein Serverfehler?

Zitat:

<?php header('Location: <a href="onlineshop.php" target="_self" class="glink" id="gl2">Onlineshop</a>'. SID) ?>
Richtig wäre es so:
PHP-Code:
<?php
    header
('Location: onlineshop.php?' SID);
?>
header()
Tutorial: Sessions

Zitat:
Dann gibts keinen Serverfehler mehr, aber das Menü/Link "Onlineshop" erscheint nun nicht mehr in der Navigationsleiste *bald am verzweifeln ist* Es ist einfach weg.....
Was für Bedingungen müssen denn in der Datei onlineshop.php erfüllt sein, damit die Navigation angezeigt wird?
Mit Zitat antworten
  #9  
Alt 24.12.2004, 12:03:21
Benutzerbild von quirrly
quirrly quirrly ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 46
Zitat:
Original geschrieben von xabbuh
Du hast halt ein wenig mehr Programmieraufwand, da du die Session id immer manuell übergeben musst.

Was für Bedingungen müssen denn in der Datei onlineshop.php erfüllt sein, damit die Navigation angezeigt wird?
Also, ich habs jetzt hingekriegt. Wo der Fehler jetzt letztendlich genau lag, kann ich gar nicht sagen, habe die Php-Funktionen einfach nochmal alle aus den Dokumenten heraus gemacht, und nochmal neu angefangen.

Muss irgendwo nen Fehler gehabt haben, obwohl ich sicher war, dass alles richtig ist.

Der einzigste Unterschied den ich gemacht habe ist, dass ich die Session-ID über alle Links so weiter gebe:

<a href="onlineshop.php?<?php echo strip_tags(SID)?>"

Damit wird im Browser nicht das komplette Zahlen-Wirrwarr dargestellt, und hat deshalb wohl Sicherheits-Pluspunkte.

Geprüft habe ich die Funktion jetzt damit:

if (!session_is_registered('zaehler')) {
session_register('zaehler');
$zaehler = 1;
} else {
$zaehler++;
}

Dieser Zähler ist auf der Startseite eingebaut, zählt mit jedem Aufruf/Browseraktualsierung eins dazu.

Wenn ich nun über die Navigation auf anderen Webseitendokumente komme, und mir die Variable $zaehler auf diesen Dokumenten auf den Bildschirm bringen lasse, zeigt es mir immer den Stand an, den es auf der Startseite gehabt hat.

Damit scheint die Übermittlung der Sessioninhalte gegeben zu sein, und ich kann wohl weitermachen mit dem Warenkorb-Entwickeln....(ich hoffe *gg*)
Mit Zitat antworten
  #10  
Alt 24.12.2004, 13:21:57
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Zitat:
Original geschrieben von quirrly

<a href="onlineshop.php?<?php echo strip_tags(SID)?>"
strip_tags() kannst du hier auch weglassen.

Zitat:

if (!session_is_registered('zaehler')) {
session_register('zaehler');
$zaehler = 1;
} else {
$zaehler++;
}
session_register() und session_is_registered() sind veraltet. Benutze möglichst das Supergloable $_SESSION-Array:
PHP-Code:
<?php
    
if(!isset($_SESSION['zaehler'])) {
        
$_SESSION['zaehler'] = 1;
    } else {
        
$_SESSION['zaehler']++;
    }
?>
Zitat:
Wenn Sie wollen, dass ihr Script unabhängig von der Einstellung von register_globals funktioniert, müssen Sie stattdessen das Array $_SESSION verwenden, weil $_SESSION-Einträge automatisch registriert werden. Wenn Sie in Ihrem Script session_register() verwenden, funktioniert es nicht in Umgebungen, in denen die PHP-Anweisung register_globals deaktiviert ist.
Quelle: http://de3.php.net/session_register
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:38:23 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt