Erste Gehversuche PHP - Variablenübergabe klappt nicht |
Willkommen, Gast ( Anmelden | Registrierung )
Erste Gehversuche PHP - Variablenübergabe klappt nicht |
Gast_Tom._* |
02.01.2004 - 14:25
Beitrag
#1
|
Gäste |
Hallo Gemeinde
in den letzten Tagen habe ich EVO2 gezündet :wink: Soll heissen, dass ich mich nun mit PHP auseinandersetze. Ich habe: Apache PHP Version 4.0.4pl1 System Windows 95/98 4.10 Server API Apache phpMyAdmin 2.4.0 MySQL 3.23.58 auf localhost ...soweit so gut! Läuft alles und ich bin zufrieden Meine ersten Scripte laufen auch und funktionieren. Jetzt habe ich erstmalig versucht eine Variable zu übergeben und das klappt nicht?! :? Hier mein Versuch: <html> <head> <title>welcome.html</title> </head> <body> <a href="welcome.php?name=Kevin" title="">Hallo, ich bin Kevin!</a> </body> </html> ----------------------------------------------- Browseraufruf echo = Hallo, ich bin Kevin! // Link-Weiterleitung ist ok! ----------------------------------------------- <html> <head> <title>welcome.php</title> </head> <body> <?php echo ("Willkommen auf unserer Website, $name!"); ?> </body> </html> --------------------------------------------- Browseraufruf echo = Willkommen auf unserer Website, ! // $name wird nicht übergeben?! Warum nicht? --------------------------------------------- |
|
|
02.01.2004 - 14:54
Beitrag
#2
|
|
Anwärter auf W3.org Mitgliedschaft Gruppe: User Beiträge: 550 Mitglied seit: 28.11.2001 Wohnort: Berlin Friedrichshain Mitglieds-Nr.: 107 |
Hallo
ZITAT PHP Version 4.0.4pl1 Das ist ja steinalt!
Aktuell: 4.3x ZITAT <?php
echo ("Willkommen auf unserer Website, $name!"); ?> Das sollte eigentlich funktionieren. Allerdings ist echo keine Funktion. Lasse mal die Klammern weg. Vielleicht klappt es ja dann. (Mit den Eigenheiten der frühen PHP 4 Versionen bin ich nicht vertraut.) Also: echo "Willkommen auf unserer Website, $name!"; Noch besser für die Lesbarkeit des Codes (Syntaxhighlightning): echo "Willkommen auf unserer Website, ".$name."!"; Tschö, Auge |
|
|
Gast_Tom._* |
02.01.2004 - 16:47
Beitrag
#3
|
Gäste |
ZITAT PHP Version 4.0.4pl1
Hi, wie du der Überschrift entnehmen kannst "Erste Gehversuche..." daher dürfte die Version wohl nicht soo wichtig sein, oder?!
Das ist ja steinalt! Aktuell: 4.3x?> Ausserdem habe ich einfach streng nach http://www.isgb.de/wamp/ installiert! Was soll man anderes machen, wenn man auf andere angewiesen ist?! Ich bin erstmal froh, dass das jetzt so alles läuft und ich erste Scripte ausprobieren kann! Der Rest kommt 'step by step'. ZITAT ".$name."!"; ...klappt leider auch nicht. |
|
|
02.01.2004 - 16:58
Beitrag
#4
|
|
Weiss zuviel!! Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 |
Hallo,
also ich mach zwar kein PHP - sondern Perl - jedoch, wenn $name weder initialisiert wird noch einen Wert zugewiesen bekommt, könnte darin der Grund liegen. $name ist nach dem Code-Schnipsel jedenfalls nicht existent. :? War's das? |
|
|
Gast_Tom._* |
02.01.2004 - 17:04
Beitrag
#5
|
Gäste |
Die Wertzuweisung erfolgt doch oben...?!
<a href="welcome.php?name=Kevin" title="">Hallo, ich bin Kevin!</a> echo ("Willkommen auf unserer Website, $name!"); :? |
|
|
02.01.2004 - 17:27
Beitrag
#6
|
|
Weiss zuviel!! Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 |
[edit]
Hi, eben nicht. Variablen haben keine Dateiübergreifende Gültigkeit. Du übergibts an welcom.php einen Wert (eine Zeichenkette) mit den Methoden POST oder GET (hängt von der Grundkonfiguration des Servers ab), die erst noch aufgeschlossen werden muss. $name ist dem PHP erst bekannt, wenn der Wert, der aus dem Link kommt auch ausgwertet und zugewiesen wird. Es gibt die Umgebungsvariable QUERY_STRING. Die kann mit Hilfe der Funktion get_env oder ähnlich ausgewertet werden. Ich glaub nicht, dass das viel anders ist als bei Perl, denn die CGI-Regeln gelten hier sicher genauso. Ob es bei PHP ein CGI-Modul gibt, das einem diese Arbeit mit wenigen Befehlen abnimmt, wie es bei Perl existiert weiß ich nicht (bei SelfPHP hab ich auf den ersten Blick nichts gefunden). [edit] |
|
|
02.01.2004 - 19:44
Beitrag
#7
|
|
Anwärter auf W3.org Mitgliedschaft Gruppe: User Beiträge: 550 Mitglied seit: 28.11.2001 Wohnort: Berlin Friedrichshain Mitglieds-Nr.: 107 |
Hallo
ZITAT Variablen haben keine Dateiübergreifende Gültigkeit. Je nach Einstellung in der php.ini schon! Das hängt u. A. von der Einstellung register_globals ab. Beim Wert on wird die Variable bei GET automatisch aus dem URL-Parameter generiert, so wie Robin/Dakar/etc.p.p. es in seinem Codestück beschrieb. Das ist unter Sicherheitsaspekten natürlich ein Graus, zum Üben aber unerheblich (Man sollte natürlich nicht vergessen, das bei Veröffentlichung zu ändern). Wenn register_globals off ist, kann man nur noch mit globalen Variablen auf die übergebenen Werte zugreifen. Aus name=Bla an der URL wird $_GET["name"] im Empfängerskript. Und die ließe sich auch in echo einbinden. Tschö, Auge nachtrag: Das globale Array $_GET gibt er erst seit Version 4.2, vorher (ab Version 4.0) gibt es das Array $HTTP_GET_VARS. |
|
|
Gast_Tom._* |
02.01.2004 - 20:06
Beitrag
#8
|
Gäste |
ZITAT Robin/Dakar/etc.p.p. Danke! Auge, vielen Dank! :roll: |
|
|
Gast_Tom._* |
02.01.2004 - 20:09
Beitrag
#9
|
Gäste |
ZITAT Beim Wert on wird die Variable bei GET automatisch aus dem
URL-Parameter generiert. ...so ist`s bei mir. |
|
|
02.01.2004 - 22:20
Beitrag
#10
|
|
Ausnahme Poster Gruppe: User Beiträge: 150 Mitglied seit: 24.10.2003 Wohnort: Berlin Mitglieds-Nr.: 1.544 |
ZITAT ZITAT Beim Wert on wird die Variable bei GET automatisch aus dem
URL-Parameter generiert. ...so ist`s bei mir. Gewöhne Dir trotzdem lieber heute als morgen an, auf Variablen, die von Benutzerseite auf den Server gesendet werden, grundsätzlich über die entsprechenden Arrays ($_GET, $_POST, $_COOKIE ...) zuzugreifen. Aktualisiere ggf. Deine PHP-Version, 4.0.x ist mehr als veraltet und enthält möglicherweise kritische Bugs. register_globals kann eine fatale Sicherheitslücke darstellen und ist daher in aktuellen PHP-Versionen per default off. Du solltest es lokal bei Dir in der php.ini abschalten und obendrein das error_reporting hochdrehen. Ein Skript, welches dann noch Warnungen ausgibt, sollte nicht ins Netz gestellt werden, ohne die Ursachen der Warnungen behoben zu haben. Weiterhin empfehlenswert ist das Studium der FAQ der Newsgroups de.comp.lang.php.* (und ggf. auch die Newsgroups selbst). Gruß n! |
|
|
Google Bot |
Beitrag
#
|
Google Ads |
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 29.04.2024 - 16:14 |