Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Werte der Variablen werden nicht aus der URL übernommen

Empfohlene Antworten

Veröffentlicht

Hallo,

bin gerade bei PHP am Einsteigen und schon auf mein erstes Problem gestoßen.

Geschrieben werden soll ein skript mit zwei HTML-Formular Feldern, wo man seinen Name und seinen vornamen eingeben kann. (siehe http://warz.serveftp.net/formular1.php)

Dann gibt es noch einen Button zum versenden seiner Eingaben, den ich abschicken genannt habe (Variablenamen). Ich benutze die "get" methode um auf die variablen zuzugreifen => man kann die variable und deren werte in der url ablesen. nun habe ich eine if bedingung geschrieben, dass beim vorhandensein der variable $abschicken der text ausgegeben wird:

if ($abschicken) {

echo "Herzlich willkommen $vorname $nachname";

}

Leider übernimmt er die werte der variablen nicht aus der url, daher hat die variable $abschicken den Wert 0 und die if-bedingung greift nicht. Wer weiß rat??? :confused:

also du kannst die variablen doch auch per sessions weitergeben. dies ist wahrscheinlich eher zu empfehlen...

wahrscheinlich sind die global variablen auf deinem server "falsch" eingestellt.

und in deiner if bedinung muss das dann ($abschicken == "1") lauten und nicht ($abschicken)

Original geschrieben von sYnTaxx

wahrscheinlich sind die global variablen auf deinem server "falsch" eingestellt.

Nein sie sind richtig eingestellt, er greift nur falsch drauf zu.

$_GET['variable'] anstatt $variable

ist dein Freund. ;)

Gruß Jaraz

  • 2 Wochen später...

Sollte die Bedingung so aussehen?

if($_GET[abschicken] == "1")

Allerdings setzt er denn wert für die variable abschicken nicht auf 1 :confused:

Original geschrieben von EvilKnivl

Sollte die Bedingung so aussehen?

if($_GET[abschicken] == "1")

Allerdings setzt er denn wert für die variable abschicken nicht auf 1 :confused:

mit $_GET[abschicken] = "1 " würdest du den wert auf 1 setzen.

mit $_GET[abschicken] == "1" würde der inhalt von $_GET[abschicken] auf "1" geprüft und dann je nach ergebnis die if anweisungen ausgeführt.

Das Problem ist ja, dass das Drücken des Abschicken Buttons die Variable Abschicken auf 1 setzen sollte. Da ich die get-Methode benutze, sehe ich in der URL ja die werte meiner Variablen. Die Werte des Vornamen und des Nachnamen übernimmt er ja ohne zu mosern. Allerdings steht dann am ende

...?vorname=soundso&nachname=soundso&abschicken= [gähnende Leere]

Ich arbeite mit einem Buch für PHP-Einsteiger, allerdings scheint der Autor dort einen kleinen Fehler reingebaut zu haben :P

Hallo,

versuche es mal mit folgendem ... das sollte unabhängig davon sein ob der Variablen ein Wert zugewiesen ist oder nicht.


if (isset($_GET['abschicken']))
echo "Hallo".$_GET['vorname']." ".$_GET['nachname']."<br />";
[/PHP]

Mfg

Superuserif

abschicken ist bei dir der name des buttons.

wenn du diesen drückst wird der wert der variable "true" über die get variable gesendet. "true" wird interpretiert sich in der url so das eine variable da ist. wenn die varible den wert "false" hätte würde sie nicht in der url angezeigt werden!

wenn du 2 buttons hättest und du so das form submitten würdest ware in der url der name des buttons den du gedrückt hast mit deiner "gähnenden leere" in der url und die varible des anderen buttons wäre gar nicht vorhanden!

einigermaßen verständlich?

Gruß

kills

Und falls Du's unbedingt mit einem Wert machen willst:


<input type="submit" name="abschicken" value="Abschicken">
[/PHP]

Dann kannst über

[PHP]
if ($_GET['abschicken'] == "Abschicken")
{
//machwas
}

bzw. bei PHP <4.1.0


if ($HTTP_GET_VARS['abschicken'] == "Abschicken")
{
//machwas
}
[/PHP]

ICQ

Original geschrieben von kills

abschicken ist bei dir der name des buttons.

wenn du diesen drückst wird der wert der variable "true" über die get variable gesendet. "true" wird interpretiert sich in der url so das eine variable da ist. wenn die varible den wert "false" hätte würde sie nicht in der url angezeigt werden!

wenn du 2 buttons hättest und du so das form submitten würdest ware in der url der name des buttons den du gedrückt hast mit deiner "gähnenden leere" in der url und die varible des anderen buttons wäre gar nicht vorhanden!

einigermaßen verständlich?

Jetzt ja :D Ich dachte eben nur, dass, wie bei den vorhergehenden variablen 'vorname' und 'nachname', ebenfalls ein wert hinter dem Gleicheichen stehen müßte, in diesem fall eben 1.

Nichtsdestotrotz war dieser wert für abschicken in meiner url ja vorhanden. Ich denke das Problem war die syntax. wie ich oben schon erwähnt habe, benutze ich ein Buch vom franzis-verlag mit dem schönen titel "PHP- Echt einfach". Einfach in den Wahnsinn getrieben, auf jeden fall :uli

hier nun der code

<?php

//formular1.php - korrigierte Fassung

//Dynamische Webseiten mit PHP4 - Echt einfach Franzis Verlag 2001

//© J. Franke 2002

?>

<form name="formular1" action="formular1.php" method="get">

Bitte geben Sie hier Ihren Vornamen ein: <input type=text name=vorname><br><br>

Bitte geben Sie hier Ihren Nachnamen ein: <input type=text name=nachname><br><br>

<input type=submit name=abschicken>

</form>

<?php

if(isset($abschicken)){

echo "<b>Herzlich willkommen $vorname $nachname.</b>";

}

?>

Man beachte, dass es sich hier schon um die korrigierte Fassung von beigelegter CD handelt (Die ich leider zu dem Zeitpunkt noch nicht hatte, da das Buch nur ausgeliehen ist). Im Buch steht der ganze spass sogar noch ohne das isset. Da macht Programmieren Spass

Original geschrieben von superuser

Hallo,

versuche es mal mit folgendem ... das sollte unabhängig davon sein ob der Variablen ein Wert zugewiesen ist oder nicht.


if (isset($_GET['abschicken']))
echo "Hallo".$_GET['vorname']." ".$_GET['nachname']."<br />";
[/PHP]

Mfg

Superuserif [/b]

$_GET ist der Schlüssel :bimei

Jetzt funzt es auch.

Ich bedanke mich an der Stelle für die gute Hilfe, die alle geleistet haben.

greetz evil

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.