Hallo zusammen,
stehe hier grad vor einem Problem.
Ich hab eine Auswahl mit <select> programmiert und möchte bei einer Newseingabe, somit die Tabelle einer Datenbank bestimmen, in der die News abgelegt werden.
Hier mein Code:
Nun wird in der Tabelle "news" alles ("ueberschrift", "autor" und "eintrag") richtig abgelegt. "rubrik" ist leer! Wieso?
In der gewünschten weiteren Tabelle (aktive oder jugend) wird nichts gespeichert., da wohl die Variable "$rubrik" leer ist.
Wenn ich z.B. "$rubrik = "2"; vor switch($rubrik) schreibe, so erstellt er zwar einen neuen Eintrag in der "jugend"-Tabelle, doch die Werte für "ueberschrift", "autor" und "eintrag" sind leer.
Wo löscht der mir die Werte? Und wieso funktioniert die "Übergabe" des Wertes für "$rubrik" aus der <select>-Anweisung nicht?
Hoffe ich konnte das Problem gut schildern. Wäre echt super, wenn mir da einer helfen könnte.
Gruß,
Mahatmas
stehe hier grad vor einem Problem.
Ich hab eine Auswahl mit <select> programmiert und möchte bei einer Newseingabe, somit die Tabelle einer Datenbank bestimmen, in der die News abgelegt werden.
Hier mein Code:
HTML:
<?
include ("mysql.inc");
function PostVar($variablen_name)
{
$ergebnis = $_POST[$variablen_name];
if (get_magic_quotes_gpc())
{
$ergebnis = stripslashes($ergebnis);
}
return trim($ergebnis);
}
function format ($text)
{
$ergebnis = htmlentities($test);
$ergebnis = str_replace("\r\n\r\n","<br><br>",$text);
return $ergebnis;
}
$ueberschrift = PostVar("ueberschrift");
$eintrag = PostVar("eintrag");
$autor = PostVar("autor");
$rubrik = PostVar("rubrik");
$status = $_POST['status'];
$anzeigen = true;
$fehler = "";
if (!empty($status)) {
if (empty($eintrag))
{
$fehler .= "<center> Der Eintrag ist leer </center>";
}
if (empty($autor))
{
$fehler .= "<center> Bitte tragen Sie einen Namen ein </center>";
}
if (empty($ueberschrift))
{
$fehler .= "<center> Bitte tragen Sie eine Überschrift ein </center>";
}
if ($rubrik ==0 )
{
$fehler .= "<center> Bitte tragen Sie eine Rubrik ein </center>";
}
}
?>
<table border = "0" style = "width: 500px">
<tr>
<td>
<h1 style = "text-align: center">Newseingabe</h1>
<br>
<form action = "newseingabe.php" method="post">
<p>
<small><b>Überschrift:</b></small><br>
<input style = "color: #fff; background-color: #178822; width: 500px" type = "text" maxlength = "50" name = "ueberschrift" value="<?htmlentities($ueberschrift)?>">
</p>
<p>
<small><b>Ihr Eintrag (maximal <?=$grenzwert ?> Zeichen): </b></small><br>
<textarea style = "color: #fff; background-color: #178822; width: 500px; height: 240px" name="eintrag"><?=htmlentities($eintrag)?></textarea>
</p>
<p>
<small><b>Ihr Name:</b></small><br>
<input style = "color: #fff; background-color: #178822; width: 500px" type = "text" maxlength = "50" name = "autor" value="<?htmlentities($autor)?>">
</p>
<p>
<table>
<tr>
<td><small><b>Rubrik: </b></small></td>
<td><select name="rubrik" style="width: 150px">
<option value="0">Rubrik auswählen</option>
<option value="1">Aktive</option>
<option value="2">Jugend</option>
</select>
</td>
</tr>
</table>
<br>
<input type = "submit" name = "status" value = "Eintragen" style = "color: #fff; background: #178822">
</p>
</form>
</td>
</tr>
<?
if ($fehler)
{
$anzeigen = false;
echo "<p><b>Leider konnte ihr Eintrag nicht angenommen werden:</b></p>";
echo "<ul>$fehler</ul>";
}
elseif($status == "Eintragen")
{
$query = "INSERT INTO news SET
datum = now(),
ueberschrift = '".addslashes($ueberschrift)."',
eintrag = '".addslashes($eintrag)."',
autor = '".addslashes($autor)."',
rubrik = '".addslashes($rubrik)."'
";
$sql = mysql_query($query) or die(mysql_error());
}
// $rubrik = "2"; // um die Eingabe in der Tabelle "jugend" zu testen
switch( $rubrik )
{
case "1":
$query = "INSERT INTO aktive SET
datum = now(),
ueberschrift = '".addslashes($ueberschrift)."',
eintrag = '".addslashes($eintrag)."',
autor = '".addslashes($autor)."'
";
$sql = mysql_query($query) or die(mysql_error());
unset($ueberschrift,$eintrag,$autor);
break;
case "2":
$query = "INSERT INTO jugend SET
datum = now(),
ueberschrift = '".addslashes($ueberschrift)."',
eintrag = '".addslashes($eintrag)."',
autor = '".addslashes($autor)."'
";
$sql = mysql_query($query) or die(mysql_error());
unset($ueberschrift,$eintrag,$autor);
break;
}
?>
</table>
Nun wird in der Tabelle "news" alles ("ueberschrift", "autor" und "eintrag") richtig abgelegt. "rubrik" ist leer! Wieso?
In der gewünschten weiteren Tabelle (aktive oder jugend) wird nichts gespeichert., da wohl die Variable "$rubrik" leer ist.
Wenn ich z.B. "$rubrik = "2"; vor switch($rubrik) schreibe, so erstellt er zwar einen neuen Eintrag in der "jugend"-Tabelle, doch die Werte für "ueberschrift", "autor" und "eintrag" sind leer.
Wo löscht der mir die Werte? Und wieso funktioniert die "Übergabe" des Wertes für "$rubrik" aus der <select>-Anweisung nicht?
Hoffe ich konnte das Problem gut schildern. Wäre echt super, wenn mir da einer helfen könnte.
Gruß,
Mahatmas