Ankündigung

Einklappen
Keine Ankündigung bisher.

Datei mit &a mp;q uot; w&am p;am

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datei mit &a mp;q uot; w&am p;am

    Tag auch

    Ich habe folgenden Code:
    PHP-Code:
    <?php
    ### Homepage speichern! ###
      
    $homepage_text stripslashes($homepage_text);
      
    $datei fopen("$user_name.txt","w");
      
    fwrite($datei$homepage_text);
      
    fclose($datei);

    ?>
    Der Code ist für eine Community, bei der ein Benutzer seine Website in einer Textdatei speichert (simples Mini-Homepage-System).

    chmod des Verzeichnisses: 777


    Alles klar soweit. Nun schreibt man eine Datei ins Forumluar und die Seite wird aufgerufen, aaaaber:
    - Das Script erstellt eine Datei mit den Rechten 644
    - Die Datei ist nur 0 Byte groß (= ohne Inhalt)

    Lustig: Es funktionierte ja ne Weile, dann gab das Script den Geist auf


    /edit: Und ja, es soll bei jedem Aufruf die Datei überschreiben. Das Problem ist, wenn die Datei nicht existiert, kann leider nicht testen, wies ist, wenn die Datei existiert...

  • #2
    biste dir sicher das in $homepage_text auch was drinnsteht denn bei mir funzt der code problemlos
    Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

    Kommentar


    • #3
      Ja, da steht 100%ig was drinnen:

      homepage_build.php
      PHP-Code:
      <?php
        
      <form name="form1" method="post" action="homepage_build_save.php">
          <
      div align="center"
            


              <
      textarea name="homepage_text" cols="75" rows="15" id="homepage_text"><? 
               
      $dateiname "$user_name.txt";
              if(
      file_exists("$dateiname")) {
              
      $datei fopen($dateiname"r");
                  
      fpassthru($datei); 
              }else{    
                  echo 
      "Herzlich willkommen auf meiner NEUEN Haus-Seite...";
              }
           
      ?></textarea>
              

              <input type="reset" name="Submit2" value="Aktuelle Haus-Seite laden" style="font-family:Verdana,Arial;font-size:12px">
              
              <input type="submit" name="Submit" value="Haus-Seite speichern" style="font-family:Verdana,Arial;font-size:12px;font-weight:bold">
            </p>
            

      </p>
            
          </div>
        </form>

      ?>
      homepage_build_save.php
      PHP-Code:
      <?php
      ### Homepage speichern! ###
      $homepage_text stripslashes($homepage_text);
      $datei fopen("$user_name.txt","w");
      fwrite($datei$homepage_text);
      fclose($datei); 
      ?>

      Kommentar


      • #4
        ich würd sagen da steht nichts drinn weil der Text in $_POST['homepage_text'] steht

        Ich würd sagen dir fehlen da ein paar Grundlagen
        Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

        Kommentar


        • #5
          Bisher hat es immer ohne $_POST geklappt, daher würde ich sagen, mir fehlen gar nicht mal so viele Grundlagen :wink:

          Das merkwürdige ist eben, dass es vorher geklappt hat, und nu nicht mehr. Naja, mal sehen was draus wird.

          Kommentar


          • #6
            Hast du dir den Inhalt der Variablen, den du in die Datei schreiben möchtest, mal mit var_dump() anzeigen lassen? Ist error_reporting auf E_ALL gesetzt?

            Kommentar


            • #7
              und display_errors auf true ?

              Kommentar


              • #8
                Zitat von keksausmainz
                Das merkwürdige ist eben, dass es vorher geklappt hat, und nu nicht mehr. Naja, mal sehen was draus wird.
                Mit register_gloabls = on vielleicht aber selbst dann kann ich mir das kaum vorstellen da du da auf eine Formularvariable zurückgreifen willst und das geht entweder nur HTTP_SERVER_VARS (nur mit register_globals = on) oder $_POST u. $_GET - je nach verwendeter Methode
                Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                Kommentar


                • #9
                  Das Problem ist, wenn die Datei nicht existiert, kann leider nicht testen, wies ist, wenn die Datei existiert...
                  Man kann aber abfragen, ob eine Datei vorhanden ist oder nicht.
                  Weiterhin dachte ich auch als fortgeschrittener User beachtet man register_gloabls ?

                  mir fehlen gar nicht mal so viele Grundlagen
                  Vermutlich doch, wenn ich oben den Quellcode so sehe

                  Kommentar


                  • #10
                    ups kleine Bildungslücke von mir mit register_globals = on funktioniert das Beispiel
                    http://de2.php.net/register_globals
                    Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                    Kommentar


                    • #11
                      Vermutlich doch, wenn ich oben den Quellcode so sehe
                      Naja ich meine, ich habs immerhin geschafft ein komplettes Browsergame zu coden
                      *finger runternehm / angebmodus aus*

                      Naja so lange meine Kenntnisse für dynamische Webseitengestaltung ausreichen ist mir das auch genug

                      Okay, muss ja zugeben, dass ich es eher "learning by doing" gelernt habe (und daher $_POST für mich bis dato nie eine so große Rolle gespielt hat - was geht, das geht ^^)...

                      -------------


                      Okay, also mit $_POST geht's irgendwie auch nicht (ja, Formular verwendet POST). Ich muss das noch mal genauer anschauen, aber heute is Weihnachten und von daher....

                      Ich hab da den Verdacht, dass der Server da was falsch macht, der Code ging ja vorher, und auf dem neuen Server geht's nicht mehr.
                      Laut phpinfo() ist aber alles weitgehend gleich (ehm, also eben das wichtige), darunter auch register_globals = on





                      Naja auf jeden Fall danke für alles Ihr Lieben - hier bekommt man wirklich antworten (ist in manchen Foren gar nicht so selbstverständlich...)

                      Frohes Fest!

                      Kommentar


                      • #12
                        Zitat von keksausmainz
                        Naja ich meine, ich habs immerhin geschafft ein komplettes Browsergame zu coden
                        *finger runternehm / angebmodus aus*
                        Peinlich.
                        Wenn du nichtmal debuggen kannst, dann geh doch ins Anfänger-Forum
                        Ich hab auch mal ein Jobverwaltungssystem für meine Agentur geschrieben. Und bin ich jetzt ein Profi? Nö.
                        Aber immerhin kann ich debuggen...

                        Nix für ungut, aber diese gnadenlose Selbstüberschätzung deprimiert Frohes Fest trotzdem

                        Kommentar


                        • #13
                          Was sind wir heute aber nett

                          Erstens hab ich nie gesagt, dass ich Profi bin.
                          Zweitens kann ich sehr wohl debuggen, da aber auch bei niedrigstem Error Level keinerlei Fehler angezeigt werden, und das Script vom einen auf den anderen Tag nicht mehr geht, musst du wohl zugeben, dass das schon seltsam ist oder?

                          Und da ich eben kein Profi bin, sondern ein Schüler, der freizeitmäßig Webseiten gestaltet, darf ich mir ja wohl Hilfe von Leuten, die es wissen, holen...

                          ..wie z.b. von dir


                          (des weiteren war der obere Beitrag nicht zum angeben gemeint, sondern eher eine richtigstellung der "unterstellung". )

                          Kommentar


                          • #14
                            Eben, du bist Schüler und machst das freizeitmäßig.

                            Du kennst also den Horizont von PHP garnicht. Und in Dateien reinschreiben ist nun wirklich kein Fortgeschrittenen-Problem, auch wenn dir keine Lösung einfällt ^^

                            Ist ja auch egal, diskutieren wir das Problem halt durch, aber ich lese eigentlich primär nurnoch die Fortgeschrittenen Probleme, weil die Anfänger-Probleme eigentlich meistens eh durch Manual- oder Tutorial-Verweise gelöst werden können und darauf habe ich keine Lust.
                            Im Fortg.-Forum jetzt auch schon Anfänger-Probleme zu lesen ist halt nervig.

                            Dein Quellcode spricht auch schon nicht für dich.
                            fopen gehört eigentlich in eine if-Bedingung. Denn es kann schließlich (wie bei dir) auch schiefgehen die Datei zu öffnen. Denn die Datei ist leer. Soviele verschiedene Gründe kann es ja wohl kaum haben.
                            Entweder die Datei kann nicht geöffnet werden oder der zugewiesen Wert ist leer.
                            Was sind die Rückgabewerte von fopen und fwrite. Was genau steht in der Variable, die du an fwrite übergibst? Und poste keine Vermutungen, sondern Fakten (var_dump).

                            Kommentar


                            • #15
                              Nuja, also ich glaub dir gerne, dass meine Frage einfach langweilig für Cracks wie dich ist Kann ja jemand verschieben...

                              Und ja, ich brauch php nur für dynamische Webseitengestaltung, sprich SQL auslesen, INSERTen usw. Das reicht mir ja schon

                              (aber das hier ist ja ausnahmsweise nicht mit einem Verweis auf Tutorials zu lösen, oder? *g*)

                              Die Datei prüfe ich vorher per file_exists, sonst machts keinen Sinn, sie zu öffnen. Ich kann also davon ausgehen, dass die Datei existiert.

                              Also beim Schreiben klappt alles, ich bekomme keine Fehlermeldungen, auch im Error-Log steht nüx, einfach nur 0 byte.
                              Kann es sein, dass es wohl eher am Dateisystem - sprich Server - liegt, als an dem Script?

                              Kommentar

                              Lädt...
                              X