Text ändert sich bei jedem Besuch

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

  • Text ändert sich bei jedem Besuch

    Ich habe mir überlegt einen Text auf meine Seite einzubauen, welcher sich bei jedem Besucher ändert, also einmal zeigt er "a" dann "b" dann "c" usw.

    Das habe ich jetzt erst einmal über JavaScript gelöst, was mir aber nicht so richtig gefällt, denn so werden immer alle Texte mitgeladen, obwohl nur einer benötigt wird!

    Ich habe gehört mit PhP ist es möglich eine Datei anzulegen in der die gesamten Texte stehen und wenn ein User meine seite betritt muß nicht diese gesamt Datei geladen werden, sondern nur ein Text aus der Datei!

    Kann mir jemand sagen, wie ich das mache?

    Und zudem noch wie ich dies dann ins html einbinde! Vielleicht kann mir jemand noch sagen wie ich dies dann für die folgenden Varianten mache:
    1. Text soll sich täglich, oder stündlich ändern
    2. Text soll sich ändern sobald neuer Besucher kommt
    3. Text soll sich ändern wenn Besucher wieder kommt

    Oder geht das vielleicht auch mit CGI?

    Ich bin für jeden Hinweis dankbar
    MfG
    Andre

    Ps: Vielleicht gibt es dies ja schon als Vorlage, dann wäre ich über den Link sehr dankbar!

  • #2
    Hi,

    als erstes muß natürlich auch PHP auf deinem Server laufen. Du kannst diese Sache hier auch mit CGI und Perl machen, klappt genauso.

    Ansonsten ist eine Alternative schon schwieriger, nämlich beim erneuten Besuch eines users einen anderen Text anzeigen -> dafür mußt du entweder in einer DB oder File die User mittracken oder zumindest ein Cookie schreiben (nicht gewährleistet, daß Cookies akzeptiert werden oder User den Cookie nicht von Festplatte löscht).

    Andere Varianten sind okay, einfachste ist, wenn du bei jedem neuen Besuch was anderes zeigst -> einfach über Zufall ein Text auswählen.
    Code:
    <?
    $fp=fopen("pfad/zu/meiner/datei.txt","r");
    while (!feof($fp)){
    $texte=fgets($fp, 4096);
    }
    
    // falls du kein PHP4 zur Verfügung hast
    srand((double)microtime()*1000000);
    $zufall=rand(0,count($texte));
    $ausgabe=$texte[$zufall];
    
    // falls du PHP4 hast
    $ausgabe=array_rand($texte);
    
    echo $ausgabe;   // hier erfolgt die Ausgabe in den HTML-File
    ?>
    Variante für zeitgesteuerte Ausgabe (da müßte man sich noch überlegen, wie die Zuweisung erfolgen soll. Im Beispiel wird stündlich ein anderer Text benutzt, d.h. du brauchst 24 Texte):
    Code:
    <?
    $fp=fopen("pfad/zu/meiner/datei.txt","r");
    while (!feof($fp)){
    $texte=fgets($fp, 4096);
    }
    
    // hier die Entscheidung für die jeweilige Stunde
    $stunde=date(H);
    $ausgabe=$texte[$stunde];
    
    // oder hier Alternative für jeden Tag
    $tag=date(d);
    $ausgabe=$texte[$tag];
    
    echo $ausgabe;   // hier erfolgt die Ausgabe in den HTML-File
    ?>
    du mußt dann natürlich nur eine Variante (Stunde oder Tag) im Skript benutzen. Allgemein nimmst du das Skript (fängt mit <? an und hört bei ?> auf) und fügst das in dein HTML-File genau an die Stelle ein, wo der Text hinkommt. Dann speicherst du die Datei mit einer php, php3, php4 oder phtml-Endung ab (je nachdem, was der Server will oder erlaubt) und dann wird die Seite zuerst geparst und als Ergebnis eine HTML-Seite geliefert.
    Alles soweit klar??

    Kommentar


    • #3
      Danke!

      Ich habe schon in sehr vielen Foren gepostet, aber bisher habe ich immer nur wirres und für mich schwer zu verstehendes Zeug wieder bekommen!

      Du hast es perfekt erklärt, dafür schon einmal danke, da ich noch nie mit PHP gearbeitet habe wäre es auch noch sehr hilfreich, wenn du mir sagen könntest wie ich dies in einem vorhanden Dokument aufrufen kann!

      Ich weiß das steht bestimmt irgendwo und ich werde auch suche, aber vielleicht bist du ja schnelle! Danke

      MfG
      Andre

      Kommentar


      • #4
        du mußt einfach in deinen bestehenden HTML-Code den Skript-Teil einfügen, was dann ungefähr so aussieht:
        Code:
        <html>
        <head>
        <title>meine Seite</title>
        </head>
        <body>
        blablablabal lb albalbabablablabla<br><br>
        HTML-Blabla<br>
        und jetzt kommt ein bestimmter Text - Achtung!<br>
        <?
        $fp=fopen("pfad/zu/meiner/datei.txt","r");
        while (!feof($fp)){
        $texte=fgets($fp, 4096);
        }
        
        $ausgabe=array_rand($texte);
        
        echo $ausgabe;   // hier erfolgt die Ausgabe in den HTML-File
        ?>
        <br>so, das wars, du kannst natürlich alles in Tabellen und so, eben HTMLmäßig unterbringen.
        </body>
        </html>
        und das ganze speicherst du dann als File mit einer .php3 oder .php4 oder .phtml oder .php-Endung ab. Kommt ganz darauf an, was dein Server mag und was nicht.
        Beim Aufruf von meine_seite.php3 wird dann alles erst durch den PHP-Parser gejagt, d.h. der PHP-Code wird interpretiert und ausgeführt -> als Ergebnis gibt PHP dann eine HTML-Seite an den Browser weiter. Und durch das echo $ausgabe hast du in den HTML-Code ein neues Stück HTML-Code reingeschrieben, eben deinen Text.
        Soweit alles klar?

        Kommentar


        • #5
          Ja, danke!

          Das es so einfach geht hatte ich nicht gedacht!

          Danke, Danke, Danke!

          MfG
          Andre

          Kommentar


          • #6
            Irgendwie ist doch nicht alles klar, habe den Code übernommen und eingefügt, aber so richtig funzt es nicht, kannst du mir vielleicht sagen was ich falsch mache?

            http://internet.exit.mytoday.de/blue...rmduscher.php3

            MfG
            Andre

            Kommentar


            • #7
              sieht so aus, als ob dein File nicht geparst wird. Vielleicht brauchst du eine andere Endung: .php oder .phtml

              hast du bei Strato PHP zur Verfügung?

              außerdem dürfen zwischen dem <? und dem ?>, also Anfang und ende des PHP-Codes keine HTML-Fragmente (<br> etc.) einfach so auftauchen (im Quelltext deiner Seite ist das so) -> würde zu Parse-Fehler führen.

              Kommentar


              • #8
                Ich glaube ich habe es endlich geschafft, nur noch ein Problem er zeigt immer nur einen Buchstaben aus meiner *.txt DAtei an, was muss ich noch ändern?

                Hier das Beispiel:
                http://www.bluecyber.f2s.com/warmduscherr.php3

                Hier die Textdatei:
                http://www.bluecyber.f2s.com/php/warmduscher.txt

                MfG&Danke
                Andre

                Kommentar


                • #9
                  Moin,

                  wie sieht denn deine Ausgabe (echo) aus. Bzw. das Auslesen in das Array. Irgendwie scheint bei dir jeder Buchstabe ein einzelner Array-Eintrag zu sein. Am besten du postet mal den code hier und dann schau wir mal....

                  Kommentar


                  • #10
                    fehlersuche:

                    damit man da was sagen kann musst du schon den quellcode posten...der browser gibt halt nur html aus....

                    aber weil bei mir nur das e von sechs aus deiner txt datei angezeigt wird dein index irgendwo im script nicht eine zeile der datei sonder den buchstaben einer zeile .....
                    irgendwie sowas in der art...........



                    Kommentar


                    • #11
                      Hallo!

                      Ich denke mal, das ich noch irgendwie eine Variabel für die Ausgabe bzw. für das Auslesen aus der Textdatei festlegen muß, leider weiß ich nicht wie!

                      hier der Quelltext

                      <?
                      $fp=fopen("/web/sites/140/bluecyber/www.bluecyber.f2s.com/php/warmduscher.txt","r");
                      while (!feof($fp)){
                      $texte=fgets($fp, 4096);
                      }

                      // falls du kein PHP4 zur Verfügung hast
                      srand((double)microtime()*1000000);
                      $zufall=rand(0,count($texte));
                      $ausgabe=$texte[$zufall];

                      echo $ausgabe; // hier erfolgt die Ausgabe in den HTML-File
                      ?>

                      Ich denke schon jetzt für die Antwort
                      MfG
                      Andre

                      Ps: Hab halt noch nie mit PHP gearbeitet

                      Kommentar


                      • #12
                        Code:
                        <?
                        $i=0; 
                        $fp=fopen("/web/sites/140/bluecyber/www.bluecyber.f2s.com/php/warmduscher.txt","r"); 
                        while (!feof($fp)){ 
                        $texte[$i]=fgets($fp, 4096);
                        $i++; 
                        } 
                        
                        srand((double)microtime()*1000000); 
                        $zufall=rand(0,count($texte)); 
                        $ausgabe=$texte[$zufall]; 
                        
                        echo $ausgabe; // hier erfolgt die Ausgabe in den HTML-File 
                        ?>
                        die zuweisung zum Array hat gefehlt. Klappt's jetzt?

                        Kommentar


                        • #13
                          Jo danke!

                          Kann man die Farbe der Schrift auch ändern? So will ers nicht:

                          <font color="#FFCC33">
                          <?
                          $i=0;
                          $fp=fopen("/web/sites/140/bluecyber/www.bluecyber.f2s.com/php/warmduscher.txt","r");
                          while (!feof($fp)){
                          $texte[$i]=fgets($fp, 4096);
                          $i++;
                          }

                          srand((double)microtime()*1000000);
                          $zufall=rand(0,count($texte));
                          $ausgabe=$texte[$zufall];

                          echo $ausgabe; // hier erfolgt die Ausgabe in den HTML-File
                          ?>
                          </font>


                          DAnke, danke, Danke
                          MfG
                          Andre

                          Kommentar


                          • #14
                            ja, eigentlich müßte das gehen, was du da schreibst. Ergebnis müßte dann eigentlich

                            <font color="#FFCC33">sechs</font>

                            sein. Ist es das? Wenn nicht, ist irgendwo noch ein Fehlerchen.

                            Kommentar

                            Lädt...
                            X