querystring --> sid mit ? oder mit & beginnen???

cobraone

Mitglied
Hallo ich habe folgendes Problem und könnte eure Hilfe gebrauchen.

Nach etwa 3tagen auprobieren, habe ich mir nun schon über 6h Tutorials zum Thema "querystring" auf verschiedenen Websites angesehen, dabei aber keine Antwort auf meine Fragen gefunden.
(Auch mit :suchen: ! ;) )

Nun habe ich einen so vollen Kopf und blick gar nicht mehr durch!


:confused: Meine Frage ist:
Wie kann ich ein link möglichst einfach generieren, das einen Querystring mit SID, und sonst noch drei bis vier Variablen mit liefert? Dabei das Zeichen "?" am anfang direkt nach

.../datei.php?...

und danach die "&" richtig gesetzt werden

.../datei.php?eins=werteins&zwei=wertzwei&drei=wertdrei...???


Das Problem dabei ist, das die Variablen "eins=werteins" (oder auch die anderen) nicht immer definiert, und deshalb mitgeschickt wird.


oft kriege ich dabei: ".../datei.php?&drei=wertdrei"
oder dann so: ".../datei.php&drei=wertdrei"


Wer kann mir dabei helfen? Ich steh da voll an!
Bin echt dankbar für jeden Tip!!!
 
Ich versteh irgendwie nicht so ganz, wo dabei das Problem ist.

Code:
echo "datei.php?eins=" . $werteins . "&zwei=" . $wertzwei . "&drei=" . $wertdrei; // und so weiter
Wenn die Variablen leer sind, wird eben einfach nichts übergeben - was aber im Normalfall nicht unbedingt so schlimm sein sollte.
Ansonsten müsstest Du eben vorher überprüfen, welche von den Variablen einen Wert enthalten und dementsprechend den String zusammensetzen.
 
Wenn die Variablen leer sind kommt die ganze Variabel erst gar nicht in den Querystring.

Aber Danke erstmal...
 
Das meinte ich ja mit überprüfen, ob ein Wert drinsteht und je nachdem dann die Variable mit in den String schreiben:
Code:
if (isset($werteins)) { $eins = "eins=" . $werteins; }
if (isset($wertzwei)) { $zwei = "zwei=" . $wertzwei; }
if (isset($wertdrei)) { $drei = "drei=" .  wertdrei; }

$query = "datei.php";
if (!empty($eins) ||!empty($zwei) || !empty($drei)) 
{ 
    $query = $query . "?";
    if (!empty($eins) && empty($zwei) && empty($drei)) { $query = $query . $eins; }
    if (!empty($eins) && !empty($zwei) && empty($drei)) { $query = $query . $eins . "&" . $zwei; }
    // und so weiter, sowas ist eben etwas Fleissarbeit. :)
}
 
warum denn so kompliziert? häng doch einfach die variablen an die url, egal ob leer oder nicht. ne leere variable in der url sollte ja keine probleme geben.
 
@Chino Weil ich mit der Servervar: SID arbeite, fragt der meines Wissens (was sich in Test bestätigt hat) erst ab, ob die Session ID in einem Temp-Cookie auf der Client seite gespeichert werden kann. Wenn nicht setzt dieser SID automatisch auf: PHPSESSID=ölafgi4u90et... . Das heisst, ich weiss zuvor gar nicht ob die Var ins Querystring kommt oder nicht.

edit:
Wenn der Client Cookies erlaubt --> gibts automatisch kein:

.../datei.php?PHPSESSID=ioinviwe&eins=werteins...

sondern nur:

.../datei.php&eins=werteins...

Falls der Client Cookies nicht zulässt, wird die SID AUTOMATISCH eingefügt was so aussieht:

.../datei.php?PHPSESSID=ioinviwe&eins=werteins...

das ganze sieht so aus:
PHP:
$qstring  = SID;
 
Zuletzt bearbeitet:
irgendwie versteh ich nich was du willst. man kanns sich auch schwerer machen als es schon ist ;o)
cobraone hat gesagt.:
Falls der Client Cookies nicht zulässt, wird die SID AUTOMATISCH eingefügt was so aussieht:
:rtfm: http://www.php.net/manual/de/ref.session.php:

Die Unterstützung von Sessions erlaubt Ihnen, eine beliebige Anzahl von Variablen zu registrieren und diese über Anfragen hinweg zu erhalten. Wenn ein Besucher Ihre Website aufruft, überprüft PHP automatisch (falls session.auto_start auf 1 gesetzt ist) oder auf Anfrage (explizit durch session_start() oder implizit durch session_register()), ob mit der Anfrage schon eine bestimmte Session-ID gesendet wurde. Wenn dies der Fall ist, wird die zuvor gespeicherte Umgebung wiederhergestellt.

da ich mich allerdings nich darauf verlasse, dass session.auto_start aktiviert ist und auch korrekt an alle urls die sid dranhängt (z.b. bei formulare oder bei javascript-redirects), mach ich das lieber manuell. aber imho wird die session am ende der url drangehängt wenns automatisch passiert.
 
Zuletzt bearbeitet:
Zurück