Diskutiere Kein Zugriff auf .txt-Datei!? im Web-Programmierung Forum

  1. i-click

    i-click Thread Starter Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Mitglied 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 Mitglied

    Beiträge:
    716
    Medien:
    5
    Zustimmungen:
    7
    Mitglied 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 Mitglied

    Beiträge:
    387
    Zustimmungen:
    231
    Mitglied 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 Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Mitglied 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 Mitglied

    Beiträge:
    16.734
    Zustimmungen:
    603
    Mitglied 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 Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Mitglied 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 Mitglied

    Beiträge:
    16.734
    Zustimmungen:
    603
    Mitglied 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 Mitglied

    Beiträge:
    383
    Zustimmungen:
    41
    Mitglied 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 Mitglied

    Beiträge:
    16.734
    Zustimmungen:
    603
    Mitglied 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 Mitglied

    Beiträge:
    15.916
    Zustimmungen:
    2.476
    Mitglied 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 - Zugriff Datei Forum Datum
Importieren von Csv-Datei in HTML und Verwenden von Knoten js Web-Programmierung 02.11.2016
Virtueller Linux-Server unter Parallels => Zugriff vom Mac Web-Programmierung 22.01.2016
localhost Datenbank Zugriff unter Mamp Pro Web-Programmierung 12.08.2013
Websitebaker: Meldung:Sicherheitsverletzung!! Zugriff wurde verweigert! Web-Programmierung 07.03.2012
Zugriff auf MySQL (Mac OSX) von Windows aus Web-Programmierung 27.12.2011
Zugriff auf in Mutterklasse erzeugte Instanz, in PHP? Web-Programmierung 23.04.2011
Nach versuchtem Zugriff von php-Seite auf MySQL via MAMP Fehler Web-Programmierung 02.04.2011
Zugriff auf SQL zum üben Web-Programmierung 21.10.2010
Zugriff auf Script auf anderem Server Web-Programmierung 09.07.2009
ghostscript kompilieren auf Webserver ohne shell Zugriff Web-Programmierung 29.06.2009

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.