php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.01.2006, 14:48  
Gast
 
Beiträge: n/a
Standard Ein paar Probleme mit einem Gästebuch

Halloo...

Seit ein paar Tagen beschäftige ich mich nun schon mit php (ja, ich weiß,
sehr kurz) und ich habe mich nun an ein Gästebuch gewagt, welches auf
eine Textdatei basiert. Nun habe ich noch ein paar Probleme!

Also erstens habe ich Smileys eingefügt. Die funktionieren auch gut bis
auf den smiley. Ich habe schon in Erfahrung gebracht, dass vor der
Klammer ein Slash gehört damit die Klammer auch wirklich angezeigt
wird. Ich habe das jetzt mal eingefügt, das sieht dann in etwa so bei mir
aus:

PHP-Code:
$eintrag=ereg_replace(":-)""[img]smilie1.gif[/img]",$eintrag); 
$eintrag=ereg_replace(";-)""[img]smilie2.gif[/img]",$eintrag); 
$eintrag=ereg_replace(":rolleyes:""[img]smilie3.gif[/img]",$eintrag); 
$eintrag=ereg_replace(":-/(""[img]smilie4.gif[/img]",$eintrag); 
die letzte zeile hat immer einen fehler!! Und ich weiß nicht warum. Ich
habe doch die geschlossene Klammer richtig escaped oder?

Und dann habe ich noch eine Frage, undzwar, wie ich erreichen kann,
dass Einträge immer ÜBER den bereits geschriebenen Text eingetragen
werden, also dass die neuen Einträge immer oben stehen. Ich habe schon
gesucht aber nichts gefunden. Hier ist das Script von den Einträgen:

PHP-Code:
<?php 
if (isset($absenden)){ 
 
$datei fopen("eintraege.txt","a");

$eintrag ereg_replace("\n","
"
,$eintrag);
$eintrag=ereg_replace(":-)""[img]smilie1.gif[/img]",$eintrag); 
$eintrag=ereg_replace(";-)""[img]smilie2.gif[/img]",$eintrag); 
$eintrag=ereg_replace(":rolleyes:""[img]smilie3.gif[/img]",$eintrag); 
$eintrag=ereg_replace(":-/(""[img]smilie4.gif[/img]",$eintrag); 


 
$eintrag stripslashes($eintrag); 
$daten "<hr>[b]Name:[/b] $name
 
   [b]Email:[/b] [email="
$email>$email</a>
"]$url[/email]
 
   [b]Eintrag:[/b]
 
   $eintrag
\n\n"

   
fwrite($datei,$daten); 
   
fclose($datei); 

if (
file_exists("eintraege.txt")){ 
   
$datei fopen("eintraege.txt","r"); 
   
$daten fread($datei,filesize("eintraege.txt")); 
  print 
$daten
} else { 
   print 
"[b]Es sind keine Einträge vorhanden![/b]"



?>

Ich weiß, ich bin ein blutiger Anfänger, aber irgendwann hat ja jeder mal
angefangen...
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.01.2006, 15:53  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Hi, willkommen im Forum.

So ganz durchgelesen hab ich mir das jetzt mal nicht.
Hier ein paar Hinweise:
- "hat immer einen Fehler" sagt uns genau gar nix.
Wenn eine Fehlermeldung ausgegeben wird, zeig sie uns. Mit Copy&Paste und nicht (falsch) abtippen.
- Vorsorglich oben in das Script die Zeile error_reporting(E_ALL); einfügen
- ereg_* soll es AFAIK nicht mehr lange geben. Nimm lieber die preg_*-Funktionen
- escapen würde ich mit \ und nicht mit /.
- Ist das hier
if (isset($absenden))
die Überprüfung eines Formular-Feldes?
Wird $absenden vorher aus $_GET oder $_POST entnommen oder verlässt Du Dich darauf, dass die Feldnamen als globale Variablen verfügbar sind?
In dem Fall solltest Du mal dringend hier im Forum nach register_globals suchen und Dir durchlesen, warum das böse ist und dann am besten auf off stellen.

Edit:
Zum Einfügen der Beiträge:
In einer Text-Datei vorne einfügen geht AFAIK nicht.
Du müsstest die Datei in eine temporäre Datei kopieren, löschen, den neuen Text reinschreiben und dann die temporäre Kopie hinten dran hängen.

Du könntest auch die Datei in Eingangsreihenfolge schreiben und dann beim Auslesen umdrehen. Dafür müsste sie aber komplett in den Speicher gelesen werden. Ist sicher nicht so dolle.

Wenn Du die einzelnen Beiträge in einer DB speicherst mit Timestamp, könntest Du die beim Auslesen durch MySQL einfach nach Timestamp sortieren lassen und müsstest Dich um nix kümmern.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.01.2006, 21:25  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Der_Gerhard
Zum Einfügen der Beiträge:
In einer Text-Datei vorne einfügen geht AFAIK nicht.
Doch das geht auch. Entweder öffnet man die Datei im Modus r+ oder man benutzt als Modus a und setzt den Dateizeiger auf den Anfang der Datei.

Edit: Funktioniert nicht...
xabbuh ist offline  
Alt 22.01.2006, 21:31  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Hmm. Auf die Schnelle hab ich jetzt nix dazu gefunden.
Dass man den Dateizeiger auf den Anfang setzen kann ist mir schon klar.
Dass man dann schreiben kann auch.
Nur würde ich eher erwarten, dass der Inhalt der Datei überschrieben wird. Ich hab grad keinen Rechner greifbar, auf dem ich das ausprobieren könnte.
Es würde mich schon etwas wundern, wenn da durch PHP bei jedem Schreibzugriff der Rest der Datei nach hinten verschoben werden würde.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.01.2006, 21:55  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Der_Gerhard
Nur würde ich eher erwarten, dass der Inhalt der Datei überschrieben wird.
Ich habe es mal gerade ausprobiert und muss dir da Recht geben.
xabbuh ist offline  
Alt 23.01.2006, 17:46  
Gast
 
Beiträge: n/a
Standard

Hallo und danke für die Antworten!

Ja, das war ein dummer Fehler von mir, / mit \ zu verwechseln, ich sollte mal wieder meine Brille aufsetzen -.- . Okay, Fehlermeldung mit posten, werd ich mir merken.

Was heißt, dass es ereg_ nicht mehr lange geben wird? Funktioniert das Script dann nicht mehr? Ich habe es mal mit preg_ versucht aber da gibt der mir an, dass in den bestimmten Zeilen das Schließende Zeichen fehlt (?). Kann ich das nicht einfach so lassen wie es jetzt ist? Es funktioniert ja!

Ja, if (isset($absenden)) geht ein Formular zuvor mit POST.
Also... mit dem Einträge umkehrern klappt das nicht? Mit MySql möchte ich nicht arbeiten (jaa schlagt mich ).

Danke für eure Hilfe!
 
Alt 23.01.2006, 17:48  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://www.phpfriend.de/forum/ftopic26569.html

schau dir unbedingt das mal an!!


mfg
Andi
DER_Brain ist offline  
Alt 23.01.2006, 18:44  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Billie Jean
Was heißt, dass es ereg_ nicht mehr lange geben wird? Funktioniert das Script dann nicht mehr? Ich habe es mal mit preg_ versucht aber da gibt der mir an, dass in den bestimmten Zeilen das Schließende Zeichen fehlt (?). Kann ich das nicht einfach so lassen wie es jetzt ist? Es funktioniert ja!
Die Funktion wird soweit ich weiß, in PHP 6 nicht mehr vorhanden sein.
Enen so wie in "gibt's nicht mehr".
Ob Dein Script, das die Funktion aufrufen möchte, noch funktioniert, wenn die Funktion nicht mehr existiert, solltest Du selbst ganz ohne Glaskugel erraten können.

Zitat:
Zitat von Billie Jean
Ja, if (isset($absenden)) geht ein Formular zuvor mit POST.
Siehe Der_Brains Posting.

Zitat:
Zitat von Billie Jean
Also... mit dem Einträge umkehrern klappt das nicht? Mit MySql möchte ich nicht arbeiten (jaa schlagt mich ).
Aber gerne doch. KLATSCH!
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 23.01.2006, 21:05  
Gast
 
Beiträge: n/a
Standard

Hmmmm, ich habe das Problem jetzt selber gelöst, habe endlich die Lösung gefunden. Ich danke euch für eure Hilfe!
 
 


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] Firefox / IE - Probleme HTML, Usability und Barrierefreiheit 5 20.07.2009 17:04
Paar Probleme bei Auktionsscript ghost120 PHP Tipps 2008 51 08.05.2008 16:00
Ein paar probleme Talinsei PHP Tipps 2008 3 17.04.2008 13:17
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
Probleme mit Rechteverteilung chmod() per script!!!??? Funky_ PHP Tipps 2006 7 17.06.2006 17:10
Probleme bei der Installation von Turck MMCache tomx992 PHP-Fortgeschrittene 2 27.09.2005 20:31
suche ein paar Leute, die mir bei einem OGame helfen der.Chris Beitragsarchiv 24 08.08.2005 21:27
Probleme mit Sonderzeichen... Datenbanken 1 02.08.2005 23:37
[Erledigt] CSV Größe macht Probleme mit php PHP Tipps 2005 5 15.03.2005 21:29
Zwei Rechner ins Netz - Router - Hub - Probleme... imported_Ben Off-Topic Diskussionen 37 13.01.2005 21:36
Probleme mit Bildergallerie Rotti PHP Tipps 2004-2 5 18.12.2004 15:28
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45
Probleme Mit Variablen-Übergabe PHP-Fortgeschrittene 2 26.10.2004 13:40
probleme mit phpbb2 PHP Tipps 2004 4 26.07.2004 10:15
paar probleme mit php bzw. apache <- help PHP Tipps 2004 3 14.06.2004 15:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
eintrag gästebuch geht nicht php

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:33 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.