Fragen zu meinem PHP Gästebuch...

Marvin

Erfahrenes Mitglied
... zu sehen auf http://www.demon1.org.

Habe es mal hier hochgeladen, damit ihr Experten mal n genauen Blick drauf werfen könnt.
Nun zu den Fragen.
1. Kann ich es arrangieren, dass neue Beiträge oben anstatt unten angezeigt werden, und ich trotzdem nur auf der Basis der Textdatei bleibe, also keine SQL Datenbank einrichte?
2. Ist es möglich, und wenn ja -> wie?, dass bei usern die keine Email/Homepage angegeben haben statt einem leeren Link zu zb "mailto:" einfach keinen Link anzugeben? oder aber den dann falsch verlinkten Text "Email" und "Homepage" durch einen nicht verlinkten Text "No Email" und "No Homepage" zu ersetzen?

Habe an dem Script schon ein wenig gearbeitet, in der Urform war es wirklich zu garnichts zu gebrauchen. Aber leider kann ich php noch nicht so gut um die oben genannten Probleme zu lösen...

Ich wäre froh über einige Erklärungen, noch froher wenn es mir jemand einbauen könnte und am frohesten wenn er mir die schritte noch erklären könnte :)
 
Also das zweite würde ich so in der Art machen:

PHP:
// $email=Feld "email-Adresse"
// $homepage=Feld "Homepage URL"

// Variablen werden beide durch das Formular hierher übergeben:

if ($email != '')
{
$anzeige1='<a href=mailto:$email><img src=[email vorhanden]></a>';
}
else 
{
$anzeige1='<img src=[keine email]></a>';
}


if ($homepage != '')
{
$anzeige2='<a href='$homepage'><img src=[HP vorhanden]></a>';
}
else 
{
$anzeige2='<img src=[keine HP]></a>';
}

// Je nachdem, was vorhanden ist, 
//werden hier die entsprechden Bildchen angezeigt
print "$anzeige1 $anzeige2";


Gruß
Feldhofe
 
aslo

erstma.....ich hab mir deinen quelltext mal angesehen und naja der is nicht nur unübersichtlich sondern auch...naja ich find ihn net so doll...aber den hast du ja net geschrieben...oder???
ich werd mal versuchen die fragen allgemein zu beantworten und net auf den quelltext selbst einzugehen....:

also zu 1:

wenn du das anders anordnen willst, gibt es mehrere möglichkeiten.....

a) du kannst die textdatei komplett auslesen und dann den neuen eintrag an den anfang schreiben und dann den rest wieder rein schreiben....das is aber net so gut, waeil es ziemlich lang dauern kann, wenn dein server net schnell is und du schon viele einträge hast.....

b) zu anzeigen liest du ja alles aus und gibst dann ein bestimmtes intervall aus........wenn du einfach die for-schleife, die du bestimmt verwendest....net am anfang sondern am ende des intervals startes und denn den zähler net rauf, sondern runterzählst, dann müsste das ja gehen.......

zu 2.:

jo klar...also du hast z.B. den quelltext:

echo '<a href="mailto:'.$row['e-mail'].'">'.$row['name'].'</a>';
//$row['e-mail'] ist die e-mail des autors der aktuellen message
//$row['name'] isr der name....

dann kannst du einfach ne if-abfrage davor setzen:

if($row['e-mail']!=""){
echo '<a href="mailto:'.$row['e-mail'].'">'.$row['name'].'</a>';
}

jetzt wird das mailto nur ausgegeben, wenn der dödel seine e-mail auch eingetragen hat.....sonst net

das geht natürlich bei alles anderen einträgen auch so.....

wenn du willst, dass jemand am quelltext was ändert, solltest du ihn lieber bitten ihn ganz neu zu schreiben //sorry meine meinung// weil darin rumzufummlnis echt bullshit.....

//so far

bad taste
 
Re: aslo

Hihi...da haben sich gleich zwei zur genau derselben Uhrzeit um dein Problem bemüht! :)

Naja, von txt habe ich nicht so viel Ahnung, also hast du von mir nur Problem 2. ;-)
Deinen Quelltext habe ich gar nicht gelesen, aber womit hast du den denn dann ggfls. erstellt??

Feldhofe
 
das script hab ich von nem freund, der hatte es runtergeladen irgendwo und dann verändert. ich habs dann nochn bisl verändert... ok der code is wirklich nich schön da geb ich euch recht :)

problem 2. ist inzwischen gelöst, außerdem hab ich das gb ein wenig verschönert. -> http://www.demon1.org <-

am ersten problem sitze ich jedoch noch dran, in nem anderen forum hat man mir gesagt, ich sollte den einträgen einfach ne id geben und dann mit array einlesen und sortieren. meine frage dazu: wie bringe ich das script dazu, jedem neuen eintrag automatisch eine neue id zu geben? wenn ich z.b. 8 einträge habe die id's von 0-7 haben, dass der 9. eintrag dann automatisch die id 8 bekommt?

wenn ich das hinbekommen habe ist der rest kein problem mehr. dann habe ich ein funktionierendes gästebuch das zwar sehr unsauber im code ist aber das sieht ja keiner.
 
also

also eine einfache lösung ist es eine textdatei anzuolegen, in die du die aktuelle anzahl der messages schreibst......die liest du dann nach bedarf aus und wenn du einen neuen hinzufügst, musst du lesen, um eins erhöhen und dann wieder rein schreiben....

siehe tutorial zu countern mit php......is genaus das problem.....nur ein bisschen abändern:)

ich hoffe es hilft......
 
Re: also

Original geschrieben von bad taste
also eine einfache lösung ist es eine textdatei anzuolegen, in die du die aktuelle anzahl der messages schreibst......die liest du dann nach bedarf aus und wenn du einen neuen hinzufügst, musst du lesen, um eins erhöhen und dann wieder rein schreiben....

siehe tutorial zu countern mit php......is genaus das problem.....nur ein bisschen abändern:)

ich hoffe es hilft......
dann weiß ich wieviele messages ich habe. aber kann sie nicht neu ordnen... :(
 
-

PHP:
$alteEintraege=file("gaeste.txt"); //Alle Einträge werden in ein Array eingelesen
$AnzahlDerEintraege=count($alteEintraege); //zählen aller Zeilen im Array
$eintraege="$eintrag$alteEintraege[0]"; //neuster Eintrag wird an Anfang gesetzt und die erste Zeile drangehängt
for ($z=1; $z<$AnzahlDerEintraege; $z++) //die Schleife läuft solange, wie Zeilen im Array sind. 
 {
  $eintraege="$eintraege$alteEintraege[$z]"; //die restlichen Einträge werden drangehängt
 }
$datei=fopen("gaeste.txt", "w");
fwrite ($datei, $eintraege); //Daten werden, sortiert, in die Datei geschrieben.
Auf der aktuellen Seite im PHP-Board hier, gibt es mindestens 4 Threads, die das gleiche Thema beinhalten. Außerdem gibt es noch ein ganzes Tutorial zu diesem Thema. Innerhalb von 3 Minuten hättet ihr eine Antwort gehabt.
 
und deswegen hoffe ich dass sich noch jemand mir erbarmt und doch mal selbst einen blick drauf wirft. WENN das so einfach is wie der herr timeflash sagt, dürfte das ja nicht so schwer sein!



(*nachobenschieb**sorry*)
 

Neue Beiträge

Zurück