Hier kommt meine Antwort zum vorletzten Beitrag (den habe ich offline geschrieben, als ich noch nichts von deinem letzten Betrag wußte, nur um eventuellen Mißverständnissen vorzubeugen

).
Ja, das "Select-Menü" ist richtig.
Du kannst dir die ganze Sache aber noch etwas einfacher machen. Zunächst der Code für die Combobox:
Code: Alles auswählen
<select name="stream" size="1">
<option value="16">16Kbit/s</option>
<option value="20">20Kbit/s</option>
<option value="32">32Kbit/s</option>
<option value="40">40Kbit/s</option>
.
.
.
</select>
In deinem IF-Konstrukt hast du allerdings zwei Fehler. $_POST[stream] enthält doch bei deinem "Select-Menü" nicht "streamguete" sondern "xxKbit/s". Ersichtlich, oder? Also ist die erste Abfrage fehlerhaft. Desweiteren werden mehrere ELSE nacheinander zu einer Fehlermeldung führen. Wenn du es aber mittels IF-Abfragen machen möchtest, könnte es (es gibt mehrere Möglichkeiten) mit DEINER Combobox so aussehen:
Code: Alles auswählen
if (($_POST[stream] == "16KBit/s") || ($_POST[stream] == "20Kbit/s") || ... || ($_POST[stream] == "xxKbit/s"))
{
$stream_guete = $_POST[stream];
}
else
{
// falls keiner dieser Werte enthalten sein sollte,
// dann einen bestimmten festlegen
$stream_guete = "16Kbit/s";
}
Es würde auch so gehen:
Code: Alles auswählen
if ($_POST[stream] == "16Kbit/s")
{
$stream_guete = "16Kbit/s";
}
elseif ($_POST[stream] == "20Kbit/s")
{
$stream_guete = "20Kbit/s";
}
.
.
.
elseif ($_POST[stream] == "xxKbit/s")
{
$stream_guete = "xxKbit/s";
}
else
{
// falls keiner dieser Werte enthalten sein sollte,
// dann einen bestimmten festlegen
$stream_guete = "16Kbit/s";
}
Aber wie bereits gesagt, du kannst die Abfrage einfacher (und zudem übersichtlicher) gestalten, hier der zweite Teil. Dieser wird anstelle des [span style=color:gray]if ($_POST[stream] == ...)[/span] eingesetzt:
Code: Alles auswählen
switch ($_POST[stream])
{
case "16":
case "20":
case "32":
case "40":
.
.
case "xx":
break;
default:
// dieser Wert wird genommen, falls $_POST[stream]
// keinen der oberen Werte (16, 20, 32, ...) enthält
$_POST[stream] = 16;
}
$stream_guete = $_POST[stream]."Kbit/s";
// jetzt kann der INSERT-Query kommen
Zum Schluss enthält die Variable [span style=color:gray]$stream_guete[/span] dann "xxKbit/s", ohne neun IF bzw. ELSEIF verwenden zu müssen.
Wenn du die Überprüfung auf fehlerhafte Inhalte übergehen möchtest, dann kannst du der Variablen $stream_guete die Auswahl der Combobox auch ganz einfach zuweisen:
Oder wenn du deine Combobox verwendest:
Die solltest aber NUR DANN auf eine Überprüfung verzichten, wenn nur du mit dem Script arbeiten möchtest bzw. es nicht im Internet verwenden möchtest. Sonst könnte jemand eine eigene HTML-Seite mit einem entsprechenden Formular basteln und den ACTION-Parameter auf dein PHP-Script zeigen lassen:
Code: Alles auswählen
<html><head><title>Marwins bösartiges Script</title></head>
.
.
<form action="http://rudis-homepage/formular.php" method="post">
.
.
</html>
Und dann hast du nicht den beabsichtigten Wert in der Datenbank zu stehen. Mitunter kann der Angreifer sogar einen eigenen Query ausführen, und somit zum Beispiel vollen Zugriff auf deine Datenbank erlangen. Oder er löscht einfach mal so nebenbei alle existierenden Datenbanken. Wer weiß was zwielichtigen Gestalten alles so für Schwachsinn ins Hirn kommt.
Marwin