Überlieferung zweier versch. Variablen durch FORM SELECT
LinuxUser
- php
Hallo!
Ist es irgendwie möglich mit einem SELECT-Feld in einem FORM 2 verschiedene Variablen zu übermitteln?
Ich habe 3 Auswahlmöglichkeiten, wo bei den ersten beiden Seite 1 zum Verarbeiten aufgerufen werden soll und noch eine entsprechende Variable benötigt wird.
Bei der letzten Auswahlmöglichkeit soll Seite 2 aufgerufen werden.
Vielen Dank im Voraus!
Euer LinuxUser
P.S.:
Bis jetzt sieht es so aus:
<form action="?go=$go&mail_id=$mailshow[id]&PHPSESSID=$PHPSESSID" method="post" accept-charset="ISO-8859-1">
<select name="go" id="go" size="1">
<option value="mailnew&action=answer">Antworten</option>
<option value="mailnew&action=forward">Weiterleiten</option>
<option value="mail&action=delete">Löschen</option>
</select>
<input type="submit" value="Go"">
</form>
Eine Variable (in diesem Fall $go) wird übermittelt. Wenn ich jedoch eine zweite Variabel getrennt durch ein & oder ein Semikolon dahinterschreiben möchte, funktioniert es nicht mehr.
Ist es irgendwie möglich mit einem SELECT-Feld in einem FORM 2 verschiedene Variablen zu übermitteln?
Nein. Ein <select>-Feld stellt genau eine Auswahlmöglichkeit dar, nicht mehr, nicht weniger.
<form action="?go=$go&mail_id=$mailshow[id]&PHPSESSID=$PHPSESSID" method="post" accept-charset="ISO-8859-1">
<select name="go" id="go" size="1">
<option value="mailnew&action=answer">Antworten</option>
<option value="mailnew&action=forward">Weiterleiten</option>
<option value="mail&action=delete">Löschen</option>
Es wäre sinnvoller und sicherer, wenn Du einfach den Inhalt von go überprüfst:
<form action="?go=<?php
switch ($_POST["go"])
{
case "answer": echo "mailnew&action=answer"; break;
case "forward": echo "mailnew&action=forward" etc..
};
?>&mail_id=bla.." method="post" blabla..
Auf diese Art und Weise kann Dir auch niemand etwas unterjubeln.
Davon mal abgesehen hat ein alleinstehendes Und-Zeichen (&) in HTML _nicht_ zu suchen. Wenn Du ein & haben willst, dann muß Du in HTML & schreiben. Das gilt auch für Adressen.
Dein obiges <form> ist also falsch, richtig lautet es
<form action="?go=$go&mail_id=$mailshow[id]&PHPSESSID=$PHPSESSID" ...>
Siehe auch http://validator.w3.org.
Gruß,
soenk.e
Es wäre sinnvoller und sicherer, wenn Du einfach den Inhalt von go überprüfst:
<form action="?go=<?php
switch ($_POST["go"])
{
case "answer": echo "mailnew&action=answer"; break;
case "forward": echo "mailnew&action=forward" etc..
};
?>&mail_id=bla.." method="post" blabla..Auf diese Art und Weise kann Dir auch niemand etwas unterjubeln.
Besten Dank!!!
Habe es jetzt so gemacht und es funktioniert. :-)
Unterjubeln konnte mir jedoch auch vorher niemand etwas, da alle anderen als die möglichen Versionen wieder zurück zur aktuellen Seite führen (Weiterverarbeitung im Skript).
Davon mal abgesehen hat ein alleinstehendes Und-Zeichen (&) in HTML _nicht_ zu suchen. Wenn Du ein & haben willst, dann muß Du in HTML & schreiben. Das gilt auch für Adressen.
Dein obiges <form> ist also falsch, richtig lautet es<form action="?go=$go&mail_id=$mailshow[id]&PHPSESSID=$PHPSESSID" ...>
Siehe auch http://validator.w3.org.
Gruß,
soenk.e
Sorry. Hätte vielleicht erwähnen sollen, dass es sich um ein Template handelt, bei dem Umlaute und Sonderzeichen durch's Einlesen angepasst werden.
Vielen Dank trotzdem für den Hinweis und die mögliche Fehlerbehebung.
Gruss,
LinuxUser