Daten übergeben an PHP Skript per URL
Alex Balmus
- php
1 wahsaga0 fabian2 Mathias Brodala0 fabian0 Mathias Brodala2 dedlfix2 wahsaga3 Der Martin
Stehe etwas auf dem Schlauch...
Rufe ein Skript wie folgt auf x.php?ID=4
Jetzt dachte ich die Variable ID sei in x.php mit 4 gefüllt,
aber ein Aufruf im Skript mittels
echo $ID;
gibt ein leeres Ergebnis...da müsste doch eigentlich der 4 ausgeben werden... Wieso nicht ? Ich verzweifle ... bitte helft...
hi,
Rufe ein Skript wie folgt auf x.php?ID=4
Jetzt dachte ich die Variable ID sei in x.php mit 4 gefüllt,
aber ein Aufruf im Skript mittelsecho $ID;
gibt ein leeres Ergebnis...da müsste doch eigentlich der 4 ausgeben werden... Wieso nicht ?
http://www.php.net/manual/de/reserved.variables.php#reserved.variables.get
http://php-faq.de/q/q-formular-variablen.html
gruß,
wahsaga
hello
da ich nicht zu den leuten gehöre die zwar den ganzen tag in diesem forum herumlungern, aber anscheinend immer nur obergescheit ein paar links setzen, durch die man sich dann meist sehr lange quälen muss ohne vielleicht jemals wirklich die benötigte antwort zu finden, um deren willen man ja in dieses forum postet, ansonsten könnte ich sie mir ja auch selber raussuchen, mit dem gleichen ergebnis, vielleicht stundenlang suchen zu müssen. vielleicht sollten diese leute sich eine andere beschäftigung suchen als nur genervt ein paar links zu platzieren und damit den eigentlichen sinn dieses forums zu untergraben.
der fehler den du begehst besteht darin, das wenn du an ein skript einen url-string übergibst, php diesen zugewiesenen wert nicht als lokale variable zur verfügung hat, sonder im globalen get-objekt.
das heißt, du kannst dein variable ID nicht über $ID aufrufen, sondern über $_GET['ID'] da diese wiegesagt teil des globalen get-objekts ist. natürlich kannst du per $ID=$_GET['ID']; deiner lokalen variable so den übergebenen wert an die get-variable zuweisen.
ich hoffe dir geholfen zu haben.
freundliche grüße
fabian
Hallo fabian.
da ich nicht zu den leuten gehöre die zwar den ganzen tag in diesem forum herumlungern, aber anscheinend immer nur obergescheit ein paar links setzen, durch die man sich dann meist sehr lange quälen muss ohne vielleicht jemals wirklich die benötigte antwort zu finden, um deren willen man ja in dieses forum postet, ansonsten könnte ich sie mir ja auch selber raussuchen, mit dem gleichen ergebnis, vielleicht stundenlang suchen zu müssen.
Du solltest wirklich kürzere Sätze schreiben. Bei der Hälfte dieses Brockens werden die meisten abwinken.
vielleicht sollten diese leute sich eine andere beschäftigung suchen als nur genervt ein paar links zu platzieren und damit den eigentlichen sinn dieses forums zu untergraben.
Was ist so schlimm daran, wenn jemand Links auf zielführende Informationen setzt? Warum sollte man tausendfach verfügbare Informationen immer und immer wieder herunterbeten?
der fehler den du begehst besteht darin, das wenn du an ein skript einen url-string übergibst, php diesen zugewiesenen wert nicht als lokale variable zur verfügung hat, sonder im globalen get-objekt.
Fakultativ: Ein solches Objekt existiert nicht. Es gibt jedoch eine Superglobale $_GET, welche ein Array ist.
das heißt, du kannst dein variable ID nicht über $ID aufrufen, sondern über $_GET['ID'] da diese wiegesagt teil des globalen get-objekts ist. natürlich kannst du per $ID=$_GET['ID']; deiner lokalen variable so den übergebenen wert an die get-variable zuweisen.
Und welchen Zweck hätte diese überflüssige Verdoppelung der Daten? Man kann direkt auf $_GET['ID'] zugreifen und damit arbeiten. Einer extra Variable bedarf es hierbei nicht.
Einen schönen Freitag noch.
Gruß, Mathias
Du solltest wirklich kürzere Sätze schreiben. Bei der Hälfte dieses Brockens werden die meisten abwinken.
wenn du schon probleme bei dem hast dann zweifle ich sehr stark ob du die inhalte der hälfte der links die du postest überhaupt durchgelesen hast. auf einer uni wärst du wahrscheinlich sowieso fehl am platz.
Was ist so schlimm daran, wenn jemand Links auf zielführende Informationen setzt? Warum sollte man tausendfach verfügbare Informationen immer und immer wieder herunterbeten?
nichts ist schlimm daran, wenn es gerechtfertigt ist weil die fragestellung vielleicht dermaßen komplex ist das die beantwortung den rahmen sprengen würde bzw zu umfangreich wäre und ein einfacher link auf gesammelte information besser gewählt wäre.
aber sicher nicht in diesem fall. eine einfache frage, eine einfache antwort genügt. wenn es dir zu aufwendig ist, lass es einfach und wende dich wichtigeren dingen zu.
Fakultativ: Ein solches Objekt existiert nicht. Es gibt jedoch eine Superglobale $_GET, welche ein Array ist.
richtig. nun erzähl mir aber bitte das ein array kein objekt ist!?
Und welchen Zweck hätte diese überflüssige Verdoppelung der Daten? Man kann direkt auf $_GET['ID'] zugreifen und damit arbeiten. Einer extra Variable bedarf es hierbei nicht.
man merkt das du noch nicht viel praxiserfahrung hast. was spricht dagegen den wert in einer variable zu sichern? vielleicht rufe ich das skript im nächsten moment per ajax zum beispiel erneut auf und übergeben einen ganz anderen wert per get. vielleicht möchte ich aber auch weiter operationen mit dem wert durchführen, und vielleicht ist es auch nur übersichtlicher und einfacher zu warten als direkt auf das array zuzugreifen?
also man sollte schon überlegen bevor man sich aufbläst und zum php-guru aufschwingt vor einem nicht so versierten user, in welchem maße ich ihm helfen kann und was ich lieber bleiben lassen sollte.
gute nacht
Hallo fabian.
Du solltest wirklich kürzere Sätze schreiben. Bei der Hälfte dieses Brockens werden die meisten abwinken.
wenn du schon probleme bei dem hast dann zweifle ich sehr stark ob du die inhalte der hälfte der links die du postest überhaupt durchgelesen hast. auf einer uni wärst du wahrscheinlich sowieso fehl am platz.
*plonk*
Mathias
echo $begrüßung;
Fakultativ: Ein solches Objekt existiert nicht. Es gibt jedoch eine Superglobale $_GET, welche ein Array ist.
richtig. nun erzähl mir aber bitte das ein array kein objekt ist!?
Ein PHP-Array ist definitiv kein Objekt im vom PHP verstandenen OOP-Sinn.
Und welchen Zweck hätte diese überflüssige Verdoppelung der Daten? Man kann direkt auf $_GET['ID'] zugreifen und damit arbeiten. Einer extra Variable bedarf es hierbei nicht.
was spricht dagegen den wert in einer variable zu sichern?
Es ist keine Sicherung. Das ist nur eine Kopie eines nur für das aktuelle Script vorhandenen Array-Eintrags in eine nur für das aktuelle Script vorhandene Variable.
vielleicht rufe ich das skript im nächsten moment per ajax zum beispiel erneut auf und übergeben einen ganz anderen wert per get.
Das macht überhaupt nichts, weil jeder Script-Aufruf seine eigenen $_GET/$_POST-Arrays usw. bekommt. (Ausnahmen gibt es bei $_SESSION, wenn die Session-ID die gleiche ist.)
vielleicht möchte ich aber auch weiter operationen mit dem wert durchführen,
Das wäre ein Argument. Man kann aber auch die Inhalte von $_GET und Konsorten verändern. In sehr einfachen Anwendungen (ungefähr: nicht länger als eine Bildschirmseite) spricht aber auch nichts dagegen, den Wert direkt im $_GET-Array zu verändern.
und vielleicht ist es auch nur übersichtlicher und einfacher zu warten als direkt auf das array zuzugreifen?
Nein, das finde ich nicht. Ich finde, hier geht Übersichtlichkeit verloren. Wenn ich einen Zugriff auf $_GET sehe, weiß ich, dass darin Eingaben vom Benutzer stecken, die ungeprüft sind und damit möglicherweise Daten enthalten können, die ich keinesfalls in meiner Datenbank stehen haben möchte oder so ohne weiteres ausgeben möchte. Bei einer einfachen Variablen ist nicht auf den ersten Blick ihre Herkunft zu erkennen.
Das Umkopieren ist einerseits nur angebliche Tippfaulheit - man opfert den Überblick der Werte-Herkunft und damit möglicherweise auch die Sicherheit der eigenen Anwendung ein paar unbedeutenden Tastendrücken.
Diese Umkopierunsitte scheint mir historische Ursachen gepaart mit Unwissen zu haben. In den PHP-Anfängen (Version 3 - Versionen davor sind praktisch unbedeutend) wurden alle EGPCS-Werte automatisch von PHP in "einfache" Variablen kopiert. Dies wurde aus gutem Grund im Laufe von PHP 4 per Default-Konfiguration geändert. Und ab PHP 6 wird es dieses Feature namens register_globals nicht mehr geben. Das automatische Anlegen hatte zur Folge, dass PHP-Scripte so geschrieben wurden, dass darin auf diese automatisch kopierten Werte direkt zugegriffen wird. Anstatt sein Script von Grund auf den aktuellen Gegebenheiten anzupassen - was ja Arbeit verursachen würde, deren Zeit man aus dem Freizeit-Kontingent abzweigen müsste - Zeit, die man viel sinnvoller in das Bereinigen seines Datenbestandes von Spam- und anderen Angriffen, die aufgrund der eigenen Programmierung erfolgreich waren, stecken könnte ... - kopiert man sich einfach die Werte in Variablen mit einfachen Namen und begründet das mit "Übersichtlichkeit".
also man sollte schon überlegen bevor man sich aufbläst und zum php-guru aufschwingt vor einem nicht so versierten user, in welchem maße ich ihm helfen kann und was ich lieber bleiben lassen sollte.
Finde ich auch.
echo "$verabschiedung $name";
hi,
wenn du schon probleme bei dem hast dann zweifle ich sehr stark ob du die inhalte der hälfte der links die du postest überhaupt durchgelesen hast. auf einer uni wärst du wahrscheinlich sowieso fehl am platz.
Wenn du nicht mal kapierst, mit wem du gerade redest - Mathias hat keine Links gepostet - dann dürftest du in den Gebäuden einer Uni wohl auch maximal Reinigungskraft sein?
nichts ist schlimm daran, wenn es gerechtfertigt ist weil die fragestellung vielleicht dermaßen komplex ist das die beantwortung den rahmen sprengen würde bzw zu umfangreich wäre und ein einfacher link auf gesammelte information besser gewählt wäre.
aber sicher nicht in diesem fall. eine einfache frage, eine einfache antwort genügt.
Die Antworten auf den verlinkten Seiten sind "einfach".
wenn es dir zu aufwendig ist, lass es einfach und wende dich wichtigeren dingen zu.
Wenn für jemanden das Erfassen der auf den verlinkten Seiten beschriebenen Sachverhalte "zu aufwendig", sollte der jenige es "einfach lassen".
man merkt das du noch nicht viel praxiserfahrung hast.
*lol*
was spricht dagegen den wert in einer variable zu sichern? vielleicht rufe ich das skript im nächsten moment per ajax zum beispiel erneut auf und übergeben einen ganz anderen wert per get.
Und dann, was wäre dabei der Vorteil deines "Sicherns" des Wertes aus $_GET in einer anderen Variablen?
also man sollte schon überlegen bevor man sich aufbläst und zum php-guru aufschwingt vor einem nicht so versierten user, in welchem maße ich ihm helfen kann und was ich lieber bleiben lassen sollte.
Ja, du solltest wirklich mehr überlegen, bevor du das nächste Mal postest.
gruß,
wahsaga
Hallo,
man merkt das du noch nicht viel praxiserfahrung hast.
man merkt, dass *du* noch nicht viel Praxiserfahrung hast. Von der Theorie ganz zu schweigen.
was spricht dagegen den wert in einer variable zu sichern?
Wenn es -so wie hier- nur ein simples Kopieren von einer Variablen in eine andere ist:
* unnütze Verschwendung von Speicherplatz
* Verschleierung der Herkunft von Informationen
* unnötige Beschäftigung des PHP-Interpreters
vielleicht rufe ich das skript im nächsten moment per ajax zum beispiel erneut auf und übergeben einen ganz anderen wert per get.
Ja und? Dann hast du eine neue Instanz des Scripts mit einem neuen Satz Variablen. So what?
vielleicht möchte ich aber auch weiter operationen mit dem wert durchführen,
Ja, wenn du das wirklich tust, ist das Umkopieren eventuell sinnvoll. Aber nur eine 1:1-Kopie nicht.
und vielleicht ist es auch nur übersichtlicher und einfacher zu warten als direkt auf das array zuzugreifen?
Ganz im Gegenteil. Je mehr Variablen ich benutze, desto mehr Stellen muss ich im Fall einer Änderung berücksichtigen. Greife ich direkt auf $_GET[] und/oder $_POST[] zu, brauche ich gar nichts weiter zu ändern, wenn das Script ansonsten clever geschrieben ist.
also man sollte schon überlegen bevor man sich aufbläst und zum php-guru aufschwingt vor einem nicht so versierten user, in welchem maße ich ihm helfen kann und was ich lieber bleiben lassen sollte.
Und man sollte sich schon überlegen, *wen* man hier mit dummen Bemerkungen anscheißt. Es ist einfach peinlich, wenn man erkennen muss, dass man gerade einem versierten Musiker erklärt hat, mit dem Violinschlüssel würde man den Geigenkasten abschließen.
gute nacht
Danke, ebenso.
Martin
Grundlage für Zitat #566.