Eigenes Gästebuch

  • Hi,
    Ich bin gerade dabei meine HP zu programmieren und wollte mir ein Gästebuch erstellen. Meine php kentnisse sind nicht so die besten deswegen habe ich dann mal son bissl auf schattenbaum gelesen und es mit dieser Hilfe versucht.

    Wahrscheinlich sieht dieses script für profis völlig lächerlich aus und es funktioniert auch nicht wirklich, zumindest nicht als ich es mit apache getestet habe:

    <?php
    $Eintrag = stripcslashes(nl2br($Eintrag));

    if($Name == "" or $Mail == "" or $Eintrag == "")
    {
    echo "Bitte fülle alle Pflichtfelder aus";
    }
    else
    {
    $Datei = fopen("einträge.txt","a");
    }

    fwrite($Datei, $Name, $Mail, $Hompage, $Eintrag);
    fclose($Datei);
    ?>

    Ich war noch nicht ganz fertig. Zur Erleuterung, das script sollte das was der Benutzer geschrieben hat in einer txt datei speichern die ich dann auf der eigendlichen Seite includen wollte. Die gestalterischen aspekte wollte ich später noch einfügen also leerzeilen absätze und so, wie auch immer das geht.

    Also ich wollte dann einfach mal wissen was ich da falsch gemacht habe und wie es richtig geht ???

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • Nun ja, selbst wenn alle felder augefüllt sind steht da dann "Bitte fülle alle Pflichtfelder aus" und danach diese Warnung

    Warning: Wrong parameter count for fwrite() in C:\Programme\xampp\htdocs\eintragen.php on line 24

    Warning: fclose(): supplied argument is not a valid stream resource in C:\Programme\xampp\htdocs\eintragen.php on line 25


    Vielleicht ist ja auch an dem Formular an sich was falsch. Mich iritiiert das irgendwie das ich den einzelnen inputs keine id oder keinen Namen zuweisen muss.
    Ist das denn richtig ??? Hab ich mir irgendwo abgeguckt.

    Hier das Formular:

    <form action="eintragen.php" method="post">
    <table align="center" width="327" border="0" cellspacing="0" cellpadding="0">

    <td>Name*:</td>
    <td width="170"><input class="input" type="text" name="textfieldName"
    size="24"></td>
    <tr>
    <td rowspan="3">
    <table width="64" border="0" cellspacing="0" cellpadding="0">
    </tr>
    <tr>
    </tr>
    <tr>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td>E-mail*:</td>
    <td width="170"><input class="input" type="text" name="textfieldName" size="24"></td>
    </tr>
    <tr>
    <td>Hompage:</td>
    <td width="170"><input class="input" type="text" name="textfieldName" size="24"></td>
    </tr>
    <tr>
    <td valign="top">Eintrag:</td>
    <td colspan="2"><textarea class="textfield" name="textareaName" rows="4" cols="40"></textarea></td>
    </tr>
    <tr>
    <td></td>
    <td width="170">
    <table width="155" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><input class="button" type="reset" value="Zurücksetzen" name="Button">
    <td><input class="button" type="submit" value="Eintragen" name="Button"></td>
    </table>
    </form>

    Ich weiß es ist etwas unübersichtlich. sieht sonst auch anders aus aber besser konnte ich es hier nicht reinkopieren.

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • So, nun habe ich dass script so umgebaut wie du meintest DarkSyranus.
    Außerdem habe ich noch ein paar zusätzliche schen eingefügt damit die einträge hinterher ein wenig schöner un geordneter sind. aber irgenwie funktioniert es imer noch nicht.

    Das Script sieht jetzt so aus:


    <?php
    if ($Name == "" or $Mail == "" or $Text == "")
    {
    echo "Bitte f&uuml;lle alle Pflichtfelder aus";
    }
    else
    {
    if ($Hompage == "")
    {
    $Eintrag = "<a href=\"mailto:$Mail\">$Name</a>
    $Text
    ;"
    }
    else
    {
    $Eintrag = "<a href=\"mailto:$Mail\">$Name</a>
    <a href=\"$Hompage\">$Homepage</a>
    $Text

    ;"
    }

    $Datei = fopen("zeigen.txt","w+");
    fwrite($Datei,$Eintrag);
    fclose($Datei);
    echo "Danke $Name f&uuml;r deinen Eintrag";
    ?>

    Und die Fehlermeldung wenn ich es ausführen will lautet wie folgt:

    Parse error: syntax error, unexpected '}' in C:\Programme\xampp\htdocs\eintragen.php on line 22

    Was habe ich denn nun falsch gemacht ???

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • Danke, habe ich gemacht.

    Leider hat sich aber nichts geändert. Der fehler ist immer noch der gleiche. Außerdem wird, wenn ich die php datei ausführe auf meinem rechner ohne apache und so, ein stück code im IExplorer angezeigt. dürfte ja eigentlich nicht sein. Wäre alles korrekt dürfte man gar nichts sehen.

    Das ist übrigens dieser Code. Vielleicht hilft der euch ja noch weiter.

    $Name
    $Text
    "; } else { $Eintrag = "$Name
    $Homepage
    $Text

    "; } $Datei = fopen("zeigen.txt","w+"); fwrite($Datei,$Eintrag); fclose($Datei); echo "Danke $Name für deinen Eintrag"; ?>

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • So, ich hab das ganze mal etwas überarbeitet.

    Sollte so gehen, tuts jedenfalls bei mir =)

  • So, soweit funktioniert es erstmal. Keine Syntxfehler mehr. Also erst mal danke für deine mühen DarkSyranus.

    Allerdings wäre da noch ein kleines Problem.

    Wenn ich dass GB nun Teste gibt er mir immer aus"Bitte fülle alle Pflichtfelder aus" obwohl ich diese ja alle ausfülle. Also müsste ja eigentlich die Datei "zeigen.txt" erstellt werden und dort der text rein. funzt aber nit so richtig.

    Kann es sein das es an XAMPP liegt, also das dieser virtuelle Webserver irgnedwas nicht unterstützt oder ist da noch ein anderer Fehler ?

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • Endlich funktioniert alles. Lag wohl daran das Hompage falsch geschrieben war.

    Es gibt da nur noch ein Klitze klitze kleines Problem. Der Text in "zeigen.txt" wird immer überschrieben wenn ich einen neune eintrag mache. sso soll es ja eben nicht sein. Er soll ja alle texte speichern, und wenn es geht den neusten zu erst.

    Wie bekomme ich das denn jetzt noch hin ???

    edit: Da ist mir gerde noch was aufgefallen. Die Hompage wird nicht in die Datei geschrieben. Was ist denn da jetzt falsch

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • Jetz funktioniert alles, aber es tut mir leid, ich stehe vor dem nächsten Problem.

    Ich habe unter das formular noch mal eine Tabelle gesetzt mit einer Zelle.
    Da zischen soll nun die "zeigen.txt" include werden. Aber der Text wird einfach nicht angezeigt. eigentlich sollte da aber alles richtig sein zu mal includen nicht wirklich schwer ist.

    Was zum teufel ist da schon wieder im argen. Das ist aber auch ne Tüftelei.

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • Ah, mom....
    Ich glaube ich habe das so geschrieben include ("zeigen.txt"). Also die Datei in " gesetzt. Also liegt es wahrscheinlich daran das ich die Datei in ' setzen muss.

    Kann das leider gerade nicht prüfen weil ich nicht zuhause bin aber ich gehe eimal davon aus das es so ist.

    Sobald ich an meinen Rechner kann werde ich das überprüfen und Rückmeldung geben.

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • Das ist nicht gut. Denn dann fällt mir so auf Anhieb jetzt nichts mehr ein was ich falsch gemacht haben könnte.

    Das ist aber auch wirklich ne ziemliche prokelei bis man dann endlich mal so ein einfaches Gästebuch fertig hat. Ich möchte gar nicht erst wissen wie lange es dauert erst ein Forum zu programmieren :wink:

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • naja wenn man php kann ist das nicht so ein problem. zeitintensiv ist es trotzdem.
    kannst ja heute abend mal noch schauen ob du ein fehler findest, ansonsten schreibst nochmal hier rein.

    so long

  • So, endlich ist es soweit. Es ist fertig und es funktioniert alles super.

    Der letzte Fehler lag dann nur noch darin das ich die datei wo der Text augegebne werden sollte als html datei gespeichert habe anstatt ales php.

    Lange hat es gedauert und ich danke allen dafür die mir geholfen haben.
    Was das Design angeht muss ich noch ein bissl rumspielen aber sonst ist alles super.

    Vielen Dank !!!! :D :D :D

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.

  • So, eine Frage wäre da dann doch noch wieder aufgetaucht.

    Ich möchte jetzt das ich dort wo das echo erfolgt auch noch ein button ist mit dem man dann zu der Gästebuchseite zurück sprigen kann.

    Im Momment muss man nähmlich immer mit dem zurück button des Browsers auf die Seite gehen und dort dann esrt mal aktualisieren bis der Beitrag dann auftaucht.

    das ist etwas ungünstig.

    Gebt uns ein paar verrückte Menchen, denn seht wohin uns die normalen gebracht haben.