kann mir jemand sagen warum das nicht geht?

Diskutiere mit über: kann mir jemand sagen warum das nicht geht? im Web-Programmierung Forum

  1. IsNoGod

    IsNoGod Thread Starter MacUser Mitglied

    Beiträge:
    254
    Zustimmungen:
    5
    Registriert seit:
    06.01.2006
    PHP:
    <?
    $datei "counter.txt";
    if (!
    file_exists($datei)) {
        
    $dz fopen($datei,"w")
        
    fwrite($dz,"1");
        
    fclose($dz);
    }
    $dz fopen(counter.txt,"r");
    $counter fread($dz,10);
    fclose($dz);
    $counter++;
    $dz fopen($datei,"w");
    fwrite($dz$counter);
    fclose($dz);
    ?>

    <body>
    <h2>Guten Tag,</h2>
    diese Seite wurde jetzt zum <?=$counter;?>. Mal aufgerufen.
    </body>
     
    Zuletzt von einem Moderator bearbeitet: 05.06.2006
  2. SirSalomon

    SirSalomon MacUser Mitglied

    Beiträge:
    4.714
    Zustimmungen:
    98
    Registriert seit:
    26.10.2003
    Da dürfte Dein Fehler sein. Du belegst die Variable mit der Funktion fopen.

    Wenn die Datei existiert sol sie geöffnet werden. Wenn sie nicht existiert, sollte die Datei angelegt werden, aber nicht mit $dz, oder?

    fwrite($datei,"1") sollte die Lösung sein, wobei natürlich die Datei dann auch mit fclose($datei) geschlossen werden sollte ;)
     
  3. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.034
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    <?= ist m.W. veraltet als Tag, außerdem macht es schon Sinn hinzuschreiben, was mit der Variablen passieren soll:

    print "$counter";
     
  4. b.legt210

    b.legt210 MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    4
    Registriert seit:
    01.03.2006
    Probier's damit:
    PHP:
    <?php
    $datei_name 
    "./counter.txt"

    if (!
    file_exists($datei_name))

        
    $datei fopen($datei_name,"w");
        
    fwrite($datei,"0");
        
    fclose($datei);


    $datei fopen($datei_name,"r"); 
    $counter fread($datei,filesize($datei_name));
    fclose($datei);

    $counter++; 
    $datei fopen($datei_name,"w"); 
    fwrite($datei$counter);
    fclose($datei); 
    ?> 

    <body> 
        <h2>Guten Tag,</h2> 
        diese Seite wurde jetzt zum <?php echo $counter;?>. Mal aufgerufen. 
    </body> 
    Neben den bereits angemerkten short-Tags, war hier der Dateiname beim leseneden Öffnen falsch angegeben. Btw. sind aussagekräftige Namen echt Gold wert, also Dinge wie "$dz" einfach sinnlos.

    Stephan
     
  5. Galanos

    Galanos MacUser Mitglied

    Beiträge:
    624
    Zustimmungen:
    23
    Registriert seit:
    19.12.2005
    Wie waer's mit:

    PHP:
    <?php
        
    if(filexists("./counter.php")) {
            include 
    './counter.php';
            
    $counter++;
            
    $handle fopen("./counter.php","w"); 
            
    fwrite($handle"<?php \$counter = " $counter "; ?>"); 
            
    fclose($handle); 
        } else {
            
    $counter 1;
            
    $handle fopen("./counter.php","w"); 
            
    fwrite($handle"<?php \$counter = 1; ?>"); 
            
    fclose($handle);
        }
    ?>
    <body>  
        <h2>Guten Tag,</h2>  
        Diese Seite wurde jetzt zum <?php echo $counter?>. Mal aufgerufen.  
    </body>
    Der erste Besucher kommt:
    - else-Fall tritt ein, weil Datei nicht existiert
    - Counter wird auf 1 gesetzt
    - Wert 1 wird in Datei geschrieben
    - es wird korrekt ausgegeben, dass der Besucher der erste ist

    Der zweite Besucher kommt
    - if-Fall tritt ein, Datei existiert
    - Datei wird inkludiert, Variable "$counter" hat Wert 1
    - Counter wird um 1 erhoeht, hat Wert 2
    - Counter wird in Datei geschrieben
    - es wird korrekt ausgegeben, dass der Besucher der zweite ist

    usw.

    Der Vorteil ist, dass in "unendlich minus einem" Fall die Datei bereits existiert und der Parser die else-Befehle ignorieren kann, da if() TRUE zurueckgibt. Spart Rechenzeit. Hach, scripten macht Spass :D
     
  6. b.legt210

    b.legt210 MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    4
    Registriert seit:
    01.03.2006
    Hi Galano,

    erstmal nen Gruß unter Schwaben, von Reutlingen nach Stuttgart.

    zu deinem Code:
    Es ist immer wünschenswert, als Antwort auch funktionierenden Code zu finden. In deinem Fall ist das leider nicht so. Warum:
    1. die funktion filexists "exists nicht". Das Ding heißt "file_exists()".
    2. finde ich es nicht so clever mit include *.php zu arbeiten. Warum? ganz einfach. Meine Test-Datei hatte den Namen counter.php. Die includet jetzt die counter.php, welche dann die counter.php includet, welche dann die counter.php includet, welche dann..

    Ansonsten gilt natürlich: viele Wege führen nach Rom :)

    Stephan

    PS: und wenn schon schnell, dann auch klein:

    <?php
    $counter = 0;
    if(file_exists("./counter_var.php")) include './counter_var.php';
    $counter++;
    $handle = fopen("./counter_var.php","w");
    fwrite($handle, "<?php \$counter = " . $counter . "; ?>");
    fclose($handle);
    ?>
    <body>
    <h2>Guten Tag,</h2>
    Diese Seite wurde jetzt zum <?php echo $counter; ?>. Mal aufgerufen.
    </body>
     
    Zuletzt bearbeitet: 06.06.2006
  7. Galanos

    Galanos MacUser Mitglied

    Beiträge:
    624
    Zustimmungen:
    23
    Registriert seit:
    19.12.2005
    Gruss zurueck :) Wobei ich der Wolf im Schafspelz bin – ein "Neig'schmeckter"! *diabolisch lach* ;)

    Erstens war wohl ein Tippfehler, das kann – ganz ehrlich – passieren, ist bloss aergerlich. Auf meinem Geschaeftsrechner hier darf ich kein PHP installieren, also habe ich auch keine Moeglichkeiten, das Script kurz auszuprobieren …
    Und zweitens wird die Datei, in der der Counter-Code steckt, wahrscheinlich eher "index.php" heissen. Nicht zwingend "counter.php", aber das bleibt jedem selbst ueberlassen.
    Deine Code-Kur ist gelungen, mir ging es jedoch mehr darum, eine Alternative zum bisher Durchgekauten zu bieten, moeglichst klar und verstaendlich strukturiert. Da war es meiner Meinung nach hilfreich, if/else vollstaendig auszufuehren. Und – zugegeben – ich habe noch nicht so viel Uebung mit dem Abwerfen von Script-Ballast und nur begrenzt Zeit in der Mittagspause ;)

    Aber vielen Dank fuer die konstruktive Kritik. Gruss, Galanos
     
Die Seite wird geladen...
Ähnliche Themen - kann jemand sagen Forum Datum
10.8.2 - Eclipse.app ist beschädigt und kann nicht geöffnet Web-Programmierung 11.04.2013
[PHP] Massen-Email verschicken: Was kann man falsch machen? Web-Programmierung 01.11.2011
jquery, fancybox - kann man externes html reinladen? Web-Programmierung 19.01.2011
Tiger - Kann bei Forumerstellung etwas nicht anklicken =( Web-Programmierung 16.09.2010
Kann jemand ein gutes preiswertes Statistiktool für eine Website empfehlen? Web-Programmierung 16.08.2006

Diese Seite empfehlen

Benutzerdefinierte Suche