Gästebuch-Fehler der .txt Datei?

jackassol

Erfahrenes Mitglied
Habe ein Gästebuch das über PHP und Flash läuft
Es kommt aber immer eine Fehlermeldung wenn ich die Seite hochlade!

PHP:
Could not open entry.txt file. Change CHMOD levels to 766.

Es liegt bestimmt an den Zugriffsrechten der Text-Datei,oder?
Wie kann ich das ändern das es funktioniert?

Hier der PHP Code:
PHP:
 <?

if (!isset($name) || !isset($email) || !isset($message) || empty($name) || empty($email) || empty($message)) {
print "&result=Fail";
print "&errorMsg=" . urlencode("Bitte alle Felder ausfüllen.");
exit;
}

$email = strtolower($email);

addentry($name, $email, $message);

function addentry($name, $email, $message) {

$posted = strftime("%D %I:%M %p");

$message = stripslashes($message);

$file = fopen('entry.txt', 'a+');

if (!$file) {
print "&result=Fail";
print "&errorMsg=" . urlencode("Could not open entry.txt file. Change CHMOD levels to 766.");
exit;
}

fputs($file, "<font color=\"#6F6453\">Name:</font> $name\n<font color=\"#6F6453\">Email:</font> <font color=\"#6F6453\"><u><A href=\"mailto:$email\">$email</A></u></font><br>\n<font color=\"#6F6453\">Posted:</font> $posted\n<font color=\"#6F6453\">Message:</font> $message\n\n");
fclose($file);

// Send admin an email when new entry occurs
mailAdmin($name, $email, $message);
}

function mailAdmin($name, $email, $message) {
    $mailTo = "123@web.de";
    $mailFrom = "From: <Extraweg>";
    $mailSubject = "Neuer Gästebuch Eintrag";
    $mailBody = "A visitor to your site has left the following information in your guestbook:\n
    Name: $name
    Email: $email
    The visitor commented:
    ------------------------------
    $message 
    ------------------------------
    You can view the message at:
    http://www.123.de";
    mail($mailTo, $mailSubject, $mailBody, $mailFrom);
}

print "&result=okay";
exit;
?>
 
Zuletzt bearbeitet:
so weit so gut! DAnke!

Jetzt will ich aber nur noch das die letzten Einträge/Beiträge ganz oben erscheinen!(bei mir sind sie immer ganz unten!)

Was muss ich den da den ändern?
 
Das musst du bei der Ausgabe regeln.
Schau dir dazu mal die Funktionen ksort und/oder krsort an.
Um diese zu verwenden, solltest du die Daten entweder, wenn du mit fopen arbeitest, in ein Array einlesen (nummerische Keys), oder gleich file verwenden. Dann per Schleife ausgeben.
Oder du listest die Einträge per for-Schleife einfach von hinten nach vorne auf.

PHP:
for($i=(count($beiträgeArray)-1);$i>=0;$i--)
{
   #Ausgeben.
}

Mehr hilfe kann man dir nur geben, wenn man den Code hat.
 
Zuletzt bearbeitet:
Oder du benutzt [phpf]array_reverse[/phpf] (vorrausgesetzt die Einträge sind in einem Array) und gibst sie dann aus.

greetz
daddz
 
Danke erst mal.....aber ich hab mit PHP fast nichts am Hut!! :(

Kann mal jemand den das PHP script(oben) ändern und gleich so machen das es funkt?

Wäre cool von euch!
 
1. Selber mal ausprobieren. hast ja jetzt ein paat Ansätzte bekommen. Wenns dann hapert, wird gerne geholfen.
2. Das Script dort oben zeigt nur den Code zum Eintragen der Beiträge in die Datei. In welcher Reihenfolge das in der Datei steht kann man zwar auch ändern, aber warum so kompliziert? Ändere einfach die Ausgabereihenfolge im Script, in dem du die Beiträge ausliest und anzeigst.
 
Wo soll ich das den da sonst einfügen?


In die Flash-Datei bestimmt net!
Ich hab null Ahnung, was ich jetzt machen soll!
kann ja nur das Script(oben) sein da sonst nichts anderes existiert außer des Flash Scriptes!
Achso ja in der Text-Datei steht noch das hier:
PHP:
&result=okay&entries=
Muss ich da was ändern? weiß nich mehr weiter
 
Zuletzt bearbeitet:
jackassol hat gesagt.:
Wo soll ich das den da sonst einfügen?


In die Flash-Datei bestimmt net!
Und warum nicht? Wenn du dir Einträge via Flash ausgibst, also aus der Textdatei holst, kannst du doch einfach bei der Ausgabe hingehen, und die Daten aus der Datei in umgekehrter Reihenfolge ausgeben.
Ansonste musst du halt mit PHP die Datei auslesen, den neuen Eintrag vor die alten setzen und alles wieder in die Datei schreiben. Finde ich aber umständlicher.
 
Zuletzt bearbeitet:
Zurück