hallo
dieser tag hab ich irgendwie nie verstanden. ich weiss dass es sich für formulare handelt. jedoch was bezweckt man mit "action"?
und wenn benutze ich method=post und wann benutze ich method=get?
hallo
dieser tag hab ich irgendwie nie verstanden. ich weiss dass es sich für formulare handelt. jedoch was bezweckt man mit "action"?
und wenn benutze ich method=post und wann benutze ich method=get?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Feedbacks</title>
</head>
<body>
<?php
if ($action == "add") {
echo "action = add";
}
else {
?>
<form action="Feedbacks.php?action=add" method="get" target=_top>
* Name/Firma <input type=text name=name>
Email <input type=text name=mail>
Homepage <input type=text name=hp>
<textarea name="text" cols="35" rows="8"></textarea>
<input type="submit" value=Senden>
</form>
<?php
}
?>
</body>
</html>
Alles anzeigen
Wird hier die variable "action" nicht gesetzt oder warum erscheint bei mir das echo nicht?
Versuch es mal so:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Feedbacks</title>
</head>
<body>
<?php
$action = $_GET["action"];
if ($action == "add") {
echo "action = add";
}
else {
?>
<form action="Feedbacks.php?action=add" method="get" target=_top>
* Name/Firma <input type=text name=name>
Email <input type=text name=mail>
Homepage <input type=text name=hp>
<textarea name="text" cols="35" rows="8"></textarea>
<input type="submit" value=Senden>
</form>
<?php
}
?>
</body>
</html>
Alles anzeigen
Das Ansprechen einer Get-Variable (genauso wie von Post-Variablen) direkt über den Variablennamen ist veraltet.
Ansonsten hast du m.E. den Sinn von Get/Post sowie von Action="" schon verstanden oder?
Grüße,
Lizzard
hmm ... da ändert sich aber leider immer noch nichts.
Es geht auch anders, ohne $action:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Feedbacks</title>
</head>
<body>
<?php
if ($_GET) {
echo "action = add";
}
else {
?>
<form action="Feedbacks.php" method="get" target=_top>
* Name/Firma <input type=text name=name>
Email <input type=text name=mail>
Homepage <input type=text name=hp>
<textarea name="text" cols="35" rows="8"></textarea>
<input type="submit" value=Senden>
</form>
<?php
}
?>
</body>
</html>
Alles anzeigen
Danke komma, es klappt
phpfan liegt das problem bei mir oder warum funktioniert dein beispiel bei mir nicht?
Ein Beispiel:
<?php
if (isset($_POST['name']))
{
echo "Name: " . $_POST['name'] . "
Vorname: " . $_POST['name'] . "
eMail: " . $_POST['email'];
}
else
{
echo "<form action='" . $_SERVER['SCRIPT_NAME'] . "' method='post'>
Name: <input type='text' name='name'>
Vorame: <input type='text' name='vorname'>
eMail: <input type='text' name='email'>
<input type='submit' name='submit' value='Abschicken'>
</form>";
}
?>
Alles anzeigen
if ($_GET['action'])
Auch falsch!!!
schreibe mal an den Anfang des Scriptes die Zeilen
error_reporting(E_ALL);
ini_set("display_errors", true);
Dann haut dir PHP nämlich die Zeile beim ersten Aufruf des Scriptes um die Ohren!
hmm ... ich weiss eigentlich gar nicht wieso. denn if ($_GET['action']) klingt für mich ja eigentlich logisch.
abgesehen davon, müsste es nicht if (isset($_GET['action'])) heissen, statt if (isset($_POST['action'])) ? denn bei mir funktioniert nur die GET-methode.
1. Ob du $_GET oder $_POST nehmen musst, hängt von method= im Formular ab.
2. if ($_GET['action']) ist garnicht logisch. Wenn die Seite das erste Mal aufgerufen wird, also nicht vom Formular, dann ist $_GET['action'] nicht gesetzt und mit einer nicht existenten Variablen kann man logischerweise keinen Vergleich machen. PHP ist da sehr gnädig, wenn man das error_reporting nicht hochschraubt. Deshalb solltest du die oben erwähnten Zeilen während der Entwicklung eines Scriptes immer einbauen.