Formular Problem(e)
Ingo
- php
Hallo,
ich möchte Werte aus einem Formular in deine DB schreiben.
Nun habe ich ein Formular erstellt:
<from name="+++" action="addNews.php" method="post">
.
.
.
in der Datei addNews.php steht dann das ganze Zeugs um mysql_query() usw.
aber der browser zeigt nichts an, noch nicht einmal html-tags vor oder nach dem php-part?!
Kann mir jemand sagen was ich da falsch gemacht habe?
Code Eingabe Formular:
<h1>News schreiben</h1>
<table width="100%" border="0">
<tr>
<form action="addNews.php" name="write_news" method="post">
<input type="hidden" name="send" value="1" />
<td>Titel:</td><td><input type="text" name="headline" value="<? echo $headline; ?>" size="60" /><br></td>
</tr>
<tr>
<td valign='top'>Nachricht:</td><td><textarea name="nachricht" rows="10" cols="50">
</textarea></td>
<td colspan='2'><input type="submit" name="speichern" value="Speichern" />
</form>
</table>
Code DB-Connection + Insert:
<?
echo "hallo1";
if ($_POST[speichern])
{
include ("connection.inc.php");
$zeitstempel = time();
$datum = date("d.m.Y , H:i",);
$sql="INSERT INTO 'nachrichten' VALUES ('','$_POST["headline"]','$_POST["nachricht"]','ingo','$zeitstempel')";
$erg= mysql_query($sql, $connection);
echo 'hallo';
if ($connection)
echo 'jepp';
else
echo 'no connection';
if ($erg)
echo 'jepp';
else
echo 'no erg';
}
?>
Hallo,
hast du für den action-Wert den richtigen Namen geschrieben?
(gross,klein-schreibung Beachten)
<from name="+++" action="addNews.php" method="post">
.
hast du für den action-Wert den richtigen Namen geschrieben?
Ja, datei sowie action-wert heißen exakt addNews.php
gruß
ingo
Ein ganz einfaches Skirpt hast du schon ausprobiert?
z.B.
<body>
<?php echo "Hallo Welt?"; ?>
<body>
Machst du weiter oben in der Datei schon was mit PHP?
Ein ganz einfaches Skirpt hast du schon ausprobiert?
z.B.
<body>
<?php echo "Hallo Welt?"; ?>
<body>Machst du weiter oben in der Datei schon was mit PHP?
PHP funzt, da ich in der datei mit dem formular noch ein auswahl menue habe, das per formular-variablen quasi nur bestimmmte tiele des codes anzeigt. (kompliziert ausgedrückt?)
gru0
ingp
Der Browser zeigt nichts an? Auch nicht wenn du dir den Quelltext anzeigen lässt?
Der Browser zeigt nichts an? Auch nicht wenn du dir den Quelltext anzeigen lässt?
nur standard header und nen leeren body-part.
wenn ich bei method "get" eintrage, werden die vars an die url angehängt, also werden sie schon mal übergeben.
habe die datei auch schon in add_news.php umbenannt.
gruß
ingo
Kannst du mal den ganzen Code posten?
Kannst du mal den ganzen Code posten?
No Probleme:
admin.php
---------------------
<?
if ($_POST[write])
{
?>
<h1>News schreiben</h1>
<table width="100%" border="0">
<tr>
<form action="add_news.php" name="write_news" method="post">
<input type="hidden" name="send" value="1" />
<td>Titel:</td><td><input type="text" name="headline" value="<? echo $headline; ?>" size="60" /><br></td>
</tr>
<tr>
<td valign='top'>Nachricht:</td><td><textarea name="nachricht" rows="10" cols="50">
</textarea></td>
<td colspan='2'><input type="submit" name="speichern" value="Speichern" />
</form>
</table>
<?
}
if ($_POST[send] !='1')
{
?>
<html>
<head>
<title>Sans Titre</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="HAPedit 3.0">
</head>
<body bgcolor="#FFFFFF">
<h1>JGParsau Adminbereich</h1>
<form action="<? echo $PHP_SELF; ?>" name="auswahl" method="post">
<input type="hidden" name="send" value="1" />
<input type="radio" name="write" />News schreiben<br>
<input type="radio" name="delete" />News löschen<br>
<input type="radio" name="change" />News ändern <br>
<input type="submit" name="submit" value="Weiter" />
</form>
</body>
</html>
<?
}
?>
add_news.php:
----------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sans Titre</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="HAPedit 3.0">
</head>
<body bgcolor="#FFFFFF">
hallo du da!!!!
<?
echo $_POST['send'];
if ($_POST[send]='1')
{
echo "hallo1";
include ("connection.inc.php");
echo $connection;
$zeitstempel = time();
$datum = date("d.m.Y , H:i",);
$sql="INSERT INTO 'nachrichten' VALUES ('','$_POST["headline"]','$_POST["nachricht"]','ingo','$zeitstempel')";
$erg= mysql_query($sql, $connection);
echo 'hallo';
if ($connection)
echo 'jepp';
else
echo 'no connection';
if ($erg)
echo 'jepp';
else
echo 'no erg';
}
else
echo '2134245';
?>
</body>
</html>
Ich nehme an diese Datei hat keinen Einfluss auf deinen Fehler:
admin.php
Also bräuchte ich nur das hier: (oder?)
add_news.php:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sans Titre</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="HAPedit 3.0">
</head>
<body bgcolor="#FFFFFF">
Das gibt er aus?:
hallo du da!!!!
<?
echo $_POST['send'];
if ($_POST[send]='1')
{
und das nicht mehr?:
echo "hallo1";
include ("connection.inc.php");
echo $connection;
$zeitstempel = time();
$datum = date("d.m.Y , H:i",);
$sql="INSERT INTO 'nachrichten' VALUES ('','$_POST["headline"]','$_POST["nachricht"]','ingo','$zeitstempel')";
$erg= mysql_query($sql, $connection);
echo 'hallo';
if ($connection)
echo 'jepp';
else
echo 'no connection';
if ($erg)
echo 'jepp';
else
echo 'no erg';
}
else
echo '2134245';
?>
</body></html>
Wenn das so ist probier mal den php-part mit <?php zu beginnen.
nichts...
auch das "hallo du da nicht"
gruß
ingo
lösch mal den ganzen Teil bis:
"hallo du da nicht"
Wenns dann immer noch nichts geht, weiss ich auch nich warum.
lösch mal den ganzen Teil bis:
"hallo du da nicht"
Wenns dann immer noch nichts geht, weiss ich auch nich warum.
also durch lauter kommentare und tests muss der fehler in diesem teil liegen:
$zeitstempel = time();
$datum = date("d.m.Y , H:i",);
$sql="INSERT INTO nachrichten (headline, news, autor, datum) VALUES ('$_POST["headline"]','$_POST["nachricht"]','ingo','$zeitstempel')";
$erg= mysql_query($sql, $connection);
echo 'hallo';
if ($connection)
echo 'jepp';
else
echo 'no connection';
if ($erg)
echo 'jepp';
else
echo 'no erg';
Das hier ist nicht korrekt:
$datum = date("d.m.Y , H:i",);
entferne das Komma!
Das hier ist nicht korrekt:
$datum = date("d.m.Y , H:i",);
entferne das Komma!
schon entdeckt, aber ich weiß jetzt
dass es am "INSERT..." liegen muss
gruß
ingo
ich hab es!!!!
man darf zwischen dem tabellennamen und der klammer kein leerzeichen machen!!
man is das leicht, wenn man es wüsste.
danke für deine hilfe und zeit.
gruß
ingo
Ach jo,
$sql="INSERT INTO nachrichten (headline, news, autor, datum) VALUES ('$_POST["headline"]','$_POST["nachricht"]','ingo','$zeitstempel')";
nimm die " weg. Ist zwar nicht schöner Stil, aber ich weiss nicht wie man es besser macht.
hi, nur eine Vermutung
<input type="submit" name="speichern" value="Speichern" />
if ($_POST[speichern])
gib mal
echo '<pre>';
print_r($GLOBALS);
echo '</pre>
in dein script ein und schau ob da überhaupt so was existiert
Gruesse, Christian
»
echo '<pre>';
print_r($GLOBALS);
echo '</pre>
zeigt alle vars wunderbar an
gruß
ingo