• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warum wird mein Script 2 mal ausgeführt?

Status
Für weitere Antworten geschlossen.

Frank

Neues Mitglied
Hi,
Ich habe ein Script geschrieben, um news in meiner hp einzubinden.
Das Script besteht aus 3 teilen (Hinzufügen, editieren, löschen).

Das Problem:
Wenn ich news hinzufüge, werden sie in die datenbank geschrieben, wenn ich dann die seite verlasse und nach ca 2 min wieder komme, stehen die news plötzlich 2 mal in der datenbank.. Ich bin am verzweifeln, weil ich den fehler nicht find. Ich suche seit 23 Uhr (gestern).

Hier sind alle Scripte die damit zu tun haben:
index.php
PHP:
<?include ("test.inc.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta name="author" content="Frank">
<meta name="description" content="This is the Page you will get your Teamspeak2 Server for free with up to 50 slots">
<meta name="author" content="Frank Zechert">
<meta name="keywords" content="Teamspeakserver,Teamspeak2server,Teamspeak²server,ts4free,ts for free, ts24free,ts2forfree">
<meta name="editor" content="html-editor phase 5.42 Build 6.1.0.10 (c) hans-dieter berretz">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="freets, freeteamspeak, freeteamspeak2, freets2, ts4free, ts 4 free, ts24free, ts2 4 free">
<meta name="language" content="de">
<meta name="organization" content="teamspeak.4.free">
<link rel="stylesheet" href="../admin.css" type="text/css">
</head>
<body>
<div class="margin2" align="center"></div>
<table align="center">
<tr>
<td>
 <div class="borderb" align="left">
 <div class="border2">
 <table width="760">
 <tr>
 <td class="blue" colspan="2" height="28">Administrator Bereich</td>
 </tr>
 <?
 if($_GET['message'] != "")
 {
 echo '<tr><td align="center" class="lost" width="760" height="28" colspan="2">',$_GET['message'],'</td></tr>';
 }
 ?>
 <tr>
 <td align="left" class="line" width="100" height="28"><div style="margin:10px;"><b>Navigation</b></div></td>
 <td align="left" class="line" width="660" height="28"><div style="margin:10px;"><b>
  <?
 if ($_REQUEST['titel']!="")
  {echo $_REQUEST["titel"];}
 else if ($_GET['titel']!="")
  {echo $_GET["titel"];}
 else
  {echo"Home";}
 ?></b></div></td>
 </tr>
 <tr>
 <td align="left" class="line" width="100" valign="top"><div style="margin:10px;"><?include("navi.inc.php");?></div></td>
 <td align="left" class="line" width="660" valign="top"><div style="margin:10px;">
 <!--Content-->
 <?
 if ($_REQUEST['site']!="")
  {include($_REQUEST["site"].'.inc.php');}
 else if ($_GET['site']!="")
  {include($_GET["site"].'.inc.php');}
 else
  {include('home.inc.php');}
 ?>
 </div>
 </td>
 </tr>
 <tr>
 <td>&nbsp;</td>
 </tr>
 <tr>
 <td align="center" class="line" width="760" height="28" colspan="2">
 .:*ts.4.free*:. &copy; Frank Zechert&nbsp;&nbsp;2006
 </td>
 </tr>
 </table>
 </div>
 </div>
</td>
</tr>
</table>
</body>
</html>

addn.inc.php:
PHP:
<?
if(!isset($_REQUEST['send']))
{
?>
<p>
Folgend können sie News hinzufügen. Weitere Informationen entnehmen sie bitte den entsprechenden Hilfe-Schaltflächen.
</p>
<table>
<form action="index.php" method="post" name="addn">
<input type="hidden" name="site" value="addn"></input>
<input type="hidden" name="titel" value="News hinzufügen"></input>
<input type="hidden" name="send" value="1"></input>
<tr>
<td align="right" width="150">Name:</td>
<td align="left">
<select name="user">
<?
$abfrage = "SELECT * FROM freets_member WHERE news = '1'";
 $ergebnis = mysql_query($abfrage);
 while($row = mysql_fetch_object($ergebnis))
  {
  echo '<option value=".:*ts.4.free*:. ',$row->user,'">.:*ts.4.free*:. ',$row->user,'</option>';
  }
?>
</select>
</td>
</tr>
<tr>
<td align="right" width="150">Kategorie:</td>
<td align="left"><select name="cat"><option value="sehr wichtig">Sehr wichtig</option><option value="wichtig">wichtig</option><option value="normal">normal</option><option value="unwichtig">unwichtig</option></select></td>
</tr>
<tr>
<td align="right" width="150" valign="top">News:</td>
<td align="left"><textarea name="text" cols="40" rows="20" id="text"></textarea></td>
<td>&nbsp;&nbsp;<img src="smileys/biggrin.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':D '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/confused.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':S '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/cool.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + '8) '; document.getElementById('text').value = b;"><br>
&nbsp;&nbsp;<img src="smileys/eek.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + '0.o '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/evil.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':< '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/wink.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ';) '; document.getElementById('text').value = b;"><br>
&nbsp;&nbsp;<img src="smileys/neutral.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':| '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/razz.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':P '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/sad.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':( '; document.getElementById('text').value = b;"><br>
&nbsp;&nbsp;<img src="smileys/smile.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':) '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/uglis.gif" width="16" height="16" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + 'xD '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/mrgreen.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + '=) '; document.getElementById('text').value = b;"></td>
</tr>
<tr>
<td align="right">HTML is on</td>
<td align="left">BB is off</td>
<td align="left"><a href="javascript:document.addn.reset();">&laquo;&nbsp;reset</a>&nbsp;|&nbsp;<a href="javascript:document.addn.submit();">eintragen&nbsp;&raquo;</a></td>
</tr>
</form>
</table>
<?
}
else if($_REQUEST['send']==1)
{
$user = $_REQUEST['user'];
$cat = $_REQUEST['cat'];
$text = $_REQUEST['text'];
$text = htmlentities($text);
$text = str_replace(':D', '<img src=\'smileys/biggrin.gif\'>', $text);
$text = str_replace(':S', '<img src=\'smileys/confused.gif\'>', $text);
$text = str_replace('8)', '<img src=\'smileys/cool.gif\'>', $text);
$text = str_replace(':<', '<img src=\'smileys/evil.gif\'>', $text);
$text = str_replace('0.o','<img src=\'smileys/eek.gif\'>', $text);
$text = str_replace(';)', '<img src=\'smileys/wink.gif\'>', $text);
$text = str_replace(':|', '<img src=\'smileys/neutral.gif\'>', $text);
$text = str_replace(':P', '<img src=\'smileys/razz.gif\'>', $text);
$text = str_replace(':(', '<img src=\'smileys/sad.gif\'>', $text);
$text = str_replace(':)', '<img src=\'smileys/smile.gif\'>', $text);
$text = str_replace('xD', '<img src=\'smileys/uglis.gif\'>', $text);
$text = str_replace('=)', '<img src=\'smileys/mrgreen.gif\'>', $text);
$text = str_replace('\"', '', $text);
$text = nl2br($text);
echo '<head><meta http-equiv="refresh" content="0; URL=index.php?site=addn2&user=',$user,'&text=',$text,'&cat=',$cat,'&titel=News hinzufügen&send=true"></meta></head>';
}
?>
 
addn2.inc.php
PHP:
<?
$user = $_REQUEST['user'];
$cat = $_REQUEST['cat'];
$text = $_REQUEST['text'];
$ip = getenv("REMOTE_ADDR");
$datum = date("d.m.Y - G:i:s");
$abfrage = "INSERT INTO freets_news (name,text,cat,ip,date) VALUES ('$user','$text','$cat','$ip','$datum')";
$ergebnis = mysql_query($abfrage) or die ("Hinzufügen nicht möglich!<br>Bitte informieren sie den Webmaster über diesen Fehler: <a href='mailto:[email protected]'>[email protected]</a>");
?>
<p>
Einen Augenblick, es wird gespeichert.
<head><meta http-equiv="refresh" content="0; URL=index.php?site=home&title=Home&message=News erfolgreich hinzugefügt."></head>
</p>

editn.inc.php
PHP:
<?
if(!isset($_REQUEST['send']))
{
?>
<p>
Folgend können sie News editieren. Weitere Informationen entnehmen sie bitte den entsprechenden Hilfe-Schaltflächen.
</p>
<p>
News:
</p>
<table>
<?
$abfrage = "SELECT * FROM freets_news ORDER BY id DESC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
 {

 $text = $row->text;
 $cat = $row->cat;
 $ip = $row->ip;
 $date = $row->date;
 $id = $row->id;
 ?>
 <div class="line">
 <tr><td width="200" align="left" class="line"><b>Autor</b>: <? echo $row->name; ?></td><td class="line" width="250"><b>am</b>: <?echo$date;?></td></tr>
 <tr><td width="200" align="left" class="line"><b>Kategorie:</b> <?echo$cat?></td><td class="line"><b>IP</b>: <?echo $ip;?></td></tr>
 <tr><td valign="top" colspan="2" class="line"><?echo$text?></td></tr>
 <tr><td colspan="2" align="right" class="book4"><a href="?site=editn&titel=News editieren&id=<?echo$id;?>&send=1">editieren&nbsp;&raquo;</a></td></tr>
 <tr><td colspan="2">&nbsp;</td></tr>
 </div>
 <?
 }
?>
</table>
<?
}
else if($_REQUEST['send']==1)
{
$id = $_REQUEST['id'];
$abfrage = "SELECT * FROM freets_news WHERE id = '$id'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
 {
 $name = $row->name;
 $text = $row->text;
 $cat = $row->cat;
 $ip = $row->ip;
 $date = $row->date;
 }
?>
<p>
Folgend können sie News editieren. Weitere Informationen entnehmen sie bitte den entsprechenden Hilfe-Schaltflächen.
</p>
<table>
<form action="index.php" method="post" name="addn">
<input type="hidden" name="site" value="editn"></input>
<input type="hidden" name="titel" value="News editieren"></input>
<input type="hidden" name="send" value="2"></input>
<input type="hidden" name="idd" value="<?echo$id;?>"></input>
<tr>
<td align="right" width="150">Name:</td>
<td align="left">
<select name="user">
<?
$abfrage = "SELECT * FROM freets_member WHERE news = '1'";
 $ergebnis = mysql_query($abfrage);
 while($row = mysql_fetch_object($ergebnis))
  {
  if (".:*ts.4.free*:. ".$row->user == $name)
   {
   echo '<option value=".:*ts.4.free*:. ',$row->user,'" selected>.:*ts.4.free*:. ',$row->user,'</option>';
   }
  else
   {
   echo '<option value=".:*ts.4.free*:. ',$row->user,'">.:*ts.4.free*:. ',$row->user,'</option>';
   }
  }
?>
</select>
</td>
</tr>
<tr>
<td align="right" width="150">Kategorie:</td>
<td align="left"><select name="cat"><option value="sehr wichtig" <?if($cat == "sehr wichtig"){echo'selected';}?>>Sehr wichtig</option><option value="wichtig" <?if($cat == "wichtig"){echo'selected';}?>>wichtig</option><option value="normal" <?if($cat == "normal"){echo'selected';}?>>normal</option><option value="unwichtig" <?if($cat == "unwichtig"){echo'selected';}?>>unwichtig</option></select></td>
</tr>
<tr>
<td align="right" width="150" valign="top">News:</td>
<td align="left"><textarea name="text" cols="40" rows="20" id="text"><?echo$text?></textarea></td>
<td>&nbsp;&nbsp;<img src="smileys/biggrin.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':D '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/confused.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':S '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/cool.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + '8) '; document.getElementById('text').value = b;"><br>
&nbsp;&nbsp;<img src="smileys/eek.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + '0.o '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/evil.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':< '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/wink.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ';) '; document.getElementById('text').value = b;"><br>
&nbsp;&nbsp;<img src="smileys/neutral.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':| '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/razz.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':P '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/sad.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':( '; document.getElementById('text').value = b;"><br>
&nbsp;&nbsp;<img src="smileys/smile.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + ':) '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/uglis.gif" width="16" height="16" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + 'xD '; document.getElementById('text').value = b;">&nbsp;
<img src="smileys/mrgreen.gif" width="15" height="15" border="0" alt="" onClick="var a = document.getElementById('text').value; var b = a + '=) '; document.getElementById('text').value = b;"></td>
</tr>
<tr>
<td align="right">HTML is on</td>
<td align="left">BB is off</td>
<td align="left"><a href="javascript:document.addn.reset();">&laquo;&nbsp;reset</a>&nbsp;|&nbsp;<a href="javascript:document.addn.submit();">editieren&nbsp;&raquo;</a></td>
</tr>
</form>
</table>
<?
}
else if($_REQUEST['send']==2)
{
$user = $_REQUEST['user'];
$cat = $_REQUEST['cat'];
$id = $_REQUEST['idd'];
$text = $_REQUEST['text'];
$text = htmlentities($text);
$text = str_replace(':D', '<img src=\'smileys/biggrin.gif\'>', $text);
$text = str_replace(':S', '<img src=\'smileys/confused.gif\'>', $text);
$text = str_replace('8)', '<img src=\'smileys/cool.gif\'>', $text);
$text = str_replace(':<', '<img src=\'smileys/evil.gif\'>', $text);
$text = str_replace('0.o','<img src=\'smileys/eek.gif\'>', $text);
$text = str_replace(';)', '<img src=\'smileys/wink.gif\'>', $text);
$text = str_replace(':|', '<img src=\'smileys/neutral.gif\'>', $text);
$text = str_replace(':P', '<img src=\'smileys/razz.gif\'>', $text);
$text = str_replace(':(', '<img src=\'smileys/sad.gif\'>', $text);
$text = str_replace(':)', '<img src=\'smileys/smile.gif\'>', $text);
$text = str_replace('xD', '<img src=\'smileys/uglis.gif\'>', $text);
$text = str_replace('=)', '<img src=\'smileys/mrgreen.gif\'>', $text);
$text = str_replace('\"', '', $text);
$text = nl2br($text);
echo '<head><meta http-equiv="refresh" content="0; URL=index.php?site=editn&user=',$user,'&id=',$id,'&text=',$text,'&cat=',$cat,'&titel=News editieren&send=true"></meta></head>';
}
else
{
$user = $_REQUEST['user'];
$cat = $_REQUEST['cat'];
$text = $_REQUEST['text'];
$id = $_REQUEST['id'];
$abfrage = "UPDATE freets_news Set name = '$user', text = '$text', cat = '$cat' WHERE id = '$id'";
$ergebnis = mysql_query($abfrage) or die ("Editieren nicht möglich!<br>Bitte informieren sie den Webmaster über diesen Fehler: <a href='mailto:[email protected]'>[email protected]</a>");
?>
<p>
Einen Augenblick, es wird gespeichert.
<head><meta http-equiv="refresh" content="5; URL=index.php?site=editn&title=News editieren&message=News erfolgreich editiert."></head>
</p>
<?
}

?>
 
deln.inc.php
PHP:
<?
if(!isset($_REQUEST['send']))
{
?>
<p>
Folgend können sie News löschen. Achtung dieser Vorgang ist unwiderruflich! Weitere Informationen entnehmen sie bitte den entsprechenden Hilfe-Schaltflächen.
</p>
<p>
News:
</p>
<table>
<?
$abfrage = "SELECT * FROM freets_news ORDER BY name ASC";
$ergebnis = mysql_query($abfrage);
$i=0;
while($row = mysql_fetch_object($ergebnis))
 {
 $name = $row->name;
 $text = $row->text;
 $id = $row->id;

?>
<form action="index.php" method="post" name="deln<?echo$i;?>">
<input type="hidden" name="site" value="deln"></input>
<input type="hidden" name="titel" value="News löschen"></input>
<input type="hidden" name="send" value="1"></input>
<input type="hidden" name="id" value="<?echo$id;?>"></input>

<tr><td width="200" align="left" class="line"><b>Autor</b>: <? echo$name; ?></td></tr>
<tr><td valign="top" colspan="2" class="line"><?echo$text?></td><td valign="top"><input type="checkbox" name="del"></input>&nbsp;&nbsp;<a href="javascript:document.deln<?echo$i;?>.submit();">löschen&nbsp;&raquo;</a></td></tr>
<tr><td colspan="2">&nbsp;</td></tr>


</tr>
</form>
<?
$i++;
}
?>
</table>
<?
}
else if($_REQUEST['send']==1 AND $_REQUEST['del']!="")
{
$id = $_REQUEST['id'];
$abfrage = "DELETE FROM freets_news WHERE id = '$id'";
$ergebnis = mysql_query($abfrage) or die ("Löschen nicht möglich<br>Bitte informieren sie den Webmaster über diesen Fehler: <a href='mailto:[email protected]'>[email protected]</a>");
?>
<p>
Einen Augenblick, es wird gelöscht.
<head><meta http-equiv="refresh" content="5; URL=index.php?site=deln&titel=News löschen&message=News erfolgreich gelöscht."></head>
</p>
<?
}
else
{
?>
<head><meta http-equiv="refresh" content="0; URL=index.php?site=deln&titel=News löschen&message=Bitte aktivieren sie das Kontrollkästchen."></head>
<?
}
?>

Sry für den drippelpost, hat nich in einen gepasst (war 18000 zeilen zu lang)
 
Rufst du die gleiche Seite zweimal auf?
Weil dann sendet der Browser zweimal die gleiche Post-Anweisung, und somit wirst du zwei Einträge haben...
 
Wenn du nicht selber ein wenig analysierst, Teile herausfilterst, die man nicht braucht, dann wird wohl keiner kommen und sich mit dem Code auseinandersetzen und dir helfen können.
 
Schau mal.
Du klatscht hier 4 Dateien hin.

Klasse. In der index.php wird keine der anderen aufgerufen. Wozu postest du sie also?
Deine Fehlerbeschreibung ist mangelhaft, weil niemand weiß, wie die Dateien aufgerufen werden etc.
Sendest du zwei mal einen POST-Request ab, der dann das Skript anweist die Daten in die DB zu schreiben oder was?

Debugging ist angesagt!

Diese Aussage hier
wenn ich dann die seite verlasse und nach ca 2 min wieder komme, stehen die news plötzlich 2 mal in der datenbank
scheint mir doch total am Problem vorbei zu gehen.

Solch ein Bug kann sich nicht in PHP befinden. Wie soll das denn auch gehen? Entweder die Daten sind nach Skriptaufruf zweimal drin oder nicht. Basta. Aus.

Also sagt uns mal etwas genauer, wo der Fehler sein könnte, wie die Dateien aufgerufen werden etc.
Sonst wird dir hier nur ein Hellseher helfen können.

Grüße, Ben.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben