fopen - noch ein fehler

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

  • fopen - noch ein fehler

    hi

    also ich bin jetzt sehr weit gekommen, aber es ist noch irgendwo ein fehler drin. vielleicht kann mir jemand helfen.

    also ich hab da mal ein script gemacht, dass ausließt, wieviele dateien in einem ordner sind.
    und wenn es diese nummer herausgefunden hat, addiert es 1.

    dann wird eine datei angelegt, mit dem namen "anzahl von dateien in decks/user/"+1.txt

    und in dieser soll dann später mal ein text stehen, den jemand per formular eingesendet hat. da ist aber noch ein fehler drin.

    hier mal das script das überprüft, wieviele dateien schon in dem ordner sind:

    PHP-Code:
    <?php
    $filecount
    =0;
    $dir="./decks/user/";
    $dirh=opendir($dir);
    while(
    $filename=readdir($dirh))
    {
    if(
    $filename!="." && $filename!=".." && strstr($filename,".txt")) $filecount++;
    }
    closedir($dirh);
    ?>
    das funzt schonmal wunderbar. aber jetzt das, wo warscheinlich der fehler drin ist:

    PHP-Code:
    <?php
    $filename 
    $filecount+1.".txt";
      if (!
    $handle fopen($filename'w')) {
            print 
    "Cannot open file ($file)";
            exit;
      }
    $somecontent "datei angelegt";
    if(
    is_writable($file)){
      if (!
    fwrite($handle$somecontent)) {
          print 
    "Cannot write to file ($file)";
          exit;
      }
    print 
    "Fertig, in Datei $filename wurde $somecontent geschrieben";

      
    fclose($handle);
    ?>
    ausserdem müsste der eingesendete text in eine tabelle eingefasst sein. wegen include bei meiner hp...
    das ist mit txt-dateien nicht möglich oder? da müsste ich eine php/html-datei anlegen oder?

    was stimmt hier nicht?
    bitte um hilfe,
    apu
    Zuletzt geändert von Apu_Nahasa; 13.02.2004, 01:16.
    http://www.apus-invasion.at.tf

  • #2
    Re: fopen - noch ein fehler

    Hi Apu

    Verrate uns doch mal, was passiert, wenn es nicht funktioniert ...
    irgendwelche ausgaben, fehlermeldungen oder viellecht Cannot open file...

    gruss, kill
    (-:
    Bookmarks:·Bilder·Jobs·Recht·
    kostenloser Webkataloge-Assistent

    Kommentar


    • #3
      das ist ja das komische:
      nichts

      einfach nur weisser bildschirm...

      so sieht der quelltext aus, wenn man ihn dann anschaut:

      <HTML><HEAD>
      <META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
      <BODY></BODY></HTML>
      http://www.apus-invasion.at.tf

      Kommentar


      • #4
        hmm .. vielleicht schaust du dir nochmals diese seite an und versuchst nebenbei zu lokalisieren, bis wo das script läuft
        (-:
        Bookmarks:·Bilder·Jobs·Recht·
        kostenloser Webkataloge-Assistent

        Kommentar


        • #5
          ich hab schon so oft diese seite gesehen! es hilft mir nicht weiter...
          siehst du den fehler? bitte sag ihn mir!
          http://www.apus-invasion.at.tf

          Kommentar


          • #6
            So läufts:
            PHP-Code:
            <?php

            $filecount
            =0;

            $dir="./decks/user/";

            $dirh=opendir($dir);

            while(
            $filename=readdir($dirh))

            {

            if(
            $filename!="." && $filename!=".." && strstr($filename,".txt")) $filecount++;

            }

            closedir($dirh);

            $filecount++;
            $filename $filecount.".txt";

              if (!
            $handle fopen($filename'w')) {

                    print 
            "Cannot open file ($filename)";

                    exit;

              }

            echo 
            $filename;


            $somecontent "datei angelegt";

            if(
            is_writable($filename)){

              if (!
            fwrite($handle$somecontent)) {

                  print 
            "Cannot write to file ($filename)";

                  exit;

              };}

            print 
            "Fertig, in Datei $filename wurde $somecontent geschrieben";



              
            fclose($handle);

            ?>
            Also:
            1: Du hast eine Schleife nicht geschlossen
            2: Du hast $file verwendet, was nicht definiert war($filename war wohl gemeint)
            3: Den Dateinamen kann man so nicht erstellen.

            PS: kannste auf die php.ini zugreifen? Fehlermeldungen sind nämlich durchaus praktisch. Falls nicht, lad dir mal WAMPP runter, muß nit konnfiguriert werden und is wesentlich praktischer als alles erst aufm fremd-server zu testen.
            Zuletzt geändert von darkone; 13.02.2004, 05:46.

            Kommentar


            • #7
              das mit dem $file hab ich völlig übersehen...
              aber wie ist das mit dem +1
              weil wenn 0 dateien in dem ordner sind, soll es die datei 1 erstellen.
              also muss es doch irgendwie so heissen:

              $filename = $filecount+1.".txt"
              http://www.apus-invasion.at.tf

              Kommentar


              • #8
                Das klappt so nicht.
                Du solltest erst erhöhen und dann ".txt" dranhängen.
                ++ erhöht einen zahlenwert um 1, deshalb wird in meiner Lösung nicht nur der Dateiname erzeugt, sondern erst $filecount erhöht.
                Um Sicher zu gehen, daß $filecount zur eventuellen späteteren Verwendung den richtigen Wert hat, kannstes auch schreiben:
                PHP-Code:
                $filename=$filecount+1;
                $filename.".txt"

                Kommentar


                • #9
                  Deine letzte Variante würde eher nicht gehen...
                  Entweder so:
                  PHP-Code:
                  $filename=$filecount+1;
                  $filename.=".txt"
                  ...oder warum nicht gleich so:
                  PHP-Code:
                  $filename=($filecount+1).".txt"

                  Kommentar


                  • #10
                    schonmal ein vortschritt... es kommt ne fehlermeldung

                    Cannot open file (1.txt)

                    klar kann ers nicht öffnen, weil es die datei net gibt... aber es heisst ja (bei php.net):

                    w: Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.

                    was ist hier los? muss man da was mit allow_url_fopen machen oder was?
                    das hab ich leider nicht ganz verstanden...

                    jetzt hab ich noch 2 fragen:
                    1. ich möchte, dass das, was per formular später durchgegeben wird, in eine tabelle eingefasst wird.

                    also:

                    <table>.......<td>$von_user_eingesendet</td>......</table>

                    ich habe gehört man kann das ungefähr so machen:

                    (!$handle = fopen("<table>.......<td>"$filename"</td>......</table>, 'w'))

                    geht das wirklich? oder soll ichs so machen:

                    $1 = <table>......<td>
                    $2 = </td>.......</table>

                    (!$handle = fopen($1 $filename $2, 'w'))
                    oder muss man da was in klammern setzen?

                    und dann noch 2.:
                    ich möchte, dass nur leute, die im forum registriert sind etwas einsenden können. dazu möchte ich ne passworteingabe machen.
                    soll ich das so machen?

                    <input type="password" name="pw">

                    und dann nacher im script:
                    if (HTTP_POST_VARS["pw"] == "was auch immer")
                    { und hier den ganzen code von vorher }
                    else
                    echo "sie sind nicht berechtigt"

                    oder könnte man das eleganter lösenß es ist glaub ich noch ein bisschen zu schwer für mich, ´so ein normales usersystem zu machen, wie man es sonst auch fidndet oder?

                    mfg Apu
                    http://www.apus-invasion.at.tf

                    Kommentar


                    • #11
                      hmm,

                      ich habe gehört man kann das ungefähr so machen:
                      OffTopic:
                      ich hab gehört, daß ich immer nur das selbe sage, hab gehört, daß ich tagsüber nackt in der elbe bade ... lalala

                      (!$handle = fopen("<table>.......<td>"$filename"</td>......</table>, 'w'))

                      geht das wirklich? oder soll ichs so machen:

                      $1 = <table>......<td>
                      $2 = </td>.......</table>

                      (!$handle = fopen($1 $filename $2, 'w'))
                      oder muss man da was in klammern setzen?
                      soweit ich fopen kenne, kannst du wohl keine der beiden methoden effektiv verwenden ...

                      warum nimmst du nicht ne stinknormale html-tabelle, in die du per echo deine vars einfügst. ich hab gehört, daß man html auch direkt schreiben kann, ohne es per echo ausgeben zu müssen, sofern es sich nur um html handelt ...
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        mit hat jemand, der sich sehr gut auskennt diesen tipp gegeben, aber der hat leider wenig zeit...

                        ich möchte eben so ne datei erstellen, wo am anfang IMMER dieser tabellenanfang ist, dann kommt das eingesendete von dem user un dann soll IMMER das tabellenende stehen.
                        http://www.apus-invasion.at.tf

                        Kommentar


                        • #13
                          hmm,

                          also, fopen öffnet ja afaik ne datei, die dem angegebenen pafd entspricht ... wenn du jetzt dem pfad vorn und hinten noch html-code dazufügst, ist die frage berechtigt, ob die datei dann noch gefunden werden kann, und wieso der html-code ausgegeben werden sollte ...

                          außerdem sollte das nen parse error werfen ....

                          manchmal denke ich, die leute überlesen, was ich schreibe, in meinem letzten absatz im vorherigen post hab ich doch einen weg beschrieben, wie du die ausgabe machen kannst ...

                          leider kann ich aus deinem formulierungen und code-schnipseln nur raten, was genau du machen willst
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            Die Datei die du erstellen willst, soll doch nicht den Dateinamen '<table>...</table>' haben, oder?
                            Eher soll ihr Inhalt so aussehen...
                            Daher solltest du erst die Datei mit gültigem Dateinamen erstellen und den Inhalt dann via fputs() in sie übertragen...

                            Kommentar


                            • #15
                              das <table> usw. steht ja nicht bei fopen, sondern bei fwrite!
                              http://www.apus-invasion.at.tf

                              Kommentar

                              Lädt...
                              X