Kein Zugriff auf .txt-Datei!?

Diskutiere mit über: Kein Zugriff auf .txt-Datei!? im Web-Programmierung Forum

  1. i-click

    i-click Thread Starter MacUser Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Registriert seit:
    30.12.2004
    Servus!

    Ich habe ein kleines Gästebuch-Script, das per PHP die eingegebenen Daten in zwei .txt-Dateien schreibt, bzw. aus diesen wieder ausliest.

    Mein Problem:
    Auf den Webserver hochgeladen, funktioniert die Chose. Aber im lokalen Test (auf MAMP 1.0b) werden die Eingaben nicht gespeichert. D.h., ich bekomme lediglich die Feldbezeichnungen (Name/eMail/Homepage/Text/Datum).
    Abhilfe???
    Würde die Scripte halt schon ganz gerne vollwertig lokal testen!

    greets&thx!
     
  2. mactrisha

    mactrisha MacUser Mitglied

    Beiträge:
    674
    Medien:
    2
    Zustimmungen:
    4
    Registriert seit:
    27.11.2003
    Hi i-click,

    vielleicht musst du auf deinem lokalen Server deinen zwei Textdateien mehr bzw. die richtigen Schreib- und Leserechte verleihen.

    Salü,
    mactrisha.
     
  3. Chuonrad

    Chuonrad MacUser Mitglied

    Beiträge:
    606
    Zustimmungen:
    53
    Registriert seit:
    27.08.2004
    ... manchmal habe ich das gefühl, das PHP auch nicht vollständig lokal funktioniert - zumindest bei mir nicht.
     
  4. i-click

    i-click Thread Starter MacUser Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Registriert seit:
    30.12.2004
    hmmm...

    Hey mactrisha!

    Danke für die schnelle Antwort! :)
    Habe das leider schon versucht (per CHMOD), hat aber nichts gebracht...
    Gibt es noch andere Möglichkeiten?

    greets!
     
  5. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Gibt es denn irgendwelche Fehlermeldungen in der Logdatei des Webservers (üblicherweise '/var/log/hhtpd/error_log'; ich weiss allerdings nicht, wo die bei MAMP abgelegt werden)
     
  6. i-click

    i-click Thread Starter MacUser Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Registriert seit:
    30.12.2004
    In der PHP_error_log (Applications/MAMP/logs/) ist eine "undefinied variable"-Meldung vorhanden, allerdings nur, als die Zugriffsrechte noch nicht gesetzt waren. Jetzt kommt keine Fehlermeldung mehr.
    Funktionieren tut's trotzdem nicht...
     
  7. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Wie wärs mit ein bisschen Code? ;)
    Am Besten ein kleines aber vollständiges Skript, das Dein Problem erläutert (mit Angabe des Pfades, wo Deine Datei liegt).

    Was manchmal auch ganz aufschlussreich sein kann, ist den Code im Terminal auszuführen (mit php -r '<code>'), weil man da teilweise ganz brauchbare Fehlermeldungen bekommt.
     
  8. i-click

    i-click Thread Starter MacUser Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Registriert seit:
    30.12.2004
    Auf die Aufforderung habe ich nur gewartet! ;)

    Folgende Dateien sind vorhanden:

    "gaeste.php" (Hauptdatei)
    "include.php" (inkludiert "gaeste.txt")
    "guest-index.html" (Seite mit Eingabe-Formular)
    "gaeste.txt" (Speicherdatei für die Eingabedaten)
    "gaestezahl.txt" (Speicherdatei für die Eintrags-Nr.)

    Hier der Code von "gaeste.php":

    <?
    $nummer_lesen=fopen("gaestezahl.txt", "r");
    $zahl=fgets($nummer_lesen, 10);
    $zahl=trim($zahl);
    $zahl++;
    $nummer_schreiben=fopen("gaestezahl.txt", "w");
    fwrite($nummer_schreiben, $zahl);

    $zeit=getdate();
    $tag=$zeit["mday"];
    $jahr=$zeit["year"];
    $stunden=$zeit["hours"];
    $minuten=$zeit["minutes"];
    $monat=$zeit["month"];
    $wochentag=$zeit["weekday"];
    switch ($wochentag)
    {
    case "Monday";
    $wochentag_de="Montag";
    break;
    case "Tuesday";
    $wochentag_de="Dienstag";
    break;
    case "Wednesday";
    $wochentag_de="Mittwoch";
    $break;
    case "Thursday";
    $wochentag_de="Donnerstag";
    break;
    case "Friday";
    $wochentag_de="Freitag";
    break;
    case "Saturday";
    $wochentag_de="Samstag";
    break;
    case "Sunday";
    $wochentag_de="Sonntag";
    break;
    }
    $monat_de=$monat;
    switch ($monat)
    {
    case "January";
    $monat_de="Januar";
    break;
    case "February";
    $monat_de="Februar";
    break;
    case "March";
    $monat_de="März";
    break;
    case "June";
    $monat_de="Juni";
    break;
    case "July";
    $monat_de="Juli";
    break;
    case "October";
    $monat_de="Oktober";
    break;
    case "December";
    $monat_de="Dezember";
    break;
    }
    $nummer_und_datum="Nr. $zahl vom $wochentag_de, den $tag. $monat $jahr um $stunden.$minuten Uhr.";

    $text=nl2br($text);
    $eintrag="<table width=\"78%\"><tr><td colspan=\"2\">$nummer_und_datum</td></tr><tr><td width=\"12%\">Name:</td><td width=\"88%\">$name</td></tr><tr><td width=\"12%\">Email:</td><td width=\"88%\"><a href=\"mailto:$email\">$email</td></tr><tr><td width=\"12%\">Homepage:</td><td width=\"88%\"><a href=\"$homepage\" target=\"_blank\">$homepage</td></tr><tr><td colspan=\"2\">$text</td></tr></table><br><br>\n";

    $alteEintraege=file("gaeste.txt");
    $AnzahlDerEintraege=count($alteEintraege);
    $eintraege="$eintrag$alteEintraege[0]";
    $z=1;
    for ($z; $z<$AnzahlDerEintraege; $z++)
    {
    $eintraege="$eintraege$alteEintraege[$z]";
    }
    $datei=fopen("gaeste.txt", "w");
    fwrite ($datei, $eintraege);

    mail ("xxx@yyy.de", "neuer Eintrag im Gästebuch", "$name hat sich im Gästebuch eingetragen.");
    mail ($email, "Ihr Eintrag ins Gästebuch", "Vielen Dank für Ihren Eintrag in unser Gästebuch.\nBitte besuchen Sie und bald wieder.\n\nhttp://www.zzz.de");

    require("include.php");
    ?>




    Die Dateien liegen im htdocs-Ordner (localhost) von MAMP.
    Wie gesagt, nur auf dem lokalen Rechner wird das Script nicht korrekt ausgeführt. Auf den Server hochgeladen, funktioniert alles.
     
  9. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Wenn Du denkst, dass ich mich jetzt durch fast hundert Zeilen Code schaufle, hast Du Dich getäuscht.
    Nicht umsonst:
    Was mir spontan auffällt, ist, dass Du keinerlei Fehlerkontrolle eingebaut hast.
    PHP:
    if (is_writable($filename)) {
             if (!
    $filehandle fopen($filename"w")) {
                      print 
    "Datei $filename kann nicht geöffnet werden";
                      exit;
                }
                if (!
    fwrite($filehandle$zahl)) {
                    print 
    "Schreiben in Datei $filename nicht möglich";
                    exit;
                }
                print 
    "$zahl wurde erfolgreich in  $filename  geschrieben";
                
    fclose($filehandle);
    } else {
             print 
    "Kann in Datei $filename nicht schreiben";
    }
    Beim Lesen kannst Du es ähnlich machen.
    So kannst Du evtl. herausfinden, wo genau etwas nicht klappt

    HTH
     
  10. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    Zusätzlich zu maceis Hinweis noch ein Tipp von mir:

    Die Zeile

    PHP:
    $eintraege="$eintraege$alteEintraege[$z]";
    funktioniert in manchen PHP-releases nicht immer, weil der Index $z nicht korrekt identifiziert wird innerhalb der "-Zeichen. davon ab ist das hier doch auch gar nicht nötig. Ich würds durch

    PHP:
    $eintraege=$eintraege.$alteEintraege[$z]; 
    ersetzen. Darüber hinaus gilt nat.:

    Wer Fehler finden will, der muß auch welche melden ;)
    (siehe maceis)
     
Die Seite wird geladen...
Ähnliche Themen - Kein Zugriff auf Forum Datum
1und1 kein mod_rewrite? Wie kompetent sind die Techniker? Web-Programmierung 27.12.2010
Kein Zugriffsrecht auf eigene Ordner Web-Programmierung 05.04.2008
Nach Installation von php 5.2.0 kein localhostzugriff mehr Web-Programmierung 20.01.2007
kein bild beim podcast in iTunes Web-Programmierung 02.12.2005
PHP-Aufrufe in img-Tags -> kein Bild Web-Programmierung 21.05.2005

Diese Seite empfehlen

Benutzerdefinierte Suche