Hallo zusammen,
ich habe mir vor einiger Zeit ein eigenes Gästebuch geschrieben, nun habe ich jedoch damit ein Problem. Das Problem ist folgendes:
Wenn ich einen Eintrag mache, lande ich nun (gewollt) auf der 'startseite', jedoch kann ich durch Aktualisieren der Seite x-beliebige Einträge generieren. Ich habe es bereits mit diesem Header-Befehl unter PHP getestet, jedoch wirkt dieser nicht.
hier mein Code:
Ich hoffe ihr könnt mir helfen, bin irgendwie mit meinem Latein am Ende. Danke im vorraus.
cap
edit:
Ich habe auch schon mir Abfragen ala if(!eintrag) {insert; eintrag=true}, jedoch ohne erfolg
edit2:
MySQL Tabelle
ich habe mir vor einiger Zeit ein eigenes Gästebuch geschrieben, nun habe ich jedoch damit ein Problem. Das Problem ist folgendes:
Wenn ich einen Eintrag mache, lande ich nun (gewollt) auf der 'startseite', jedoch kann ich durch Aktualisieren der Seite x-beliebige Einträge generieren. Ich habe es bereits mit diesem Header-Befehl unter PHP getestet, jedoch wirkt dieser nicht.
hier mein Code:
PHP:
<?php
$lang['back'] = "Back";
$lang['title'] = "Commentbox";
$lang['new_entry'] = "New Entry";
$lang['no_name'] = "Please insert a Name!";
$lang['no_text'] = "Please insert a Text!";
$lang_de['back'] = "Zru¨ck";
$lang_de['title'] = "Schreibkiste";
$lang_de['new_entry'] = "Neuer Eintrag";
$lang_de['no_name'] = "Bitte einen Namen eintragen!";
if(isset($_REQUEST['action']))
{
$action = $_REQUEST['action'];
}
function add()
{
echo "<a class='gb_link' href='";
echo basename($_SERVER["PHP_SELF"]);
echo "'>« Zurück</a>";
$zufall['zahl1'] = rand(1,10);
$zufall['zahl2'] = rand(1,10);
$zufall['zahl3'] = $zufall['zahl1'] + $zufall['zahl2'];
echo "<br/>";
echo "<div class='topic'> <br/>";
echo "<form method='post' action='".$_SERVER["PHP_SELF"]."'>";
echo "<table>";
echo "<tr>";
echo "<td> <span class='m_f_c'>*</span> Name: </td>";
echo "<td> <input type='text' name='name' value='".$_POST['name']."'></input> </td>";
echo "</tr>";
echo "<tr>";
echo "<td> E-Mail: </td>";
echo "<td> <input type='text' name='email' value='".$_POST['email']."'></input></td>";
echo "</tr>";
echo "<tr>";
echo "<td> Homepage: </td>";
echo "<td> http://www.<input type='text' name='webseite' value='".$_POST['webseite']."'></input></td>";
echo "</tr>";
echo "<tr>";
echo "<td> <span class='m_f_c'>*</span> Input: </td>";
echo "<td colspan='2' ><textarea name='beitrag' rows='8' cols='45'>".$_POST['beitrag']."</textarea> </td>";
echo "</tr>";
echo "<tr>";
echo "<td><span class='m_f_c'>*</span> Captcha: </td>";
echo "<td><input disabled='disabled' size='1' value='".$zufall['zahl1']."'></input> + <input disabled='disabled' size='1' value='".$zufall['zahl2']."'></input> = <input name='captcha' size='5'></input></td>";
echo "</tr>";
echo "</table><br/>";
echo "<input type='submit' value='Submit Query' name='entry'></input>";
echo "<input type='hidden' name='action' value='submit'></input>";
echo "<input type='hidden' name='captcha_erg' value='".$zufall['zahl3']."'></input>";
echo "</form>";
echo "<span class='m_f'>* mandatory field</span>";
echo "</div>";
}
function insert()
{
$captcha=htmlspecialchars($_POST['captcha']);
$captcha_erg=htmlspecialchars($_POST['captcha_erg']);
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$webseite = htmlspecialchars($_POST['webseite']);
$beitrag = htmlspecialchars($_POST['beitrag']);
if($name=='')
{
echo "<div class='gberror'>Please insert a Name!</div><br/>";
add();
}elseif($beitrag=='')
{
echo "<div class='gberror'>Please insert a Text!</div><br/>";
add();
}elseif($captcha != $captcha_erg)
{
echo "<div class='gberror'>The Captcha are wrong or forget</div><br/>";
add();
}else
{
$umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/</","/>/");
$replace = Array("ä","ö","ü","Ä","Ö","Ü","ß","«", "»");
$beitrag = preg_replace($umlaute, $replace, $beitrag);
$name = preg_replace($umlaute, $replace, $name);
$sql = "INSERT INTO gaestebuch (`id` ,`name` , `homepage` ,`email` , `beitrag`, `date`, `ip` ) VALUES ( NULL , '".mysql_real_escape_string($name)."','".mysql_real_escape_string($webseite)."', '".mysql_real_escape_string($email)."', '".mysql_real_escape_string($beitrag)."', NOW(),'".$_SERVER['REMOTE_ADDR']."')";
mysql_query($sql);
}
}
function show()
{
$sql = "SELECT * FROM gaestebuch ORDER BY id DESC";
$result = mysql_query($sql) OR die(mysql_error());
$eintraege = mysql_num_rows($result);
if($eintraege > 0)
{
// Einträge pro Seite
$limit = 4;
//Bestimmen der seiten Anzahl
$seiten_zahl = $eintraege/$limit;
$seiten_zahl = ceil($seiten_zahl);
//Ausgabe der Seiten
$start = 1;
if($seiten_zahl > 1)
{
echo "Seite: ";
for($i=1 ; $i <= $seiten_zahl ; $i++)
{
if($i == $_GET['page'])
{
echo '<a style="font-size: 12px; color: #000000; margin:1px;" href="?page='.$i.'"><b>['.$i.']</b></a>';
}else
{
echo '<a style="font-size: 12px; color: #000000; margin:1px;" href="?page='.$i.'">['.$i.']</a>';
}
}
echo "<br/><br/>";
}
// aktuelle Seite
if(isset($_GET['page']))
{
$page = intval($_GET['page']);
}else
{
$page = 1;
}
$start = ($page - 1) * $limit;
$result = mysql_query("SELECT * FROM gaestebuch ORDER BY id DESC LIMIT $start,$limit");
while($row = mysql_fetch_assoc($result))
{
echo "<table style='margin-left:5px;' border='0' cellspacing='0' cellpadding='0' width='450px'>";
echo "<tr><td>";
echo "#".$row['id'];
echo " <b>".$row['name']."</b>";
echo "<div style='float:right;'>";
if($row['homepage'] != "")
echo "<a rel='external' href='http://www.".$row['homepage']."'><img title='http://www.".$row['homepage']."' width='15' height='15' src='images/icon_homepage.png' alt='hp'></img></a>";
if($row['email'] != "")
echo " <a href='mailto:".$row['email']."'><img title='".$row['email']."' width='15' height='15' src='images/icon_email.png' alt='email'></img></a>";
echo "</div></td></tr><tr>";
echo "<td class='topic'>";
echo nl2br($row['beitrag']);
echo "</td></tr><tr>";
echo "<td class='topic'>";
echo "<div style='text-align: right;'><div style='font-size: 0.7em;'>".$row['date']."</div></div>";
echo "</td></tr></table>";
}
}else
{
echo "No Entries in this Guestbook";
}
}
?>
PHP:
<?php
switch($action)
{
case 'entry': add();
break;
case 'submit': insert();
if($_REQUEST['error']==1) { break; }
default: echo "<a class='gb_link' href='";
echo basename($_SERVER["PHP_SELF"]);
echo "?action=entry'>» ";
echo $lang['new_entry'];
echo "</a><br/><br/>";
show();
}
?>
Ich hoffe ihr könnt mir helfen, bin irgendwie mit meinem Latein am Ende. Danke im vorraus.
cap
edit:
Ich habe auch schon mir Abfragen ala if(!eintrag) {insert; eintrag=true}, jedoch ohne erfolg
edit2:
MySQL Tabelle
CREATE TABLE IF NOT EXISTS `gaestebuch` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`homepage` text NOT NULL,
`email` varchar(75) NOT NULL,
`beitrag` text NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ip` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
)
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`homepage` text NOT NULL,
`email` varchar(75) NOT NULL,
`beitrag` text NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ip` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
)
Zuletzt bearbeitet: