PHP-AutoIt Problem

  • Ich habe ein Problem mit PHP :

    PHP
    <?php
    $statefile=fopen("reg.txt","r");
    $state=fread($statefile,filesize("reg.txt"));
    echo $state;
    ?>


    Diese Datei dient zum Auslesen.


    Eintragen in die Datei :

    PHP
    <?php 
    $who=$_GET['register'];
    if (!file_exists("reg.txt")) {
    	$statefile=fopen("reg.txt","w");
    	fwrite($statefile,$who);
    	fclose($statefile);
    }
    ?>


    Ich habe das ganze nochmal ausprobiert und gemerkt dass das Eintragen nicht funktioniert.

    Aufruf in AutoIt :

    Spoiler anzeigen
    [autoit]

    InetGet("www.meinserver.de/register.php?register=" & GUICtrlRead($hEdit1)); Eintragen
    _INetGetSource("meinserver.de/read.php") ; Auslesen

    [/autoit]


    Hoffe mir kann jemand helfen :) Auch wenn es eher mit PHP zu tun hat :)

    5 Mal editiert, zuletzt von nof@ker2 (6. Juni 2009 um 20:29)

  • Ich denke du musst das ändern in filesize("reg.txt") und fopen("reg.txt","r").

    Lg Jautois

  • kann es sein das es vielleicht am eintragen liegt ? Oder beim Aufruf in AutoIt habs oben mal editiert.

  • Was wird denn im GET-Request für die register-Variable übergeben? Evtl. musst du es url-encoded übergeben?

    Ansonsten, wie schon erwähnt, bitte im Browser testen wenn es nicht klappt

  • funktioniert im Browser auch nicht .. :( Kein Error oder sonstiges , aber eintragen funktioniert einfach nicht.

  • error_reporting(E_ALL) direkt nach dem öffnenden PHP-Tag einfügen, also

    PHP
    <?php
    error_reporting(E_ALL);
    ....
    ?>

    ansonsten, hat die Datei, der Ordner die Rechte 777 (zum testen vorerst in Ordnung) bzw. bist du der Besitzer des Ordners oder muss ein Webuser diesen anlegen um darin Dateien anlegen zu können?

    Grüße

  • Klappt den fopen? Wenn nicht dann wird false zurückgeliefert.
    Wie sieht es mit den Schreibrechten aus?
    Existiert die Datei schon, da ja
    !file_exists("reg.txt")
    ein Schreiben verhindern würde?

  • @ Stilgar : Ja die Datei existiert mit einem Testeintrag.
    @ jensster : Habs ausprobiert und jetzt wird ein Error gemeldet :

    Zitat

    Parse error: syntax error, unexpected T_VARIABLE in /data/apache/users/kilu.de/meinserver/www/register.php on line 3

    Linie 3 :

    PHP
    $who=$_GET['register'];
  • Versuch es mal mit: $who= $HTTP_GET_VARS['register']; anstatt $who=$_GET['register'];

  • @Jautois : Immer noch selber Error ich verzweifle :( Ich kenne mich mit PHP nicht gut aus aber für mein neustes Programm brauche ich es einfach ..

  • Versuch es mal mit: $who= $HTTP_GET_VARS['register']; anstatt $who=$_GET['register'];

    doofe idee.

    bitte mal den kompletten Quelltext der register.php hier einfügen. Die Zeile zeigt so keinen Fehler, zumindest wäre ich dann sehr blind *g*

  • Ich habe erst heute mit PHP angefangen.
    Hier der ganze Quelltext :

    PHP
    <?php 
    error_reporting(E_ALL)
    $who=$HTTP_GET_VARS['register'];
    if (!file_exists("reg.txt")) {
    	$statefile=fopen("reg.txt","w");
    	fwrite($statefile,$who);
    	fclose($statefile);
    }
    ?>
  • hinter error_reporting(E_ALL) gehört natürlich ein Semikolon - daher auch die Fehlermeldung. Die bezieht sich daher nicht auf dein eigentliches Problem.

    Zudem solltest du bei file_exists bitte mal den kompletten Pfad zu der Datei angeben, also entweder:

    htttp://deineURL.de/pfad/zur/datei.php oder den relativen pfad: /var/html/webXXX/... (dieser variiert von Webhoster zu Webhoster).

    also dann so:

    PHP
    <?php 
    error_reporting(E_ALL)
    $who=$HTTP_GET_VARS['register'];
    if (!file_exists("reg.txt")) {
        $statefile=fopen("http://deineURL.de/pfad/zur/datei/reg.txt","w");
        fwrite($statefile,$who);
        fclose($statefile);
    }
    ?>
  • OH ! :( Sorry da hätte ich als PHP Anfänger sogar draufkommen müssen.
    Aber es geht immernoch nicht :cursing: Kein Error , aber auch kein Eintrag

    Edit : jennster du bist ein Held :) :thumbup: Danke auch an alle anderen.
    Ich musste den kompletten Pfad zur Datei angeben !

    [Gelöst ! :)]

  • Für Schreibfaule wie mich - mit:
    $_SERVER["DOCUMENT_ROOT"]
    kannst du dir:
    http://...de/
    sparen, oder du wechselst gleich das Arbeitsverzeichnis, dürfte wegen den paar aber Zeilen uninteressant sein.

  • Verwende für Eintragen und Auslesen _INetGetSource().

    Zitat

    doofe idee...

    Warum? Wurde in meinen Tutorial, wie man Variablen an ein Php-Script sendet, so ausdiskutiert.