Parameterweitergabe
Phil
- php
Der User meldet sich auf meiner Seite an, dafür muss er Daten wie Name etc. eingeben.
Ich möchte nun gerne, dass der eingegebene User-Name zusätzlich als Parameter an die Folgeseite nach der Anmeldung gegeben wird.
Folg. Code gibt die Seite nach der Anmeldung an:
-->header("Location: register2.php?#top".SID);<--
Das "#top" ist ein Texstempel in der Folgedatei, welcher zur not auch weggelassen werden könnte.
Folgender Code steht zur Eingabe der Daten bereit:
--><input type="text" name="nic" size="20"><--
Verarbeitet werden die Daten in einer externernen Datei.
Ist es irgendwie möglich, den Namen der als "nic" in das Formular eingeben wurde, zusätzlich als Parameter weiterzugeben?
Danke für Hilfe
MfG
Hallo du da draußen,
Folg. Code gibt die Seite nach der Anmeldung an:
-->header("Location: register2.php?#top".SID);<--
Du hängst einfach an das Fragezeichen ein nic= dran, danach den Wert von nic, der übertragen wurde und danach dein #top. Steht aber schon sehr oft im </archiv/>.
Und lies bitte die </faq/>.
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Du hängst einfach an das Fragezeichen ein nic= dran, danach den Wert von nic, der übertragen wurde und danach dein #top. Steht aber schon sehr oft im </archiv/>.
könnte das dann so aussehen?
-->header("Location: register2.php?nic=nic#top".SID);<--
Ich hab echt noch nie ein Parameter weitergegeben, deshalb tuh ich mich da auch sehr schwer.
Hab auch im Archiv geschaut, aber nichts wertvolles gefunden, dazu.
Wie kann ich das Übergebene Parameter eigentlich auf der FolgeSeite brauchbar machen?
MfG
Hallo du da draußen,
könnte das dann so aussehen?
-->header("Location: register2.php?nic=nic#top".SID);<--
Ja, wenn du mir noch kurz erklärst, was in der Konstante SID drinnen steht.
Wie kann ich das Übergebene Parameter eigentlich auf der FolgeSeite brauchbar machen?
Auf der Folgeseite kannst du auf den Parameter mit $_GET['nic'] zugreifen. Du kannst natürlich auch (fast) beliebig viele weitere Parameter angeben, indem du sie mit einem & dranhängst, also z. B. ?nic=nic&pwd=pwd
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Ja, wenn du mir noch kurz erklärst, was in der Konstante SID drinnen steht.
Die Anmeldedaten werden über ein eigenes Script überprüft und in meine Datenbank eingetragen.
Dabei wird wahrscheinlich die Session als SID erstellt und gespeichert und weitergeben.
Wichtig ist eben, das der nic nicht nur von dem Script verarbeitet wird, sondern über das Parameter erhalten bleibt.
MfG
Hallo ihr da draußen,
Dabei wird wahrscheinlich die Session als SID erstellt und gespeichert und weitergeben.
Aber dann könntest du doch eigentlich auch den Parameter in die Session mit aufnehmen. Ich weiß nicht, ich kenne mich nicht so gut mit Sessions aus, aber das SID darf auf jeden Fall mal nicht nach dem #top stehen. Ich weiß nicht genau wo es hinmuss, da ich auch nicht genau weiß, was da drin steht.
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Aber dann könntest du doch eigentlich auch den Parameter in die Session mit aufnehmen. Ich weiß nicht, ich kenne mich nicht so gut mit Sessions aus, aber das SID darf auf jeden Fall mal nicht nach dem #top stehen. Ich weiß nicht genau wo es hinmuss, da ich auch nicht genau weiß, was da drin steht.
In SID steht höchst warscheinlich die Session ID.
Aber:
header("Location: register2.php?nic=nic#top".SID);
So kann das garnicht funktionieren, da:
1. das "$" vor dem Variablennamen fehlt.
2. "#top" fälschlicherweise vor SID steht.
Also sollte das Ganze inetwa so aussehen:
header('Location: register2.php?nic='.$nic.'SID='.SID);
Ich bin mir nichtmehr ganz sicher, ob das 'SID=' benötigt wird, da ich das nie verwende. Die Session ID wird sowiso in einem auf die Lebenszeit des Browserfensters eingeschränktes Cookie gespeichert, womit es überflüssig wird, diese seperat zu übertragen.
Zugriff auf Variablen:
Ich schätze, du solltest dich erstmal etwas auf www.php.net umsehen, und dann Fragen stellen. Trotzdem erkläre ich Dir das ganz kurz:
Sofern in der php.ini der Wert "register_globals" auf "On" gesetzt ist, werden die globalen Arrays $_GET, $_POST, $_SESSION, usw. automatisch Registriert. Die Reihenfolge wird dadurch jedoch wieder durch einen Wert in der php.ini bestimmt (d.h., gibt es in $_GET und in $_SESSION eine Variable "blabla", mit je unterschiedlichen Werten, bestimmt die Einstellung, welcher nun registriert wird).
D.h. der Wert aus dem globalen Array wird "registriert", und steht nun in $variablenname (also z.b. $nic).
Ist "register_globals" deaktiviert, stehen die Variablen in den Arrays:
In älteren PHP Versionen:
$HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_SESSION_VARS, usw.
und in neueren PHP Versionen (ab 4.3.1 denke ich):
$_GET, $_POST, $_SESSION, usw.
aber auch in den oben genannten (aufgrund Abwärtskompatibilität).
Ich hoffe du verstehst das halbwegs, und alle deine Fragen wären somit geklärt. ;)
Hallo ihr da draußen,
header('Location: register2.php?nic='.$nic.'SID='.SID);
Das & vor dem ersten SID fehlt, also richtig:
header("Location: register2.php?nic=".$nix."&SID=".SID);
Ich bin mir nichtmehr ganz sicher, ob das 'SID=' benötigt wird, da ich das nie verwende. Die Session ID wird sowiso in einem auf die Lebenszeit des Browserfensters eingeschränktes Cookie gespeichert, womit es überflüssig wird, diese seperat zu übertragen.
Überflüssig würde ich es nicht nennen. Was soll denn deiner Meinung nach passieren, wenn das Cookie abgelehnt wird?
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Hallo ihr da draußen,
Das & vor dem ersten SID fehlt, also richtig:
header("Location: register2.php?nic=".$nix."&SID=".SID);
Was soll das $nix und das gewurstel mit dem SID
Das mit der SID sollte eigentlich so bleiben, wie es in meinem Code war. Keine Ahnung was ihr da zusammengebastelt habt.
Bis jetzt hat das mit dem "Top" prima funktioniert, und die SID wurde auch korrekt weitergegeben.
Anscheinend soll das $nix später mit
$_get $nix aussgelesen werden, oder wie?
Na ich werde mal schauen, ob es geht
Hallo ihr da draußen,
Das & vor dem ersten SID fehlt, also richtig:
header("Location: register2.php?nic=".$nix."&SID=".SID);Was soll das $nix und das gewurstel mit dem SID
Schau auf deine Tastatur, das x ist direkt neben dem c. Also ein Tippfehler.
Das mit der SID sollte eigentlich so bleiben, wie es in meinem Code war. Keine Ahnung was ihr da zusammengebastelt habt.
Bis jetzt hat das mit dem "Top" prima funktioniert, und die SID wurde auch korrekt weitergegeben.
Das glaube ich nicht. Das würde ja bedeuten, dass die ID des Ankers #topabcdefgfdhd... wäre, also das #top+die SID.
Anscheinend soll das $nix später mit
$_get $nix aussgelesen werden, oder wie?
Siehe oben. Und $_GET schreibt mach GROSS!
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Der Nic wurde nicht weitergegeben.
In der Browserleiste steht hinter "nic" garnichts, auser "SID", wo aber auch nichts dahinter steht. Es wurde also nichts weitergegeben.
Ich habe gerade festgestellt, das diese SID natürlich die Session ID ist, und schon beim betreten des Anmeldeformulars erstellt wird.
Durch das #Top wird die SID anscheinend wirklich gekickt.
Das ist aber nicht so schlimm, da ja die Anmeldung trotsdem funktioniert.
Was soll ich also tun, damit es vielleicht doch geht?
MfG
Hallo du da draußen,
Was soll ich tun, damit es vielleicht doch geht?
In die Variable $nic das reinladen, was übertragen werden soll.
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Hallo Kall,
In SID steht höchst warscheinlich die Session ID.
nein, das steht der Name und die id der Session in der Form "name=id" drin
siehe http://de3.php.net/manual/de/ref.session.php#session.constants
header("Location: register2.php?nic=nic#top".SID);
So kann das garnicht funktionieren, da:
- das "$" vor dem Variablennamen fehlt.
- "#top" fälschlicherweise vor SID steht.
3. weil das kein gültiger header ist (hinter "Location:" gehört eine ganze url, nicht nur der Dateiname (auch wenn es so meist auch funktioniert))
Sofern in der php.ini der Wert "register_globals" auf "On" gesetzt ist, werden die globalen Arrays $_GET, $_POST, $_SESSION, usw. automatisch Registriert.
auf $_GET, $_POST, $_SESSION, $_SERVER, $_ENV, $_COOKIE, $_REQUEST und $_FILES kannst du immer zugreifen - egal wie register_globals steht.
Die Reihenfolge wird dadurch jedoch wieder durch einen Wert in der php.ini bestimmt (d.h., gibt es in $_GET und in $_SESSION eine Variable "blabla", mit je unterschiedlichen Werten, bestimmt die Einstellung, welcher nun registriert wird).
weißt du zufällig wie die Einstellung heißt? Ich wusste garnicht, das es so eine Einstellung gibt.
Ist "register_globals" deaktiviert, stehen die Variablen in den Arrays:
die stehen immer da drin :-)
und in neueren PHP Versionen (ab 4.3.1 denke ich):
knapp daneben ist auch vorbei: ab 4.1.0 :-)
Grüße aus Nürnberg
Tobias
hi,
header("Location: register2.php?nic=nic#top".SID);
[...] 3. weil das kein gültiger header ist (hinter "Location:" gehört eine ganze url, nicht nur der Dateiname (auch wenn es so meist auch funktioniert))
na endlich, ich dachte schon es wird gar nicht mehr erwähnt ...
;-)
gruss,
wahsaga
Hallo du da draußen,
OK, korrigieren wir es:
header("Location: http://derserver.de/Diekompletteadresse/register2.php?nic=".$nic."&".SID."#top");
Jetzt stimmt's aber, oder?
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Hallo Dogfish,
OK, korrigieren wir es:
header("Location: http://derserver.de/Diekompletteadresse/register2.php?nic=".$nic."&".SID."#top");
Jetzt stimmt's aber, oder?
wenn du Christian heißt, ja (mal abgesen, davon, das es die Datei an der Stelle nicht gibt) :-) *scnr*
Grüße aus Nürnberg
Tobias