Fehler in meinem Gästebuch

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Xmopf
Mitglied
Beiträge: 85
Registriert: 17.04.2002 09:21
Wohnort: Sauerland

Fehler in meinem Gästebuch

Beitrag 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
www.trash2k.de

habs gelesen

Beitrag von www.trash2k.de »

hab mir dein script mal durchgelesen und keinen fehler entdeckt poste doch mal die url zu dienem gb

mfg fLo :)
Xmopf
Mitglied
Beiträge: 85
Registriert: 17.04.2002 09:21
Wohnort: Sauerland

Beitrag 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
www.trash2k.de

so....

Beitrag 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 ?
Xmopf
Mitglied
Beiträge: 85
Registriert: 17.04.2002 09:21
Wohnort: Sauerland

Beitrag 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
Xmopf
Mitglied
Beiträge: 85
Registriert: 17.04.2002 09:21
Wohnort: Sauerland

Beitrag 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?
Antworten

Zurück zu „Coding & Technik“