php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.01.2009, 15:44  
Benutzer
 
Benutzerbild von bodoalbstadt
 
Registriert seit: 06.01.2009
Beiträge: 43
PHP-Kenntnisse:
Fortgeschritten
bodoalbstadt ist zur Zeit noch ein unbeschriebenes Blatt
bodoalbstadt eine Nachricht über MSN schicken
Standard [Erledigt] Problem mit Gästebuch

So. Nun versuche ich es noch einmal ganz freundlich:

Ich habe ein kleines Gästebuch erstellt das bisher schonmal gut funktioniert hatte. Die Einträge werden in einer Datei "gaestebuch.dat" gespeichert, nicht in einer Datenbank, das ist mir ein zu großer Aufwand.

Hier der Code aus der Datei "gaestebuch.php":

PHP-Code:
<p><a href="index.php?p=daten/gaestebuch-eintragen">Ins G&auml;stebuch eintragen!</a></p>
<?php
 $datenbank 
"gaestebuch.dat";
 
readfile($datenbank);
?>
Diese Datei wird per include eingebunden sobald man das Gästebuch auswählt.

Und hier die Datei "gaestebuch-eintragen-php" die über den Link "Ins Gästebuch eintrage!" geladen wird, in der dann oben das Eingabeformular ist und darunter eigentlich die ganzen Einträge geladen werden:

PHP-Code:
<?php
if ( isset($_POST['email'], $_POST['name'], $_POST['ort'], $_POST['eintrag']) ) {
  
$daten '
 <fieldset>
  <legend>
   <a href="mailto:'
.htmlspecialchars($_POST['email'], ENT_QUOTES).'">
   '
.htmlspecialchars($_POST['name'], ENT_QUOTES).'</a>
   <i> aus '
.htmlspecialchars($_POST['ort'], ENT_QUOTES).' schrieb am '.date('d.m.Y \u\m H:i').' Uhr</i>
  </legend>
  '
nl2br(htmlspecialchars($_POST['eintrag'], ENT_QUOTES)) .'
 </fieldset>
  '
;
 
  
$datenbank "gaestebuch.dat";
  
$target = @fopen($datenbank,"r+");
  if ( 
false===$target && !file_exists($datenbank)) {
    
$target = @fopen($datenbank,"w+");
  }
  if ( 
false===$target ) {
    die(
'Fehler beim Öffnen der Datei');
  }
  
$tmp = @tmpfile() or die('Fehler beim Erstellen der temporären Datei');
 
  
stream_copy_to_stream($target$tmp);
  
fflush($tmp);
 
  if ( 
0!==fseek($target0SEEK_SET) || 0!==fseek($tmp0SEEK_SET)) {
    die(
'Fehler beim Setzen des Dateizeigers');
  }
 
  
fwrite($target$daten);
  
stream_copy_to_stream($tmp$target);
 
  
fclose($target);
  
fclose($tmp);
}
?>
    <form method="post" action="index.php?p=daten/gaestebuch">
      <fieldset>
  <legend>Ins G&auml;stebuch eintragen:</legend>
  <table>
   <tr>
    <td>Name :</td>
    <td><input type="text" name="name" /></td>
   </tr>
   <tr>
    <td>Wohnort :</td>
    <td><input type="text" name="ort" /></td>
   </tr>
   <tr>
    <td>E-Mail :</td>
    <td><input type="text" name="email" /></td>
   </tr>
   <tr>
    <td>Kommentar :</td>
    <td><textarea name="eintrag"></textarea></td>
   </tr>
   <tr>
    <td></td>
    <td><input type="submit" name="button" value="Eintragen" /></td>
   </tr>
  </table>
 </fieldset>
    </form>
<?php
 $datenbank 
"gaestebuch.dat";
 
readfile($datenbank);
?>

David hatte mir hier ja schon enorm geholfen.

Eigentlich hatte der Code so wie er jetzt ist einwandfrei funktioniert. Nur, ich weiß nicht weshalb, tut es das auf einmal nicht mehr und ich weiß nicht woran es liegen könnte. Ich habe ja schon einiges inzwischen versucht, aber leider bisher ohne Erfolg. Es scheint nichts in die Datei "gaestebuch.dat" geschrieben zu werden, da sie immer leer ist. Trage ich manuell etwas ein und lade sie neu hoch wird der Inhalt angezeigt.

Es kommt auch keine Fehlermeldung oder so, daher versteh ich das ganze nicht.

Ich habe durchaus auch schon in einem anderen Forum gepostet (hier und hier), nur hat man mir dort leider bisher nicht helfen können oder wollen.

Vielleicht hat David ja wieder ne Lösung parat? Wäre echt prima.

Ich weiß, Boardregeln. Aber das Problem ist nunmal jetzt erst aufgetreten und nicht schon vor Wochen, daher konnte ich mich auch nicht vorher ans Forum wenden um Hilfe zu bekommen. Die Homepage sollte aber dieser Tage fertig sein.
bodoalbstadt ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.01.2009, 15:53  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

Hallo. Entferne bitte mal alle @ aus dem Script und lasse dir eventuelle Fehlermeldungen anzeigen. Meistens sind diese schon sehr aussagekräftig.
__________________
http://tippsgegenlangeweile.de

Young Jedi ist offline  
Alt 06.01.2009, 15:53  
Benutzer
 
Registriert seit: 06.01.2009
Beiträge: 50
JSON_Magic befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<form method="post" action="index.php?p=daten/gaestebuch"
besser
PHP-Code:
<form method="post" action="index.php?p=daten/gaestebuch-eintragen"
Dann klappts auch mit dem Nachbarn.

PS: dürfte sicherheitskritisch sein... wenn index.php so aussieht:

PHP-Code:
<?
include($_GET[p].".php");
?>
dann wird deine seite in 2 minuten gehackt.
JSON_Magic ist offline  
Alt 06.01.2009, 15:54  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Keine Lust jetzt die ganzen andern Threads zu lesen, aber wenns dir noch keiner gesagt haben sollte:

PHP-Code:
error_reporting(E_ALL);
ini_set("display_errors",1); 
ganz an den Anfang deines Scripts zum Datei schreiben.

Und vor allen Dingen: sämtliche @ aus deinem Code entfernen, die unterdrücken Fehlermeldungen...

Edit: man war ich langsam xD
cycap ist offline  
Alt 06.01.2009, 15:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Nur, ich weiß nicht weshalb, tut es das auf einmal nicht mehr und ich weiß nicht woran es liegen könnte.
Das ist keine sinnvolle Fehlerbeschreibung. Was passiert denn? Fehlermeldungen? Ausgaben?

[edit] Na ich erst. Kommt davon, wenn man erst die XPostings liest.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 06.01.2009, 15:55  
Benutzer
 
Registriert seit: 06.01.2009
Beiträge: 50
JSON_Magic befindet sich auf einem aufstrebenden Ast
Standard

Die @ müssen sein, damit der schlechte Programmierstil nicht auffällt

@nikosch

er drückt auf "Eintragen" aber es wird an gaestebuch gesendet. Die Routine zum speichern steht aber in gaestebuch-eintragen. Darum sieht er nix...
JSON_Magic ist offline  
Alt 06.01.2009, 15:56  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Die Einträge werden in einer Datei "gaestebuch.dat" gespeichert, nicht in einer Datenbank, das ist mir ein zu großer Aufwand.
Auch ne hübsche aussage... das speichern in einer Datenbank sind so um die 3 Zeilen Code, wieviele hast du da oben?
cycap ist offline  
Alt 06.01.2009, 15:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Die @ müssen sein, damit der schlechte Programmierstil nicht auffällt
Leider - in der Tat:
Zitat:
PHP-Code:
  $target = @fopen($datenbank,"r+");
  if ( 
false===$target && !file_exists($datenbank)) {
    
$target = @fopen($datenbank,"w+");
  }
  if ( 
false===$target ) {
    die(
'Fehler beim Öffnen der Datei');
  } 
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 06.01.2009, 16:01  
Benutzer
 
Benutzerbild von bodoalbstadt
 
Registriert seit: 06.01.2009
Beiträge: 43
PHP-Kenntnisse:
Fortgeschritten
bodoalbstadt ist zur Zeit noch ein unbeschriebenes Blatt
bodoalbstadt eine Nachricht über MSN schicken
Standard

Also diesen Code hat mir im großen Ganzen ein anderes Forenmitglied geschickt. Meiner war einiges abgespeckter.

Fehler werden keine Ausgegeben.

Wie gesagt: es hatte vorher problemlos funktioniert. Neue Einträge wurden an erster Stelle geladen und nicht ans Ende gesetzt. Nur auf einmal funktionierte nichts mehr. Es sieht wie gesagt so aus als würde er nicht in die "gaestebuch.dat" schreiben können, weshalb auch immer.
bodoalbstadt ist offline  
Alt 06.01.2009, 16:02  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von bodoalbstadt Beitrag anzeigen
Also diesen Code hat mir im großen Ganzen ein anderes Forenmitglied geschickt. Meiner war einiges abgespeckter.

Fehler werden keine Ausgegeben.

Wie gesagt: es hatte vorher problemlos funktioniert. Neue Einträge wurden an erster Stelle geladen und nicht ans Ende gesetzt. Nur auf einmal funktionierte nichts mehr. Es sieht wie gesagt so aus als würde er nicht in die "gaestebuch.dat" schreiben können, weshalb auch immer.
siehe #4
cycap ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Probleme mit meinem Gästebuch Manniii PHP Tipps 2008 4 15.06.2008 19:13
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Problem mit Gästebuch Akula PHP Tipps 2008 10 02.05.2008 22:27
Habe Problem mit meinem Gästebuch... Minimi PHP Tipps 2008 5 16.10.2007 09:18
[Erledigt] Problem mit User/Group: nobody(99)/99 Server, Hosting und Workstations 3 09.07.2005 15:31
Dropdown-Menü und Gästebuch PHP Tipps 2005-2 5 20.06.2005 23:20
[Erledigt] 4images Gästebuch PHP Tipps 2005 11 03.06.2005 08:05
Gästebuch / Datenbank PHP Tipps 2005 2 22.04.2005 16:27
Gästebuch Problem PHP Tipps 2005 3 08.02.2005 08:18
letztes problem mit meinem Gästebuch PHP Tipps 2005 17 08.01.2005 22:19
Problem mit HTML im Gästebuch juhuwoorps PHP Tipps 2004 8 06.09.2004 19:10
Gästebuch und Blättern picco PHP Tipps 2004 23 01.09.2004 16:52
Problem mit meinem Gästebuch picco PHP Tipps 2004 10 25.08.2004 23:35
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
Gästebuch / Include Problem PHP Tipps 2004 9 14.07.2004 18:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
iv guestbook dat datei entschlüsseln, http://www.php.de/php-einsteiger/50393-erledigt-problem-mit-gaestebuch.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum