Datenbankeintrag bei Seitenaufruf?

MOD

Mitglied
Hallo zusammen...

ich hab ein sehr kurioses Phänomen. Wenn ich diese Seite hier aufrufe:

PHP:
<HTML>
<HEAD>News_Eintrag</HEAD>
<LINK REL="StyleSheet" HREF="layout/style.css" type="text/css">
<?
mysql_connect("xxx","xxx","xxx");    
mysql_select_db("xxx");

if($cmd="insert")
{
$Datum = strftime ("%Y-%m-%d %H:%M:%S", time ());
mysql_query("INSERT INTO Neuigkeiten (News,Autor,Thema,Datum) VALUES ('$News','$Autor','$Thema','$Datum')");
}
?>
<BODY>
<h2>Autoren-Bereich</h2>
<FORM action="news_eintrag.php" method="post">
Thema:<input type="text" name="Thema"><br><br>
Nachricht:<br>
<textarea name="News" rows="8" cols="50"></textarea><br><br>
Autor:<input type="text" name="Autor">
<input type="submit" value="Eintragen"> <input type="reset" value="L&ouml;schen">
<input type="hidden" name="cmd" value="insert">
</FORM>
</BODY>
</HTML>
Auch ohne das Formular auszufüllen, oder den Senden-Button zu drücken, wird ein Datenbankeintrag vorgenommen, wenn die Seite aufgerufen wird.

Woran liegt das? Hat jemand ne Idee wie ich das ändern kann?

Danke...
 
Probiers mal so:
PHP:
<HTML>
<HEAD>News_Eintrag</HEAD>
<LINK REL="StyleSheet" HREF="layout/style.css" type="text/css">
<BODY>
<h2>Autoren-Bereich</h2>
<?
mysql_connect("xxx","xxx","xxx");    
mysql_select_db("xxx");

if ($cmd) {
$Datum = strftime ("%Y-%m-%d %H:%M:%S", time ());
mysql_query("INSERT INTO Neuigkeiten (News,Autor,Thema,Datum) VALUES ('$News','$Autor','$Thema','$Datum')");
}
else  {
?>
<FORM action="news_eintrag.php" method="post">
Thema:<input type="text" name="Thema"><br><br>
Nachricht:<br>
<textarea name="News" rows="8" cols="50"></textarea><br><br>
Autor:<input type="text" name="Autor">
<input type="submit" value="Eintragen"> <input type="reset" value="L&ouml;schen">
<input type="hidden" name="cmd" value="insert">
</FORM>
<?php
}
?>
</BODY>
</HTML>
 
Danke, aber das hilft mir nicht wirklich weiter...
es wird zwar kein eintrag mehr gemacht, wenn die Seite geöffnet wird :)
aber das Eingabeformular wird durch die else-Schleife auch nicht mehr angezeigt...
Noch jemand ne andere Idee?
 
Ich habe den oberen Quelltext jetzt noch mal editiert :rolleyes:
evtl. geht es jetzt!

PHP:
<HTML>
<HEAD>News_Eintrag</HEAD>
<LINK REL="StyleSheet" HREF="layout/style.css" type="text/css">
<BODY>
<h2>Autoren-Bereich</h2>
<?
mysql_connect("xxx","xxx","xxx");    
mysql_select_db("xxx");
if ($cmd)  {
$Datum = strftime ("%Y-%m-%d %H:%M:%S", time ());
mysql_query("INSERT INTO Neuigkeiten (News,Autor,Thema,Datum) VALUES ('$News','$Autor','$Thema','$Datum')");
}
else  {
print "<FORM action=$PHP_SELF method=post>
Thema: <input type=text name=Thema>
blablabla
<input type=submit value=Eintragen name=cmd>
</FORM>";
}
?>
</BODY>
</HTML>
 
PHP:
if($cmd="insert")


muss heissen

PHP:
if($cmd == "insert")


= ist für eine Zuweisung in PHP !

Logisch, dass dann immer ein Eintrag in der DB gemacht wird ;)
 
Original geschrieben von MOD
Hallo zusammen...

ich hab ein sehr kurioses Phänomen. Wenn ich diese Seite hier aufrufe:

PHP:
<HTML>
<HEAD>News_Eintrag</HEAD>
<LINK REL="StyleSheet" HREF="layout/style.css" type="text/css">
<?
mysql_connect("xxx","xxx","xxx");    
mysql_select_db("xxx");

/// HIER LIEGT DER FEHLER, da fehlt ein =!
if($cmd=="insert")
{
$Datum = strftime ("%Y-%m-%d %H:%M:%S", time ());
mysql_query("INSERT INTO Neuigkeiten (News,Autor,Thema,Datum) VALUES ('$News','$Autor','$Thema','$Datum')");
}
?>
<BODY>
<h2>Autoren-Bereich</h2>
<FORM action="news_eintrag.php" method="post">
Thema:<input type="text" name="Thema"><br><br>
Nachricht:<br>
<textarea name="News" rows="8" cols="50"></textarea><br><br>
Autor:<input type="text" name="Autor">
<input type="submit" value="Eintragen"> <input type="reset" value="L&ouml;schen">
<input type="hidden" name="cmd" value="insert">
</FORM>
</BODY>
</HTML>

Auch ohne das Formular auszufüllen, oder den Senden-Button zu drücken, wird ein Datenbankeintrag vorgenommen, wenn die Seite aufgerufen wird.

Woran liegt das? Hat jemand ne Idee wie ich das ändern kann?

Danke...


Hi, hast bei der If-Bed. nur ein =-Zeichen gesetzt, damit setzt du die Variable auf "insert"

So ist es richtig: if($cmd=="insert")

MfG, pxlArtizzt
 
Hallo nochmal...

Danke ihr beiden. Mit dem doppelten == hats gefunzt... :-)
Manchmal sieht man den Wald vor lauter Bäumen nicht, besonders als Anfänger... ;)
 
Zurück