Textbasierendes Gästebuch mit PHP

Hallo Leute,

ich will mir ein Textbasierendes Gästebuch mit PHP machen!
Habe bisher nur geschafft die Formulare zu machen: Gästebuch
Kenne des Script dazu net, wie ich des jetzt Programmieren soll.
Kennst sich hier jemand aus mit PHP und würde mir helfen dabei?
Danke schonmal im voraus! :)

Schönen Gruß.
Wau Holland.
 
Danke für die Links, werde mal dort nachschauen! :)

@4future: Ich kenne mich nicht mit Sql-Datenbanken aus.
Des reicht mir erstmal für den Anfang! Thx! ;)

Schönen Gruß.
Wau Holland.
 
Original von 4future
Lass den doch lieber gleich was gescheites machen mit ner datenbank und so...
Wieso? Wer sagt denn das er eine MySQL Datenbank zur Vefügung hat?
Es wird schon einen Grund haben wieso er Textdateien verwenden will und dies bezüglich sollte er auch Antworten erhalten.
Ich bin grundsätzlich dagegen Fragen in Frage zu stellen.
Wenn jemand ein bestimmtes Problem hat, erwartet er auch das diese spezielle Frage beantwortet wird und nicht stattdessen andere mögliche Wege diskutiert werden.
Du kennst doch die Rahmenbedingungen garnicht, die ihn dazu bewegen diesen speziellen Weg zu wählen.
 
sorry hab's falsch verstanden: habs so interprettiert, das er mit textbasierend meint in text form angezeigt, nicht als textdatei gespeichert...
 
Original von Mackz
Original von 4future
Lass den doch lieber gleich was gescheites machen mit ner datenbank und so...
Wieso? Wer sagt denn das er eine MySQL Datenbank zur Vefügung hat?
Es wird schon einen Grund haben wieso er Textdateien verwenden will und dies bezüglich sollte er auch Antworten erhalten.
Ich bin grundsätzlich dagegen Fragen in Frage zu stellen.
Wenn jemand ein bestimmtes Problem hat, erwartet er auch das diese spezielle Frage beantwortet wird und nicht stattdessen andere mögliche Wege diskutiert werden.
Du kennst doch die Rahmenbedingungen garnicht, die ihn dazu bewegen diesen speziellen Weg zu wählen.

Eine Datenbank hab ich schon zur Verfügung. 8)
Nur kenne ich mich nicht mit MySql aus.
Hab schon versucht ein Woltlab Burning Book zu installieren, geht irgendwie nicht.
Kommen immer fehler dabei raus, und er fängt erst gar net des installieren an und schreibt dass die Daten falsch eingegeben sind.
Außerdem wollte ich ein Gästebuch machen dass von keinem anderen stammt und unter meinem Copyright steht! ;)

Schönen Gruß.
Wau Holland.
 
Also ich würde dir raten, machs mit einer Datenbank, da kannste alles besser managen, mit wiederrauslöschen, und später vieleicht user, du musst halt eine woche investrieren, um dich mal durch ein gutes tutorial zu lesen ( tut.php-q.net)
aber im endeffekt, kannst du damit sachen größer und einfacher speichern. sap is ja auch keine textdatei.
 
Hab mir nun das eine Gästebuch auf Textbasis gemacht, nur gibt es Fehler: Gästebuch
Ich will dass das Eingabeformular oben steht un net dass man Extra ein Link oben drüber schreiben muss wo man draufklicken muss zum eintragen!
Hab des versucht so zu machen ohne Link, aber es kommt ein Fehler dabei raus.
Kann mir da jemand helfen?

Schönen Gruß.
Wau Holland.
 
Original von Wau Holland
Hab des versucht so zu machen ohne Link, aber es kommt ein Fehler dabei raus.
Kann mir da jemand helfen?
Dein Script versucht auf eine gaestebuch.txt zuzugreifen, die bei dir aber nicht existiert. Steht auch deutlich in der Fehlermeldung. Bei dir existiert nur eine eintraege.txt.
 
Habs ausgebessert: GB
Aber wenn ich einen Eintrag erstelle wird er nicht angezeigt! :(
Keine Fehlermeldung, nix.
Kann mal jemand bitte schauen?
Bin irgendwie zu dumm für sowas! ?(

Und dann hätte ich noch eine Frage: Ist es möglich ohne MySql die GB-Funktion "10 Einträge pro Seite anzeigen lassen"?
Gibt es dazu ein PHP Script?

Schönen Gruß.
Wau Holland.
 
Stimmt denn der Pfad zu der eintraege.txt in die, denke ich mal, die Einträge gespeichert werden sollen?
Ansonsten ist es halt irgendein anderer logischer Fehler. Ohne das Script zu sehen kann man da nur raten. Wenn du Punk für Punkt nach dem Tutorial gehst sollte es ansich aber keine Probleme geben. Vielleicht solltest du dich erst einmal mit den Grundlagen vertraut machen, eh du eigene Änderungen an dem Script vornimmst.

Und dann hätte ich noch eine Frage: Ist es möglich ohne MySql die GB-Funktion "10 Einträge pro Seite anzeigen lassen"?
Ja. In dem du die Einträge zählst und nur eine bestimmte Anzahl davon ausgibst. Am besten schreibt man dazu wohl die Einträge in ein Array.
 
Das ist des Script:

<?php
if ($action == "add"){

if ($name == "" || $mail == "" || $text == ""){
echo "<b>Du hast nicht alle Felder ausgefüllt.</b><br>";
echo "Klicke auf den Backbutton deines Browsers!";
}
else{

if ($www == ""){
$eintrag = "<a href=\"mailto:$mail\">$name</a><br>$text";
}
else{
$eintrag = "<a href=\"mailto:$mail\">$name</a>

<br><a href=\"$www\">$www</a>$text<hr><br><br>";
}

$datei = fopen("eintraege.txt","w+");
fputs($datei,$eintrag);
fclose($datei);
echo "Danke <i>$name</i> für deinen Eintrag!";

}

}
else{
?>
<div align="center"><font color="#0000FF" size="-1" face="Arial, Helvetica, sans-serif"><strong>Gästebuch</strong></font></div>
<br>
<br>
<form action="eintragen.php?action=add" method="get">
<div align="center"><table width="700" border="0">
<tr>
<td width="400"><table width="700" border="0">
<tr>
<td width="80"><font size="-1" face="Arial, Helvetica, sans-serif"><strong>Name:</strong></font></td>
<td width="320"><input type="text" name="name" size="40"></td>
</tr>
<tr>
<td><strong><font size="-1" face="Arial, Helvetica, sans-serif">E-Mail:</font></strong></td>
<td><input type="text" name="mail" size="40"></td>
</tr>
<tr>
<td><strong><font size="-1" face="Arial, Helvetica, sans-serif">Homepage:</font></strong></td>
<td><input type="text" name="www" size="40"></td>
</tr>
<tr>
<td><strong><font size="-1" face="Arial, Helvetica, sans-serif">Kommentar:</font></strong><br>
<br>
<br>
<br>
</td>
<td><textarea name="text" cols="70" rows="5"></textarea></td>
</tr>
</table></td>
</tr>
</table>
<br>
<table width="700" border="0">
<tr>
<td width="620"><div align="right"><input type="submit" value="Eintragen"/>     <input type="reset" value="Verwerfen"/></div></td>
<td width="80"> </td>
</tr>
</table>
<?php
}
?>
<hr noshade>
<?php
include("eintraege.txt");
?>
</div>

Hier die URL zum GB:

Wenn ich auf "Eintragen" klicke, dann tragt er den Eintrag net ein in die Textdatei bleibt leer. Der Eintrag wird nicht Angezeigt, keine Fehlermeldungen, nichts!
Hab die Rechte auf 777 bei der eintraege.txt Datei gestellt, aber es geht trotzdem nicht.

Schönen Gruß.
Wau Holland.

Schönen Gruß.
Wau Holland.
 
Wenn du noch ein
<input type="hidden" name="action" value="add">
in das Form schreibst, z.b. vor den submit Button, gehts.
 
Ich habe die Gleichen Probleme wie 08154711 und ich habe es nach vielem googeln und suchen in foren geschaft auf diese seite zu gelangen die genau das selbe problem behandelt wie das welches ich habe und sogar noch das selbe GB ausser das der aubau des formulars etwas anders ist aber das php ist das selbe!
ich habe den beitrag oberhalb von diesem mir zu herzen genommen und habe ihn angewandt aber leider hat nichts funktioniert!

was soll ich denn nun machen?
ist denn die korrekte lösung nochnicht gepostet worden? so wie es in den AGBs steht denn dann wäre ich über glücklich! ich suche seit 2 wochen nach der lösung! und nimand will oder kann mir helfen!

danke vielmals für eure mühen!

mfg bambid
 
Na dann poste doch mal deine Lösung damit der nächste der das Problem hat nich so lange suchen brauch ;)

mfg
püppi
 
Ja das hatte ich vor ich musste ihn nur noch suchen!

PHP:
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<link href="../css.css" type="text/css" rel="stylesheet" media="all">

<body bgcolor="white" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
	<?php 





    function schreibeInDatei( $datei, $inhalt ) { 
        if ( !file_exists( $datei ) ) { 
            printf( 'Die Datei %s konnte nicht gefunden werden. 
                        <br /> 
                        Bitte Pfadangaben überprüfen.', 
                        $datei ); 
            return false; 
        } 

        if ( !is_writable( $datei ) ) { 
            printf( 'Die Datei %s kann nicht beschrieben werden', $datei ); 
            return false; 
        } 

        if ( !$handle = fopen( $datei, "w") ) { 
            printf( 'Die Datei %s kann nicht geöffnet werden', $datei ); 
            return false; 
        } 

        if ( !fwrite( $handle, $inhalt ) ) { 
            printf( 'Es trat ein Fehler beim Schreiben des Inhalts in die Datei %s auf.', $datei ); 
            return false; 
        } 

        fclose( $handle ); 
    } 









    // Dateiname 
    $filename = 'gaestebuch.txt'; 

    // Dateiinhalt lesen 
    $content = trim(file_get_contents($filename)); 


    if(array_key_exists('sent', $_POST)) { 
         /** 
          * Abspeichern des eingegeben Textes in der Datei 
          */ 
           
         // $input enthält die Eingabe, welche angehängt bzw. davorgestellt 
         // werden soll 
         
$input = '<br><br><hr><a href="mailto:'.$_POST['email'].'" span class="ulinks">' . $_POST['name'] . ' '. $_POST['Vorname'] . ' </a><br><br><span class="GS">' . $_POST['text'];          
         $content = $input . $content; 
          
         schreibeInDatei($filename, $content); 
          
         printf(' <a href="anschauen.php" span class="ulinks">Vielen dank für Ihren Eintrag</a>', 
                $_SERVER['PHP_SELF']); 
          
    } 
    else { 
         /** 
          * Anzeigen des Eingabeformulars und des Inhalts der Datei 
          */ 
         printf('<div align="left">
			<table width="630" border="0" cellspacing="0" cellpadding="0">
				<tr>
					<td>
						<div align="right">
							<font size="-1" color="#0000FF" face="Arial, Helvetica, sans-serif"><strong><span class="Titel">Gästebuch</span></strong></font></div>
					</td>
				</tr>
				
				<tr>
					<td> 
                 <form action="%s" method="post"> 
                    <div align="left"><br><br><br><br><span class="GS_Auszeichnungen">Bitte tragen Sie sich hier ein.</span><br>
								<table width="355" border="0">
									<tr>
										<td width="400">
											<table width="351" border="0">
												<tr>
													<td width="100"><font size="-1" face="Arial, Helvetica, sans-serif"><strong><span class="GS_Auszeichnungen">Name:</span></strong></font></td>
													<td><input type="text" name="name" size="40"></td>
												</tr>
												<tr>
													<td width="100"><strong><font size="-1" face="Arial, Helvetica, sans-serif"><span class="GS_Auszeichnungen">Vorname:</span></font></strong></td>
													<td><input type="text" name="Vorname" size="40"></td>
												</tr>
												<tr>
													<td width="100"><strong><font size="-1" face="Arial, Helvetica, sans-serif"><span class="GS_Auszeichnungen">E-Mail:</span></font></strong></td>
													<td><input type="text" name="email" size="40"></td>
												</tr>
												<tr>
													<td width="100"><strong><font size="-1" face="Arial, Helvetica, sans-serif"><span class="GS_Auszeichnungen">Kommentar:</span></font></strong><br>
														<br>
														<br>
														<br>
													</td>
													<td><textarea name="text" rows="5" cols="37"></textarea></td>
												</tr>
											</table>
										</td>
									</tr>
								</table>
								<br>
								<table width="400" border="0">
									<tr>
										<td align="left" valign="top" width="401">
											<div align="center">
												<input type="submit" name="sent" value="Eintragen" />  <input type="reset" value="Verwerfen"/></div>
										</td>
										<td></td>
									</tr>
								</table>
                      
                 </form> 
                 ', 
                  $_SERVER['PHP_SELF'] 
                 );
    } 
     
?>
</body>


So dies ist der Code und er hat auch noch CSS einbindung!
Viel Spass
mfg bambid
 
Zurück
Oben