Gästebuch-Fehler der .txt Datei?

Schreib mal an den Anfang des Scripts
PHP:
echo "GET: ";
print_r($_GET);
echo "<hr>POST: ";
print_r($_POST);
Was kommt da?

Oder probier mal das alte, also
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;
}
 
Hast du auch mal den ersten Vorschlag, also das mit print_r(), ausprobiert? Was ist denn da die Ausgabe von?

Kommt denn immer noch "Bitte alle Felder ausfüllen."? Weil dann glaube ich allmählich, dass es an deinem Flashcode liegt.
 
Nein bei dem Script kommt gar nichts! Es kann ja nich an Flash liegen .....es geht ja....aber nicht mit deinem Code (letze Beiträge oben)
PHP:
<?

if (!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['message']) || empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message']))
{
  echo "GET: ";
print_r($_GET);
echo "<hr>POST: ";
print_r($_POST);
}

$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', 'r');

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

    $addentry = "<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";

    $txt = $addentry."\n".$txt; #$neuer_eintrag enthält den Neuen Eintrag, der in die Dateo geschrieben werden soll.
    $file = fopen('entry.txt','w');
    fwrite($file, $txt);
    fclose($file);



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

function mailAdmin($name, $email, $message) {
    $mailTo = "jackassol@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.extraweg.de";
    mail($mailTo, $mailSubject, $mailBody, $mailFrom);
}

print "&result=okay";
exit;

?>
 
So war das doch nicht gemeint. Ich sagte an den Anfang damit.
PHP:
<?
echo "GET: "; 
print_r($_GET); 
echo "<hr>"; 

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', 'r');

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

    $addentry = "<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";

    $txt = $addentry."\n".$txt; #$neuer_eintrag enthält den Neuen Eintrag, der in die Dateo geschrieben werden soll.
    $file = fopen('entry.txt','w');
    fwrite($file, $txt);
    fclose($file);



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

function mailAdmin($name, $email, $message) {
    $mailTo = "jackassol@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.extraweg.de";
    mail($mailTo, $mailSubject, $mailBody, $mailFrom);
}

print "&result=okay";
exit;

?>
 
Was passiert, wenn du das Script einfach mal über den Browser ohne Flash aufrufst? Also mit den Parametern, die auch von Flash übergeben werden würden.
 
Wie mach is das denn? Nochmal hier den code mit dem es geht! Leider sind da aber die neuen Einträge ganz unten!

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; 
?>
 
Und du sagt, dass bei meinem Code immer die Meldung "Bitte alle Felder ausfüllen" kommt? Dann liegt es an der Überprüfung und die ist in beiden Scripten gleich.

Das Script kannst du einfach mit

www.domain.tld/pfad/zum/script.php?name=test&email=test@test.de&message=testtesttesttest
aufrufen.

EDIT:
Also bei mir funktioniert der Code wunderbar, wenn ich ihn so über den Browser aufrufe ($_GET Variante). Wenn es bei dir nicht funktioniert, kann ich dir nicht mehr helfen. Wüsste nicht, woran es noch liegen soll, außer an einer falschen Ausführung aus Flash heraus.Da sagst du aber, dass alles stimmt.
 
Zuletzt bearbeitet:
Zurück