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

Brauche Hilfe mit Gästebuch

Keyno

Neues Mitglied
Hallo,

ich bräuchte etwas Hilfe bei meinem Gästebuch. Es will einfach nicht funktionieren.

Hier die Seite (der PHP-Code steht zwischen den beiden HTML-Codes):
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<title>David Kimmig's Seite - G&auml;stebuch</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="../style.css" media="screen" />
</head>
<body>
<div id="header">
  <div class="center_wrapper"><br /><br />
    <div class="clearer">&nbsp;</div>
    <div id="site_title">
    <h1><a href="http://www.html.de/">David Kimmig's <span>Seite</span></a></h1>
    </div>
  </div>
</div>
<div id="navigation">
  <div class="center_wrapper">
    <ul>
      <li><a href="http://www.html.de/">Startseite</a></li>
      <li><a href="http://www.html.de/&uuml;ber_mich">&Uuml;ber mich</a></li>
      <li><a href="http://www.html.de/downloads">Downloads</a></li>
      <li><a href="http://www.html.de/grafikg&auml;stebuch">Grafikg&auml;stebuch</a></li>
      <li class="current_page_item"><a href="">G&auml;stebuch</a></li>
      <li><a href="http://www.html.de/kontakt">Kontakt</a></li>
    </ul>
    <div class="clearer">&nbsp;</div>
  </div>
</div>
<div id="main_wrapper_outer">
  <div id="main_wrapper_inner">
    <div class="center_wrapper">
      <div class="left" id="main">
        <div id="main_content">
          <div class="post">
            <div class="post_title">
              <h2>G&auml;stebuch</h2>
            </div>
            <div class="post_body">
        <p><?php readfile("daten.dat"); ?>
<?php
//Zufallszahlen erzeugen
mt_srand((double)microtime() * 1000000);
$zufall1 = mt_rand(1,20);
mt_srand((double)microtime() * 1000000);
$zufall2 = mt_rand(1,9);
$k = "$zufall1" + "$zufall2";
$key = md5($k);
$Name = $_POST[Name];
$Name = strip_tags($Name);
$Name = stripcslashes($Name);
$Name = stripslashes($Name);
$Name = str_replace(" ", "xxxxxx", $Name);
$Email = $_POST[Email];
$Email = strip_tags($Email);
$Email = stripcslashes($Email);
$Email = stripslashes($Email);
$Nachricht = $_POST[Nachricht];
$Nachricht = strip_tags($Nachricht);
$Nachricht = stripcslashes($Nachricht);
$Nachricht = stripslashes($Nachricht);
$ergebnis = $_POST[ergebnis];
$ergebnis = strip_tags($ergebnis);
$ergebnis = stripcslashes($ergebnis);
$ergebnis = stripslashes($ergebnis);
$key2 = $_POST[key2];
if(!ctype_alnum($key2)) {unset($key2);}
$t = $_POST[t];
if(empty ($Name)) {$error .= "<p class=\"fehler\">Fehler: Geben Sie bitte Ihren Namen ein</p>";}
if(!ctype_alnum($Name)) {$error .= "<p class=\"fehler\">Fehler: Ihr Name darf nur alphanumerische Zeichen enthalten</p>";}
if(ctype_cntrl($Name)) {$error .= "<p class=\"fehler\">Fehler: Ihr Name enth&auml;lt unzul&auml;ssige Zeichen.</p>";}
if(!is_numeric($t)){$error .= "<p class=\"fehler\">Fehler: Ein Fehler ist aufgetreten</p>";}
if(empty ($Nachricht)) {$error .= "<p class=\"fehler\">Fehler: Geben Sie bitte einen Eintrag ein.</p>";}
if(empty ($ergebnis)) {  $error .= "<p class=\"fehler\">Fehler: Geben Sie bitte das Ergebnis der Sicherheitsabfrage ein.</p>";}    
if(!is_numeric($ergebnis)){$error .= "<p class=\"fehler\">Fehler: Das Ergebnis der Sicherheitsabfrage enth&auml;lt unzul&auml;ssige Zeichen.</p>";}     
if(ctype_cntrl($ergebnis)) {$error .= "<p class=\"fehler\">Fehler: Das Ergebnis der Sicherheitsabfrage enth&auml;lt unzul&auml;ssige Zeichen.</p>";}
$abfrage = md5($ergebnis);
if(!empty($ergebnis))
{
if($abfrage != $key2) {$error .= "<p class=\"fehler\">Fehler: Das Ergebnis der Sicherheitsabfrage ist leider nicht korrekt.</p>";}
}
if(empty($error))
{
$daten = "<div class=\"comment\">
                <div class=\"comment_gravatar left\"><img alt=\"Unbekannter\" src=\"sample-gravatar.jpg\" height=\"32\" width=\"32\" /></div>
                <div class=\"comment_author left\"> <a href=\"mailto:".$_POST["email"]."\">".$_POST["name"]."</a>
                  <div class=\"comment_date\">".strftime("%x")." um ".strftime("%X")."</div>
                </div>
                <div class=\"clearer\">&nbsp;</div>
                <div class=\"comment_body\">
                  <p>".$_POST["comment"]."</p>
                </div>
              </div>";
$datenbank = "daten.dat";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
}
?></p>
            <form action="http://davidkimmig.de/de/g&auml;stebuch" method="post" id="reply">
              <fieldset>
              <div class="legend">
                <h3>Schreibe einen Eintrag!</h3>
              </div>
              <div class="form_row">
                <div class="form_property form_required">Name</div>
                <div class="form_value">
                  <input type="text" size="32" name="name" value="<?php echo $Name; ?>" class="inputtext" />
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
              <div class="form_row">
                <div class="form_property">E-Mail</div>
                <div class="form_value">
                  <input type="text" size="32" name="email"  value="<?php echo $Email; ?>" class="inputtext" />
                </div>&nbsp;(optional)
                <div class="clearer">&nbsp;</div>
              </div>
              <div class="form_row">
                <div class="form_property form_required"><?php echo $zufall1; ?> + <?php echo $zufall2; ?> =</div>
                <div class="form_value">
                  <input type="text" size="2" maxlength="2" name="ergebnis" id="ergebnis" />
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
              <div class="form_row">
                <div class="form_property form_required">Eintrag</div>
                <div class="form_value">
                  <textarea rows="10" cols="46" name="Nachricht"><?php echo $Nachricht; ?></textarea>
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
              <div class="form_row form_row_submit">
                <div class="form_value">
                  <input type="submit" class="button" value="Eintrag absenden" />
                  <input name="sent" type="hidden" id="sent" value="1" />
                  <input name="key2" type="hidden" id="key2" value="<?php echo $key; ?>" />  
                  <input name="t" type="hidden" id="t" value="<?php echo time(); ?>" /> 
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
              </fieldset>
            </form>
            </div>
        </div>
        </div>
      </div>
      <div class="clearer">&nbsp;</div>
    </div>
  </div>
</div>
<div id="footer">
  <div class="center_wrapper">
    <div class="left"> &copy; Copyright 2009 David Kimmig | Valid <a href="http://validator.w3.org/check?uri=referer">XHTML</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></div>
    <div class="right">Website template by <a href="http://arcsin.se/">Arcsin</a> </div>
    <div class="clearer">&nbsp;</div>
  </div>
</div>
</body>
</html>

Vielleicht kann mir dabei jemand helfen. Wäre echt dankbar..
Hier noch der Link:
David Kimmig's Seite - Gästebuch
Ach ja, wenn man etwas reinschreibt, kommt einfach nichts dabei raus :(

Grüße
Keyno
Mod-Edit: [noparse]
Code:
[/noparse] in [noparse][php][/noparse]-tags umgewandelt - Dann arbeitet der Highlighter für dich und womögliche Fehler sind leichter zu lokalisieren [/B]([URL="http://www.html.de/members/xraysolo.html"]XraYSoLo[/URL])
 
Zuletzt bearbeitet von einem Moderator:
Hi,

nutze bitte [code ] - Boxen statt [html ] [/html ] (ohne Leerzeichen)! Die haben irgendeinen Fehler hatte "Efchen" mal irgendwann erwähnt, meine ich mich zu erinnern! ;)

Achja und noch etwas!

Es will einfach nicht funktionieren.
Ist keine sinnvolle Problembeschreibung! Hast du das Problem schon eingegrenzt? Wird wenigstens irgendwas in die Datei geschrieben?
 
Hallo,

Ziemlich viel Code, ich glaube da hat niemand wirklich so viel Lust, sich alles durchzuschauen.

Du kannst ja mal versuchen, "error_reporting(E_ALL);" in deinen Code ganz am Anfang einzubauen. Dann werden alle Fehler, Warnungen usw. angezeigt.
Vielleicht entdeckst du da was und kannst das Problem ein bisschen enger eingrenzen.

Grüße,
Manuel
 
Danke schon mal, habe das in CODE geändert.
Wenn ich "error_reporting(E_ALL);" dazu schreibe, erscheint nicht mehr, als ohne, oder habe ich das falsch verstanden? Ich habe das error_reporting(E_ALL); vor ?> gesetzt. Stimmt doch so, oder?

Also, das Problem besteht nur darin, dass es nicht in die daten.dat schreibt. Die Datei hat aber Zugriff und konnte die daten.dat auch schon anlegen, aber irgendwie habe ich wohl einen Fehler eingebaut und finde ihn nicht. Ich vermute, an dieser Stelle:
Code:
$daten = "<div class=\"comment\">
                <div class=\"comment_gravatar left\"><img alt=\"Unbekannter\" src=\"sample-gravatar.jpg\" height=\"32\" width=\"32\" /></div>
                <div class=\"comment_author left\"> <a href=\"mailto:".$_POST["email"]."\">".$_POST["name"]."</a>
                  <div class=\"comment_date\">".strftime("%x")." um ".strftime("%X")."</div>
                </div>
                <div class=\"clearer\">&nbsp;</div>
                <div class=\"comment_body\">
                  <p>".$_POST["comment"]."</p>
                </div>
              </div>";

Danke für das tolle Forum hier! Hier wird mir echt schnell geholfen :)
Gute Nacht allen, die das noch heute lesen.
Keyno
 
Ich nehme jetzt doch ein Gästebuch auf MySQL basierend.
Irgendwie wird aber nichts in meine MySQL-Datenbank eingetragen (d. h. Fehler bei der Übermittlung).

Hier ist die index.php, die zu moment.php weiterleitet (habe nur die Mitte der Datei eingefügt):
Code:
</div>
<div id="main_wrapper_outer">
  <div id="main_wrapper_inner">
    <div class="center_wrapper">
      <div class="left" id="main">
        <div id="main_content">
          <div class="post">
            <div class="post_title">
              <h2>G&auml;stebuch</h2>
            </div>
            <div class="post_body">
        <p>Hier ist mein G&auml;stebuch! Bitte macht doch einen Eintrag, es funktioniert noch nicht (wird gerade bearbeitet)! Ach ja: HTML ist <b>nicht</b> erlaubt. 
        Somit k&ouml;nnen sich automatische Bots nicht eintragen, da diese immer einen Link dazuschreiben (d. h.: kein <u>www.</u> oder <u>http://</u> ist erlaubt).</p>
            <form action="http://davidkimmig.de/de/g&auml;stebuch/moment.php" method="post" id="reply">
              <fieldset>
              <div class="legend">
                <h3>Schreibe einen Eintrag!</h3>
              </div>
              <div class="form_row">
                <div class="form_property form_required">Name</div>
                <div class="form_value">
                  <input type="text" size="32" name="Name" class="inputtext" />
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
              <div class="form_row">
                <div class="form_property">E-Mail</div>
                <div class="form_value">
                  <input type="text" size="32" name="Email" class="inputtext" />
                </div>&nbsp;(optional)
                <div class="clearer">&nbsp;</div>
              </div>
              <div class="form_row">
                <div class="form_property form_required">Eintrag</div>
                <div class="form_value">
                  <textarea rows="10" cols="46" name="Eintrag"></textarea>
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
              <div class="form_row form_row_submit">
                <div class="form_value">
                  <input type="submit" class="button" value="Eintrag absenden" />
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
             </fieldset>
            </form>
            </div>
        </div>
        </div>
      </div>
      <div class="clearer">&nbsp;</div>
    </div>
  </div>
</div>
Und hier dann moment.php:
Code:
<div id="main_wrapper_outer">
  <div id="main_wrapper_inner">
    <div class="center_wrapper">
      <div class="left" id="main">
        <div id="main_content">
          <div class="post">
            <div class="post_title">
              <h2>G&auml;stebuch</h2>
            </div>
            <div class="post_body">
<?php
include('connect.php');
$name = $_POST[Name];
$email = $_POST[Email];
$eintrag = $_POST[Eintrag];
$link = $_POST[Feld];
if (!$name) { echo "<p class=\"fehler\">Sie haben vergessen, einen Namen anzugeben.</p>";}
if (!$eintrag) { echo "<p class=\"fehler\">Sie haben vergessen, Ihren Eintragstext einzugeben.</p>";}
if (ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+$)", $email) or !$email) { 
if (!$email) { $email=true; }
}
else {
echo "<p class=\"fehler\">Bei der Eingabe Ihrer Emailadresse ist Ihnen wahrscheinlich ein Tippfehler unterlaufen.</p>";
$email = false;
}
if (!$name or !$eintrag or !$email) { 
echo "<br /><p class=\"fehler\">Bitte gehen Sie zur&uuml;ck und erg&auml;nzen bzw. korrigieren Sie die fehlenden Angaben.<p>";
echo "<p><a href=\"javascript:history.back();\">zur&uuml;ck</a></p>";
}
if ($link != "Diesen Text bitte nicht ändern!") {
$linkcheck = false;
} else { $linkcheck = true; }
$anzahl_url = substr_count($eintrag, 'http://');
$anzahl_url2 = substr_count($eintrag, 'www.');
if ($anzahl_url < 2) {$urlcheck = true;} else { $urlcheck = false;}
if ($anzahl_url2 < 2) {$urlcheck2 = true;} else { $urlcheck2 = false;}
if ($name && $email && $eintrag && $linkcheck && $urlcheck && $urlcheck2) {
$ip = $_SERVER['REMOTE_ADDR'];
$host =  gethostbyaddr($ip);
$datum = date("Y-m-d H:i:s");
$eintrag_gb = mysql_query("INSERT INTO gaeste_eintrag (Datum, Email, Name, Text, IP, Host) VALUES ('$datum','$email', '$name', '$eintrag', '$ip', '$host')");
echo mysql_error();
if ($eintrag_gb) {
echo "<p>Ihr Eintrag wurde erfolgreich ins Gästebuch eingetragen.<br />";
    }
}
elseif (!$linkcheck && !$urlcheck && !$urlcheck2) {
echo "<p>Ihr Eintrag wurde als Spam identifiziert und nicht ins Gästebuch eingetragen.<br />";
}
?>
                </div>
                <div class="clearer">&nbsp;</div>
              </div>
             </fieldset>
            </form>
            </div>
        </div>
        </div>
      </div>
      <div class="clearer">&nbsp;</div>
    </div>
  </div>
</div>
Hier noch die connect.php:
Code:
<?php mysql_connect("91.211.113.220", "web83","mein_PW"); mysql_select_db("usr_web83_1"); ?>
Weiß jemand um Rat? Ich denke niemand hat Lust, sich alles durchzulesen, aber vielleicht hat jemand ja eine Vorahnung, was falsch sein könnte :)

Die Verbindung zum MySQL-Server müsste aber aufgebaut sein und funktionieren, da ich auch genau diese Daten bei meiner Shoutbox verwende. Ich denke, dass ich in der "moment.php" einen Fehler gemacht habe.

Danke für jede Hilfe!
Keyno
 
Hab mir den Code nicht genau durchgeschaut; aber wird denn eine Fehlermeldung ausgegeben?
Was mir aufgefallen ist:
PHP:
$name = $_POST[Name];
Muss heißen:
PHP:
$name = $_POST['Name'];
Und zwar bei allen Arrays. Außerdem bin ich mir gerade nicht sicher, ob es ein Problem ist, dass du das Textfeld "Name" nennst (weil name auch ein Attribut ist), nenn das mal in Autor oder so um.

Und dann...
HTML:
<div id="main_wrapper_outer">
  <div id="main_wrapper_inner">
    <div class="center_wrapper">
      <div class="left" id="main">
        <div id="main_content">
          <div class="post">
            <div class="post_title">

Was soll denn so etwas bitte?! Wenn dein Browser sprechen könnte, würde er wahrscheinlich um Hilfe schreien ;)

MfG Icy
 
Hab mir den Code nicht genau durchgeschaut; aber wird denn eine Fehlermeldung ausgegeben?
Was mir aufgefallen ist:
Nein, genau das ist ja das blöde :) Hätte ich dazuschreiben sollen, stimmt ;)

PHP:
$name = $_POST[Name];
Muss heißen:
PHP:
$name = $_POST['Name'];
Und zwar bei allen Arrays.
Schon geändert! Danke für das :)

Außerdem bin ich mir gerade nicht sicher, ob es ein Problem ist, dass du das Textfeld "Name" nennst (weil name auch ein Attribut ist), nenn das mal in Autor oder so um.
Wie sollte ich es dann nennen? benutzer oder so was? Aber ich habe mir alles etwas abgeschaut, daher wird wohl eher der Andere dafür verantwortlich sein^^ So wie oben beim "POST" auch. Bei diesem Script schien jedoch alles zu funktionieren, daher denke ich, macht das nichts.

Und dann...
HTML:
<div id="main_wrapper_outer">
  <div id="main_wrapper_inner">
    <div class="center_wrapper">
      <div class="left" id="main">
        <div id="main_content">
          <div class="post">
            <div class="post_title">
Was soll denn so etwas bitte?! Wenn dein Browser sprechen könnte, würde er wahrscheinlich um Hilfe schreien ;)
Hier gilt das gleiche wie oben, habe ich mir abgeguckt und ich hatte keinerlei Lust, das zu editieren :D (s. meine Seite (s. 1. Post) unten rechts "Template by Arcsin")

Der Browser verkraftet das ja^^
Schon mal danke, leider funktioniert es immer noch nicht :( .
Grüße
Keyno
 
Zurück
Oben