Seite 1 von 1

Fehler in meinem Gästebuch

Verfasst: 08.01.2003 18:38
von Xmopf
Hallo,

ich habe mir ein eigenes Gästebuch geschrieben, das funktioniert auch, nur sporadisch schreibt das Skript "array" in das url-Feld in die Datenbank und ich habe keine Ahnung warum, oder wo das Skript überhaupt ein Array herbekommen will.

Vielleicht sieht ja einer von euch den Fehler.

Code: Alles auswählen

<span class="ueberschrift">G&auml;stebuch</span>
<br><br>
<form action="<?php echo $PHP_SELF; ?>" method="post">
<table width="100%" border="0" cellPadding="2" cellSpacing="0" align="center">
<tr>
	<td align="center">
	<input type="button" class="button" name="eintragen" value="eintragen" onClick="self.location.href='<?php echo $PHP_SELF; ?>?eintragen=true'" style="width: 200px; background: #4A60A9;">
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	<input type="button" class="button" name="zurueck" value="ansehen" onClick="self.location.href='<?php echo $PHP_SELF; ?>'" style="width: 200px; background: #4A60A9;">
	<br><br>
	</td>
</tr>
<tr>
	<td>
<!-- Beginn Gästebuch -->

<?php
function formular($name, $email, $url, $text) {
?>
<table border="0" cellpadding="0" cellspacing="0">
<tr valign="top">
	<td>Mein Name:&nbsp;</td>
	<td><input name="name" size="10" class="formular"<?php if ($name != "") { echo " value='". $name ."'"; } ?>></td>
</tr>
<tr valign="top">
	<td>Meine eMail-Adresse:&nbsp;</td>
	<td><input name="email" size="10" class="formular"<?php if ($email != "") { echo " value='". $email ."'"; } ?>></td>
</tr>
<tr valign="top">
	<td>Meine Homepage:&nbsp;</td>
	<td>http://<input name="url" size="10" class="formular" style="width: 312px;"<?php if ($url != "") { echo " value='". $url ."'"; } ?>></td>
</tr>
<tr valign="top">
	<td>Meine Nachricht:&nbsp;</td>
	<td><textarea cols="15" rows="10" name="text" wrap="soft" class="formular"><?php if ($text != "") { echo $text; } ?></textarea></td>
</tr>
<tr valign="top">
	<td><br>Und noch hier dr&uuml;cken:&nbsp;</td>
	<td><br><input type="submit" name="senden" value="Und weg damit!" width="10" class="formular">&nbsp;</td>
</tr>
</table>
<?php
}
if (isset($senden)) {
	$name = stripslashes(htmlentities(strip_tags($name), ENT_QUOTES));
	$email = stripslashes(htmlentities(strtolower(strip_tags($email)), ENT_QUOTES));
	$url = stripslashes(htmlentities(strtolower(strip_tags($url)), ENT_QUOTES));
	$url = str_replace("http://", "", $url);
	$text = stripslashes(htmlentities(strip_tags($text), ENT_QUOTES));
	$ip = getenv("REMOTE_ADDR");
	$host = gethostbyaddr($ip);
	$browser = getenv("HTTP_USER_AGENT");
	$fehler = "";
	if ($name == "") { $fehler .= "<li>deinen <a>Namen</a></li>"; }
	if ($email == "") { $fehler .= "<li>deine <a>eMail-Adresse</a></li>"; }
	else {
	if (preg_match("/^([_a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$/", $email, $regs))
	{ ; }
	else { 
	$fehler .= "<li><a>eine g&uuml;ltige eMail-Adresse</a></li>"; 
	}


	if ($text == "") { $fehler .= "<li>den <a>Text</a></li>"; }
	}
	if ($fehler != "") {
?>
<div class="wo"><b>Toll! Ein Fehler!</b></div><br>
<b>Du L&uuml;mmel!</b> Folgende Angaben wolltest du uns schlichtweg unterschlagen:
<ul>
<?php
		echo $fehler;
?></ul>
Also geh' deiner Pflicht nach und f&uuml;ll' das Formular vollst&auml;ndig aus. Sonst
ist Schluss mit lustig.<br><br>
<?php
		echo formular($name, $email, $url, $text);
	}
	else {
		$text = nl2br($text);

		$datum = date("Y-m-d");
		$zeit = date("H:i:s");

		$strGBookEntry = "INSERT INTO sc_gbook (id, name, email, url, text, datum, zeit, ip, host, browser) ".
			"VALUES ('', '".
			$name ."', '".
			$email ."', '".
			$url ."', '".
			$text ."', '".
			$datum ."', '".
			$zeit ."', '".
			$ip ."', '".
			$host ."', '".
			$browser ."')";

		$sqlGBookEntry = mysql_query($strGBookEntry);
?>
Herzlichen Gl&uuml;ckwunsch! Du hast dich nun in unserem G&auml;stebuch verewigt. Wenn du diesen
netten Link anklickst, kannst du dir dein Ges&uuml;lze gleich <a href="<?php echo $PHP_SELF; ?>">ansehen</a>.

<META HTTP-EQUIV="REFRESH" CONTENT="3; URL=<?php echo $PHP_SELF; ?>">
<?php
	}
}
elseif (isset($eintragen)) {
	echo formular($name,$email,$homepage,$url,$text);
}
else {
	$Zeilen_pro_Seite = 10;
	if (!isset($lp)) {
		$lp = 0;
	}

	$Anzahl = mysql_num_rows(mysql_query("SELECT * FROM sc_gbook"));
	$strGBook = "SELECT * FROM sc_gbook ORDER BY datum DESC, zeit DESC LIMIT ". $lp .", ". $Zeilen_pro_Seite ."";
	$sqlGBook = mysql_query($strGBook);

	while ($rowGBook = mysql_fetch_array($sqlGBook)) {
		$rowDatum = explode("-", $rowGBook["datum"]);
		$printDatum = date("d.m.Y", mktime(0,0,0,$rowDatum[1],$rowDatum[2],$rowDatum[0]));

		$rowZeit = explode(":", $rowGBook["zeit"]);
		$printZeit = $rowZeit[0] .":". $rowZeit[1] ." Uhr";
?>
<!-- Tabelle zum zentrieren -->
<table border="0" width="100%" cellSpacing="0" cellPadding="0">
<tr>
	<td width="15%">&nbsp;</td>
	<td width="*" align="center">
<!-- Gästebucheinträge -->
	<table border="0" class="gb" cellSpacing="2" cellPadding="3" style="table-layout: fixed;">
	<tr>
		<td style="width: 100px; text-align:right"><b>Name:</b></td>
		<td style="width: 450px; background-color: #4A60A9; color: #FFFFFF;"><?php echo $rowGBook["name"]; ?></td>
	</tr>
	<tr>
		<td style="width: 100px; text-align:right"><b>Datum:</b></td>
		<td style="width: 450px; background-color: #4A60A9; color: #FFFFFF;"><?php echo $printDatum; ?></td>
	</tr>
	<tr>
		<td style="width: 100px; text-align:right"><b>Zeit:</b></td>
		<td style="width: 450px; background-color: #4A60A9; color: #FFFFFF;"><?php echo $printZeit; ?></td>
	</tr>
	<tr>
		<td style="width: 100px; text-align:right"><b>eMail:</b></td>
		<td style="width: 450px; background-color: #4A60A9;"><a href="mailto:<?php echo $rowGBook["email"]; ?>" style="font: #FFFFFF; color: #FFFFFF;"><?php echo $rowGBook["email"]; ?></a></td>
	</tr>
	<?php if ($rowGBook["url"] != "") { ?>
	<tr>
		<td style="width: 100px; text-align:right"><b>Homepage:</b></td>
		<td style="width: 450px; background-color: #4A60A9;"><a href="http://<?php echo $rowGBook["url"]; ?>" target="_blank" style="color: #FFFFFF;">http://<?php echo $rowGBook["url"]; ?></a></td>
	</tr>
	<?php } ?>
	<tr>
		<td style="width: 100px; text-align:right; vertical-align: top"><b>Text:</b></td>
		<td style="width: 450px; background-color: #4A60A9; color: #FFFFFF;"><?php echo $rowGBook["text"]; ?></td>
	</tr>
	<?php if ($rowGBook["kommentar"] != "") { ?>
			<tr>
				<td style="width: 100px; text-align:right; vertical-align: top"><b>Kommentar:</b></td>
				<td style="width: 400px; background-color: #1E90FF; color: #FFFFFF;"><?php echo $rowGBook["kommentar"]; ?></td>
			</tr>
	<?php } ?>
	</table>
<!-- Ende Gästebucheinträge -->	
	</td>
	<td width="15%">&nbsp;</td>
</tr>
</table>
<!-- Ende Tabelle zum zentrieren -->
<br>
<?php
	}
	if ($lp > 0) {
		echo  "<a href='". $PHP_SELF ."?lp=0'>erste Seite</a>&nbsp;";
		$back = $lp - $Zeilen_pro_Seite;
		if ($back < 0) {
			$back = 0;
		}
		echo  "<a href='". $PHP_SELF ."?lp=". $back ."' style='text-decoration: none;'>&laquo;</a>&nbsp;";
	}
	if ($Anzahl > $Zeilen_pro_Seite) {
		$Seiten = intval($Anzahl / $Zeilen_pro_Seite);
		if ($Anzahl % $Zeilen_pro_Seite) {
			$Seiten++;
		}
	}
	for ($i = 1; $i <= $Seiten; $i++) {
		$fwd = ($i - 1) * $Zeilen_pro_Seite;
		echo "<a href='". $PHP_SELF ."?lp=". $fwd ."'>". $i ."</a>&nbsp;";
		$lastPage = $fwd;
	}
	if ($lp < $Anzahl - $Zeilen_pro_Seite) {
		$fwd = $lp + $Zeilen_pro_Seite;
		echo "<a href='". $PHP_SELF ."?lp=". $fwd ."' style='text-decoration: none;'>&raquo;</a>&nbsp;";
		$fwd = $Anzahl - $Zeilen_pro_Seite;
		echo "<a href='". $PHP_SELF ."?lp=". $lastPage ."'>letzte Seite</a>";
	}
}
?>


<!-- Ende Gästebuch -->	
	</td>
</tr>
</table>
</form>

Die zugehörige Datenbank Tabelle sieht wie folgt aus:

[ externes Bild ]

Danke im vorraus
Xmopf

habs gelesen

Verfasst: 10.01.2003 06:39
von www.trash2k.de
hab mir dein script mal durchgelesen und keinen fehler entdeckt poste doch mal die url zu dienem gb

mfg fLo :)

Verfasst: 10.01.2003 13:02
von Xmopf
Das Gästebuch findest du unter

http://www.mediaspezial.de/reserve/gaestebuch.php

Das komische ist daran, dass das Problem nicht immer auftritt, sondern nur mal hin und wieder...

Ihr könnt auch gerne mal Testeinträge machen, wenn euch das weiterhilft.

THX
Xmopf

so....

Verfasst: 11.01.2003 09:54
von www.trash2k.de
:roll: huhu deine seite is cool ich brings nie soweit ne seite wirklich zuende zu machen ;) naja jedenfalls dein problem nagt an mir ;) und ich werd das jetzt mal alles bei mir testen ich brauch nur die Erlaubnis von dir , dass ich das bei mir installen darf und damit rumbastel ist das ok ?

Verfasst: 11.01.2003 13:55
von Xmopf
Wenn du den Fehler findest darfst du mit dem Gästebuch gerne machen was du willst.

Danke schonmal für deine Mühe.

Gruß
Xmopf

Verfasst: 18.01.2003 12:13
von Xmopf
Hat wirklich niemand Ahnung, woran das liegen kann, dass ab und zu ein "array" in das url-Feld der Tabelle schreibt. :cry: Oder hatte jemand schonmal ein ähnliches Problem?