Meister_Max: Maximal Zeit ändern ?

Ich habe folgendes Problem :
Ich habe einen Script der mit Hilfe von Daten aus einer anderen Datei einen Text überprüft. Aber die Datei ist sehr umfangreich daher dauert das eine weile.
Das Problem ist nach 10 sek. sacht mir PHP das die Maximale Zeit überschritten wurde.

Wie ändere ich diese 10 Sekunden Maximalzeit ?

  1. Hi! <-Begrüßung

    Wie ändere ich diese 10 Sekunden Maximalzeit ?

    Die maximale Scriptlaufzeit? Die ist meist vom Hoster vorgegeben.
    Wenn das bei Dir der Fall ist, kannst Du daran auch nichts ändern - ist ja der Sinn der Sache.

    VG Simon

    1. Zur Info

      Die maximale Scriptlaufzeit wird in der php.ini gesetzt der Wert heisst glaube ich maxExecutionTime oder so ähnlich und steht standardmässig auf 30sec.
      Den wert kann jeder ändern, der auf die php.ini Zugriff und Schreibrechte hat. Bei öffentlichen Providern hat natürlich nur der Provider Zugriff und der wird sie kaum bei einer Anfrage ändern.
      Kann mir aber nicht vorstellen, das er dei auf 10sec runtergesetzt hat, da so ziemlich viele Skripte Probleme bekommen und das ist nicht besonders fördernd für die Kundenbindung.

      Mike

      1. Wenn du nicht glaubst das es nur 10 Sekunden sind dann Probier es aus.
        (Maximum execution time of 10 seconds exceeded in check.inc on line 13)dabei ist die angabe line immer unterschiedlich also muss es daran liegen das er für die Prüfschleife zulange brauch.

        http://mitglied.lycos.de/hermannguensti/Others/ROT/Guestbook.php

        Gib irgendein Smilie ein ud schick es ab du wirst sehn das bei der function check() die Meldun kommt das es Länger als 10Sek. brucht.
        Falls du dich fragst was die Funktion macht kann ich es dir Sagen sie überprüft ob es ein Smily einzusetzen giebt und da is nunmal ein paar hundert sind dauert das ne weile.

        1. Hi!

          Falls du dich fragst was die Funktion macht kann ich es dir Sagen sie überprüft ob es ein Smily einzusetzen giebt und da is nunmal ein paar hundert sind dauert das ne weile.

          Zeig uns doch mal den Quellcode, vielleicht kann man da noch was optimieren.

          VG Simon

          1. Hallo,

            einzige möglichkeit ist, da das Script ja auf dem Server zu lange braucht die Informationen vorher anders zu checken und dann das Ergebnis zum Server zu schicken.

            Eine Möglichkeit ist falls alle Infos zum checken vorliegen, mit Javascript den check durchzuführen und das Ergebnis dann abschicken.
            Du müsstest aber eine vorher eine standard antwort vorgeben, falls javascript nicht an ist.

            Oder Du müsstest das php-Script neu schreiben und zwar so das es die aktuelle Zeit ständig prüft und sich nach neun sekunden mit dem Zwischenergebnis erneut aufruft. So ist es immer ein neues Skript.

            Mike

            1. Javascript ist ne gute idee. Ich könnte eine funktion schreiben die denn text über prüft und dann die Seite mit schon geprüften text neu laden.
              Da hätte ich aber 2 Proglemme denn ich weis nicht wie man mit dem Button nur den Javascript startet ohne die Seite gleich neu zu laden und ich weis auch nicht wei man mit Java Dateien ausliest.
              Denn ich kann zwar ein wenig PHP aber fast nichts was Javascript an geht.

          2. Die Schreibfunktion der Guestbook.php sieht so aus :

            function write_input($new_name, $new_input,$bookfile){
               include ("BILDER/check.inc");
               $new_input = check($new_input);
               $fd = fopen($bookfile,"a");
               $new_input = str_replace("\n","<br>",$new_input);
               fwrite ($fd, "<b>".$new_name.": (" . strftime("%d.%m.%Y", time()) . ")</b><br>".$new_input."\r\n");
               fclose ($fd);
            }

            Die Funktion Check in der check.inc sieht so aus :

            <?PHP
            function check($txt){
               $bookfile = "check.txt";
               $fd = fopen($bookfile,"r");
               $boa = 0;
               while (!feof($fd)) {
                  $zeile = fgets($fd,1024);
                  $bob = 0;
                  $zeile = ereg_replace("\r\n","",$zeile);
                  if (strchr($zeile,"[")<>"") {$bob = 1;$boa = 1;}
                  if (strchr($zeile,"]")<>"") {$bob = 1;$boa = 0;}
                  if (($bob == 0)&&($boa == 0)) $dic = $zeile;
                  if (($bob == 0)&&($boa == 1)) $txt = ereg_replace("#" . trim($zeile) . "#","<img src="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/" . $dic . "/" . $zeile . ".gif" border="0">",$txt);
               }
               fclose ($fd);
               return $txt;
            }
            ?>

            Uns die die check.txt sieht in etwa so aus :

            ]
            other_smilies
            [
            down
            up
            eek
            hop
            flame
            confused
            heul
            biggrin
            cool
            twak
            angel
            redface
            kiss
            mod
            cry
            fight
            ]
            weapons_wands
            [
            arc_wand
            mighty_staff
            rod
            staff
            wand
            ]

            ...

            Nur als erklärung die Guestbook.php lässt den geschriebenen Text durch die in der check.inc stehenden Funktion check($txt) prüfen.
            Die Funktion check() liest dann zeile für zeile die check.txt aus und ordnet mit hilfe der eckigen klammer zu. Die texte die zwischen ] und [ stehen stellen den Unterordener im Ordner BILDER/ da. Und die texte zwischen [ und ] sind dann logischer weise die codes für die Smilies und gleichzeitig die Namen der Bilddateien.
            Da die Smilies immer zwischen 2 # angegeben werden wird auch so vergleicht.

            Man könnte das ganze zwar extrem kürzen wenn man stadt #Name# gleich den <img src="..../Name"> angeben würde, jedoch wäre das nicht so nutzerfreundlich die #Name# methode.

            1. Hallo,

              Die Schreibfunktion der Guestbook.php sieht so aus :

              function write_input($new_name, $new_input,$bookfile){
                 include ("BILDER/check.inc");
                 $new_input = check($new_input);
                 $fd = fopen($bookfile,"a");
                 $new_input = str_replace("\n","<br>",$new_input);

              Das geht auch schon in check(), warum hier nochmal den ganzen Text durchkauen?

              fwrite ($fd, "<b>".$new_name.": (" . strftime("%d.%m.%Y", time()) . ")</b><br>".$new_input."\r\n");
                 fclose ($fd);
              }

              Die Funktion Check in der check.inc sieht so aus :

              <?PHP
              function check($txt){
                 $bookfile = "check.txt";
                 $fd = fopen($bookfile,"r");

              Datei öffnen, lesen, schließen kostet alles Zeit. Warum nicht hardcoden?
              (Ich bin zwar auch gegen hardcoden, aber hier kann man's machen)

              $boa = 0;
                 while (!feof($fd)) {

              Dadurch würdest Du hier über ein simples Array loopen, statt über eine Datei.

              $zeile = fgets($fd,1024);

              Würde wegfallen.

              $bob = 0;
                    $zeile = ereg_replace("\r\n","",$zeile);

              Würde wegfallen.

              if (strchr($zeile,"[")<>"") {$bob = 1;$boa = 1;}
                    if (strchr($zeile,"]")<>"") {$bob = 1;$boa = 0;}
                    if (($bob == 0)&&($boa == 0)) $dic = $zeile;

              Würde wegfallen (Warum hast Du kein Switch genommen?)

              if (($bob == 0)&&($boa == 1)) $txt = ereg_replace("#" . trim($zeile) . "#","<img src="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/" . $dic . "/" . $zeile . ".gif" border="0">",$txt);
                 }

              Müßte dann etwas angepaßt werden. Würde ich dann über einen großen Switch() laufen lassen. Soviel ist es nicht, da die Zeit zum Parsen einen Einfluß nehmen könnte. (Falls nicht eh schon gecached wird)

              fclose ($fd);

              Würde wegfallen.

              return $txt;
              }
              ?>

              Uns die die check.txt sieht in etwa so aus :

              Würde dann auch wegfallen

              Man könnte das ganze zwar extrem kürzen wenn man stadt #Name# gleich den <img src="..../Name"> angeben würde, jedoch wäre das nicht so nutzerfreundlich die #Name# methode.

              Das kannst Du dann behalten ;-)

              Warum nimmst Du eigentlich nicht direkt #name# ?

              so short
              Christoph Zurnieden

              1. Hallo,

                Die Schreibfunktion der Guestbook.php sieht so aus :

                function write_input($new_name, $new_input,$bookfile){
                   include ("BILDER/check.inc");
                   $new_input = check($new_input);
                   $fd = fopen($bookfile,"a");
                   $new_input = str_replace("\n","<br>",$new_input);

                Das geht auch schon in check(), warum hier nochmal den ganzen Text durchkauen?

                Ob ich den befehl nu hier oder in check() reinschreibe ändert nichts, ausgeführt werden muss er.

                fwrite ($fd, "<b>".$new_name.": (" . strftime("%d.%m.%Y", time()) . ")</b><br>".$new_input."\r\n");
                   fclose ($fd);
                }

                Die Funktion Check in der check.inc sieht so aus :

                <?PHP
                function check($txt){
                   $bookfile = "check.txt";
                   $fd = fopen($bookfile,"r");

                Datei öffnen, lesen, schließen kostet alles Zeit. Warum nicht hardcoden?
                (Ich bin zwar auch gegen hardcoden, aber hier kann man's machen)

                öffnen lesen schließen ist notwendig um an die Daten die da stehen heranzukommen.Logisch oder ?
                Und was meinst du mit hardcoden ?

                $boa = 0;
                   while (!feof($fd)) {

                Dadurch würdest Du hier über ein simples Array loopen, statt über eine Datei.

                Leider hab ich nicht die geringste ahnung von Arrays.

                $zeile = fgets($fd,1024);

                Würde wegfallen.

                $bob = 0;
                      $zeile = ereg_replace("\r\n","",$zeile);

                Würde wegfallen.

                if (strchr($zeile,"[")<>"") {$bob = 1;$boa = 1;}
                      if (strchr($zeile,"]")<>"") {$bob = 1;$boa = 0;}
                      if (($bob == 0)&&($boa == 0)) $dic = $zeile;

                Würde wegfallen (Warum hast Du kein Switch genommen?)

                Vom switch hab ich auch keine ahnung.

                if (($bob == 0)&&($boa == 1)) $txt = ereg_replace("#" . trim($zeile) . "#","<img src="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/" . $dic . "/" . $zeile . ".gif" border="0">",$txt);
                   }

                Müßte dann etwas angepaßt werden. Würde ich dann über einen großen Switch() laufen lassen. Soviel ist es nicht, da die Zeit zum Parsen einen Einfluß nehmen könnte. (Falls nicht eh schon gecached wird)

                fclose ($fd);

                Würde wegfallen.

                return $txt;
                }
                ?>

                Uns die die check.txt sieht in etwa so aus :

                Würde dann auch wegfallen

                Man könnte das ganze zwar extrem kürzen wenn man stadt #Name# gleich den <img src="..../Name"> angeben würde, jedoch wäre das nicht so nutzerfreundlich die #Name# methode.

                Das kannst Du dann behalten ;-)

                Warum nimmst Du eigentlich nicht direkt #name# ?

                Wie meinst du das ?

                so short
                Christoph Zurnieden

                Wenns nicht zuviel arbeit macht könntest du mir mal zeigen wie das aussieht wenn du das machen würdest.

                1. Hallo,

                  Die Schreibfunktion der Guestbook.php sieht so aus :

                  function write_input($new_name, $new_input,$bookfile){
                     include ("BILDER/check.inc");
                     $new_input = check($new_input);
                     $fd = fopen($bookfile,"a");
                     $new_input = str_replace("\n","<br>",$new_input);

                  Das geht auch schon in check(), warum hier nochmal den ganzen Text durchkauen?

                  Ob ich den befehl nu hier oder in check() reinschreibe ändert nichts, ausgeführt werden muss er.

                  Doch da ändert sich einiges. Wenn Du das direkt beim Durchgang in check() machst, sparst Du einen ganzen Durchgang.
                  So wie jetzt wird der Text zweimal in der Gänze geparst. Einmal davon ist überflüssig.

                  fwrite ($fd, "<b>".$new_name.": (" . strftime("%d.%m.%Y", time()) . ")</b><br>".$new_input."\r\n");
                     fclose ($fd);
                  }

                  Die Funktion Check in der check.inc sieht so aus :

                  <?PHP
                  function check($txt){
                     $bookfile = "check.txt";
                     $fd = fopen($bookfile,"r");

                  Datei öffnen, lesen, schließen kostet alles Zeit. Warum nicht hardcoden?
                  (Ich bin zwar auch gegen hardcoden, aber hier kann man's machen)

                  öffnen lesen schließen ist notwendig um an die Daten die da stehen heranzukommen.Logisch oder ?

                  Aber nicht, wenn sie da nicht stehen, sondern direkt im Code.

                  Und was meinst du mit hardcoden ?

                  Direkt in einem Array im Code selber auflisten.

                  $boa = 0;
                     while (!feof($fd)) {

                  Dadurch würdest Du hier über ein simples Array loopen, statt über eine Datei.

                  Leider hab ich nicht die geringste ahnung von Arrays.

                  Das ist schlecht. gehört aber zu den Grundkenntnissen (fast schon egal welche Sprache), würde ich also nachholen. Ähnlich SelfHTML gibt es auch SelfPHP, das nicht nur in der selben Aufmachung daherkommt, sondern auch in der Qualität kaum nachsteht.
                  http://www.selfphp3.de/
                  http://www.selfphp4.de/

                  (Falls sich das nicht geändert hat)

                  Vom switch hab ich auch keine ahnung.

                  Siehe oben.

                  if (($bob == 0)&&($boa == 1)) $txt = ereg_replace("#" . trim($zeile) . "#","<img src="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/" . $dic . "/" . $zeile . ".gif" border="0">",$txt);
                     }

                  Man könnte das ganze zwar extrem kürzen wenn man stadt #Name# gleich den <img src="..../Name"> angeben würde, jedoch wäre das nicht so nutzerfreundlich die #Name# methode.

                  Das kannst Du dann behalten ;-)

                  Warum nimmst Du eigentlich nicht direkt #name# ?

                  Wie meinst du das ?

                  Wenn der User eh schon den Namen des Smileys (der gleichzeitig auch der Name der Bilddatei ist) angeben muß, dann ersetz doch einfach #name# per RegExp durch <img href=" ... name...></img>
                  Wäre doch das simpelste, oder?

                  Wenns nicht zuviel arbeit macht könntest du mir mal zeigen wie das aussieht wenn du das machen würdest.

                  <?PHP
                  $var = "Bischen Blabla  #name# bischen blabla";
                  echo $var;
                  echo "<br>";
                  $var = ereg_replace ("(#)([a-z]*)(#)","IMG\2IMG",$var);
                  echo $var;
                  echo "<br><br>";
                  ?>

                  Ich war jetzt zu faul einen ganzen <img> Tag zu schreiben, denk aber daran, daß evt das eine oder andere Sonderzeichen escaped werden muß (Insbesondere Klammern und Anführungszeichen)

                  Du kannst übrigens schachteln:

                  $var = ereg_replace("(#)([a-z]*)(#)","IMG\2IMG",reg_replace("[\r\n]","<br>",$var) );

                  Ist zwar unübersichtlich, aber flott.
                  Würde es nur nicht allzuweit treiben ;-)

                  Habe es übrigens unter PHP3 ausprobiert, klappt sogar dort.

                  Würde vielleicht noch ein strtolower() zwischenpappen, dann werden schonmal einige Typos abgefangen.

                  so short
                  Christoph Zurnieden

                  1. Wenn der User eh schon den Namen des Smileys (der gleichzeitig auch der Name der Bilddatei ist) angeben muß, dann ersetz doch einfach #name# per RegExp durch <img href=" ... name...></img>
                    Wäre doch das simpelste, oder?

                    RegExp kenn ich nicht.

                    <?PHP
                    $var = "Bischen Blabla  #name# bischen blabla";
                    echo $var;
                    echo "<br>";
                    $var = ereg_replace ("(#)([a-z]*)(#)","IMG\2IMG",$var);

                    Warum hast du um # Klammern gemacht ?
                    Und was soll ([a-z]*) bedeuten ?

                    echo $var;
                    echo "<br><br>";
                    ?>

                    1. Hallo,

                      Wenn der User eh schon den Namen des Smileys (der gleichzeitig auch der Name der Bilddatei ist) angeben muß, dann ersetz doch einfach #name# per RegExp durch <img href=" ... name...></img>
                      Wäre doch das simpelste, oder?

                      RegExp kenn ich nicht.

                      Übliche Abkürzung für "Regular Expression"

                      <?PHP
                      $var = "Bischen Blabla  #name# bischen blabla";
                      echo $var;
                      echo "<br>";
                      $var = ereg_replace ("(#)([a-z]*)(#)","IMG\2IMG",$var);

                      Warum hast du um # Klammern gemacht ?

                      Um die Teilung zu verdeutlichen.

                      Und was soll ([a-z]*) bedeuten ?

                      Ist ein Fehler, muß ([a-z]+) heißen. Das andere funktioniert zwar auch, verarbeitet dann aber leere ("##") auch.

                      Sind eine Menge > 0 an beliebigen Kleinbuchstaben am Stück.

                      Für eine kurze Übersicht (Die aber für das meiste ausreicht) siehe auch
                      http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm
                      (Ist zwar für Perl aber der Unterschied zu PHP ist nicht sonderlich, außerdem gibt es für die ereg_* Funktionen auch Perlkompatible, die dann preg_* heißen.
                      (ereg_* sind die nach POSIX Schema)

                      Aber eine Frage habe ich selber noch:
                      Wie hast Du Deinen ursprünglichen Code eigentlich geschrieben?
                      Oder nenn ich es beim Namen: Wo hast Du ihn rauskopiert?

                      so short

                      Christoph Zurnieden

                      PS: einen Nachteil meiner Methode darf ich nicht verschweigen: er benötigt jeweils einen Buffer so groß, wie der Text ist.
                      Außerdem weiß ich jetzt nicht, ob es in PHP eine Möglichkeit gibt, die kompilierte RegEx zu cachen.

                      1. Ich kann verstehen das du glaubst ich hätte den code kopiert aber ich habe ihn selber geschrieben. Ich hab nähmlich ein Buch über PHP das ist echt scheiße deshalb kenne ich auch nur sowenige Befehle und son zeug. Aber mit den paar Befehlen konnte ich mein Gästebuch schreiben (Ich glaube das erklärt wieso der code so umstaändlich geschrieben wurde.) und es hatte sogar Problemlos funktioniert (bis die maximalzeit heruntergestellt wurde.)

                        Naja egal weil ich dein zeug nicht ganz verstanden hatte musste ich ne weile drüber nachdenken und dabei ist mei was anderes eingefallen.

                        Ich habe erstmal alle bilder in einen Ordner geschoben den ich spontan "S" genannt habe (damit hab ich das Problem welches Bild in welchem Ordner liegt schon einfach mal umgangen.), dann habe ich meine Guestbook.php so geändert das ich den    $txt = ereg_replace("\r\n","<br>",$txt);   Befehl erstma rausgenommen habe so wie du gesagt hast und dann habe ich meine check() Funktion total geändert und jetzt funktioniert sie. So sieht sie aus :

                        <?PHP
                        function check($txt){
                           $txt = ereg_replace("\r\n","<br>",$txt);
                           $bestandteile = explode ("#", $txt);
                           $i=0;
                           $txt="";
                           foreach ($bestandteile as $var)
                           {
                              $i++;
                              switch ($i)
                              {
                                 case 1 :
                                    $txt = $txt . $var;
                                    break;
                                 case 2 :
                                   $i=0;
                                   $var = strtolower($var);
                                   $txt = $txt . "<img src="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/S/" . $var . ".gif" border="0">";
                                   break;
                              }
                           }
                           return $txt;
                        }
                        ?>

                        Jetzt habe ich mich mein Problem also anders umgangen als du meintest aber trotzdem Danke das du mir helfen wolltest.
                        Kannst es dir ja mahl ansehen wenn du willst.

                        http://mitglied.lycos.de/hermannguensti/Others/ROT/Guestbook.php

                        1. Hallo,

                          Ich kann verstehen das du glaubst ich hätte den code kopiert aber ich habe ihn selber geschrieben. Ich hab nähmlich ein Buch über PHP das ist echt scheiße deshalb kenne ich auch nur sowenige Befehle und son zeug.

                          Dann schau Dir mal den von mir vergebenen Link an. Das ganze Dingen gibt es auch zum bequemem Download und - wenn Du ein paar Euro übrig hast, die Jungs freuen sich - als Buch vom Franzis-Verlag, 2001, ISBN: 377237184-1, Preis: 44,95 Euro, ca. 750 Seiten, Hardcover, mit CD-ROM

                          Die Werbung sei mir hieer mal erlaubt, da es das Buch, wie gesagt, auch zum freiem Download gibt.

                          Aber mit den paar Befehlen konnte ich mein Gästebuch schreiben (Ich glaube das erklärt wieso der code so umstaändlich geschrieben wurde.)

                          Ja, das erklärt so einiges ;-)
                          Aber dann sei doch mal so nett und nenne den Titel des Buches, damit man sich, ... äh ..., selber ein Bild davon machen kann.

                          und es hatte sogar Problemlos funktioniert (bis die maximalzeit heruntergestellt wurde.)

                          Ja, viele Wege führen nach Rom ;-)

                          Naja egal weil ich dein zeug nicht ganz verstanden hatte musste ich ne weile drüber nachdenken und dabei ist mei was anderes eingefallen.

                          Ich habe erstmal alle bilder in einen Ordner geschoben den ich spontan "S" genannt habe (damit hab ich das Problem welches Bild in welchem Ordner liegt schon einfach mal umgangen.),

                          Ja, stimmt, habe ich vergessen zu erwähnen. 'tschuldige bitte.

                          dann habe ich meine Guestbook.php so geändert das ich den    $txt = ereg_replace("\r\n","<br>",$txt);   Befehl erstma rausgenommen habe so wie du gesagt hast und dann habe ich meine check() Funktion total geändert und jetzt funktioniert sie. So sieht sie aus :

                          <?PHP
                          function check($txt){
                             $txt = ereg_replace("\r\n","<br>",$txt);
                             $bestandteile = explode ("#", $txt);
                             $i=0;
                             $txt="";
                             foreach ($bestandteile as $var)
                             {
                                $i++;
                                switch ($i)
                                {
                                   case 1 :
                                      $txt = $txt . $var;
                                      break;
                                   case 2 :
                                     $i=0;
                                     $var = strtolower($var);
                                     $txt = $txt . "<img src="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/S/" . $var . ".gif" border="0">";
                                     break;
                                }
                             }
                             return $txt;
                          }
                          ?>

                          Jetzt habe ich mich mein Problem also anders umgangen als du meintest aber trotzdem Danke das du mir helfen wolltest.

                          Zumindest weißt Du jetzt, wie das mit dem switch() funktioniert, dem foreach() usw.
                          Und weil Du Dir auch selber Gedanken gemacht hast, hier nun meine Version:

                          function check($txt){
                          $txt = preg_replace ("/(#)([A-Za-z]+)(#)/e","'<img src="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/S/'.strtolower('\2').'"></img>'",$txt);
                          return $txt;
                          }

                          Geht allerdings nur ab PHP4.x

                          Kurze Erklärung zum Unterschied:

                          preg_* sind die Perlkompatiblen Regexfunktionen, deshalb kommen die Regexe zwischen zwei "/". Das "e" am Ende ist ein Flag dafür, daß das Ersatzteil als PHP geparst wird, also die "." und strtolower() ausgeführt werden. Die einfachen Anführungszeichen sind wichtig!

                          Da es nur ein Zeile ist (den return() habe ich nur getrennt, weil ich mir nicht sicher bin, was bei PHP4 return alles darf, ich habe nur PHP3 hier lokal und das kann kein preg_*) kannst Du Dir sogar die ganze Funktion sparen und den damit verbundenen Overhead und direkt ausgeben.

                          Kannst es dir ja mahl ansehen wenn du willst.

                          http://mitglied.lycos.de/hermannguensti/Others/ROT/Guestbook.php

                          Gibt es da neuerdings eigentlich PHP für lau?
                          Dann kann ich mir da ja endlich einen Mailer basteln ;-)

                          so short

                          Christoph Zurnieden

                          1. Aber dann sei doch mal so nett und nenne den Titel des Buches, damit man sich, ... äh ..., selber ein Bild davon machen kann.

                            Das "ein Bild davon machen" hab ich für dich übernaommen
                            http://mitglied.lycos.de/hermannguensti/Others/PIC0001.jpg

                            Gibt es da neuerdings eigentlich PHP für lau?

                            Was ist lau ?

                            Übrigens mir ist grad ein Problem aufgefallen der durch meinen neuen Script entstanden ist:
                            Wenn jetzt ein User # eingiebt ohne ein smily darstellen zu wollen wird der darauf folgende Text auch wie der name eines bildes behandelt.

                            Und die einzigste Lösung die mir dafür einfällt wäre bei den Bildchen noch ein Zeichen hinzusetzen (so z.b. ;#Name;#), jedoch senkt das nur die chance das der User ausversehen die zeichenfolge eingiebt aber es ist leider immernoch möglich.

                            1. Hallo,

                              Aber dann sei doch mal so nett und nenne den Titel des Buches, damit man sich, ... äh ..., selber ein Bild davon machen kann.

                              Das "ein Bild davon machen" hab ich für dich übernaommen
                              http://mitglied.lycos.de/hermannguensti/Others/PIC0001.jpg

                              Das ist aber sehr besch...eiden.
                              Die Qualität des Photos meine ich jetzt ;-)

                              Scheint aber nicht das gleiche zu sein, wie das von selfphp.
                              Laß Dich nicht vom hohem Preis abschrecken, gute (!) Fachbücher sind so teuer, leider.

                              Gibt es da neuerdings eigentlich PHP für lau?

                              Was ist lau ?

                              Ich dachte, das wäre schon bundesweit bekannt? ;-)

                              Abk. für "gibt es für einen lauwarmen Händedruck" sprich: für umsonst.

                              Übrigens mir ist grad ein Problem aufgefallen der durch meinen neuen Script entstanden ist:
                              Wenn jetzt ein User # eingiebt ohne ein smily darstellen zu wollen wird der darauf folgende Text auch wie der name eines bildes behandelt.

                              Ja, das ist so korrekt. so steht es in Deinem Code.

                              Nimm lieber meinen Einzeiler, so er denn funktioniert (kann ihn ja mangels PHP4 nicht ausprobieren)

                              Könnte noch dabeisetzen: wenn nicht, bitte Fehlermeldung, aber die Fehlermeldungen von PHP sind meist wenig aufschlußreich ;-)

                              so short

                              Christoph Zurnieden

                              1. Das "ein Bild davon machen" hab ich für dich übernaommen
                                http://mitglied.lycos.de/hermannguensti/Others/PIC0001.jpg

                                Das ist aber sehr besch...eiden.
                                Die Qualität des Photos meine ich jetzt ;-)

                                Ich weis ich hab die Kamera noch nicht lange und muss erst noch ein bischen damit umgehen bevor ich gute Bilder machen kann.

                                Scheint aber nicht das gleiche zu sein, wie das von selfphp.
                                Laß Dich nicht vom hohem Preis abschrecken, gute (!) Fachbücher sind so teuer, leider.

                                Ich weis das Fachbücher teuer sind

                                Abk. für "gibt es für einen lauwarmen Händedruck" sprich: für umsonst.

                                lso ich hab "lau" noch nie gehört und sowieso heist das bei uns fürn feuchten Händedruck(zumindst hier in Schwerin).

                                Übrigens mir ist grad ein Problem aufgefallen der durch meinen neuen Script entstanden ist:
                                Wenn jetzt ein User # eingiebt ohne ein smily darstellen zu wollen wird der darauf folgende Text auch wie der name eines bildes behandelt.

                                Das muss ich Korigieren ich hab schon ne Lösung gefunden :
                                Ich habe case 2 etws geändert

                                case 2 :
                                   if (file_exists("S/" . strtolower($var) . ".gif")){
                                      $i=0;
                                      $var = strtolower($var);
                                      $txt = $txt . "<img ...
                                   }
                                   if (!file_exists("S/" . strtolower($var) . ".gif")){
                                      $txt = $txt . $var;
                                      $i=1;
                                   }
                                   break;

                                Ich hab nur wieder nen Problem. Scheinbar giebt es ein Problem mit den Abfragen den es wird nichts geschrieben wenn die Datei existiert und ebenso wird nichts geschrieben wenn sie nicht exestiert.
                                Und als Sahnehäubchen drauf bekomme ich nicht mal ne Fehlermeldung.

                                1. Hallo,

                                  Das "ein Bild davon machen" hab ich für dich übernaommen
                                  http://mitglied.lycos.de/hermannguensti/Others/PIC0001.jpg

                                  Das ist aber sehr besch...eiden.
                                  Die Qualität des Photos meine ich jetzt ;-)

                                  Ich weis ich hab die Kamera noch nicht lange und muss erst noch ein bischen damit umgehen bevor ich gute Bilder machen kann.

                                  Beim Ausatmen abdrücken, verwackelt dann weniger.
                                  Das mit dem schlecht gewähltem Ausschnitt kommt dann mit der Erfahrung.

                                  Scheint aber nicht das gleiche zu sein, wie das von selfphp.
                                  Laß Dich nicht vom hohem Preis abschrecken, gute (!) Fachbücher sind so teuer, leider.

                                  Ich weis das Fachbücher teuer sind

                                  Bis auf das von SelPHP, das läßt sich runterladen ;-)

                                  Abk. für "gibt es für einen lauwarmen Händedruck" sprich: für umsonst.

                                  lso ich hab "lau" noch nie gehört und sowieso heist das bei uns fürn feuchten Händedruck(zumindst hier in Schwerin).

                                  Hier (Ruhrgebiet) wird da unterschieden: "für lau" ist ein zu bezahlender Preis (Aalso: "für umsonst"), "für'n feuchten Händedruck" ist das, was man bekommt "Da habe ich ihm den Computer repariert und was habe ich bekommen? 'Nen feuchten Händedruck!"

                                  Übrigens mir ist grad ein Problem aufgefallen der durch meinen neuen Script entstanden ist:
                                  Wenn jetzt ein User # eingiebt ohne ein smily darstellen zu wollen wird der darauf folgende Text auch wie der name eines bildes behandelt.

                                  Das muss ich Korigieren ich hab schon ne Lösung gefunden :
                                  Ich habe case 2 etws geändert

                                  case 2 :
                                     if (file_exists("S/" . strtolower($var) . ".gif")){
                                        $i=0;
                                        $var = strtolower($var);
                                        $txt = $txt . "<img ...
                                     }
                                     if (!file_exists("S/" . strtolower($var) . ".gif")){
                                        $txt = $txt . $var;
                                        $i=1;
                                     }
                                     break;

                                  Ich hab nur wieder nen Problem. Scheinbar giebt es ein Problem mit den Abfragen den es wird nichts geschrieben wenn die Datei existiert und ebenso wird nichts geschrieben wenn sie nicht exestiert.
                                  Und als Sahnehäubchen drauf bekomme ich nicht mal ne Fehlermeldung

                                  Warum auch, ist ja kein Fehler, ist syntaktisch korrekt ;-)
                                  Wird wahrscheinlich an der Pfadangabe liegen, braucht wohl den Vollständigen, da Du ja nicht das Verzeichnis gewechselt hast. Du bist also immer noch in Deinem Rootverzeichniss.

                                  if (file_exists("/hermannguensti/Others/ROT/BILDER/S/" . strtolower($var) . ".gif")) {
                                   ...
                                  } else {
                                   ...
                                  }

                                  so short

                                  Christoph Zurnieden

                                  1. Ich hab nur wieder nen Problem. Scheinbar giebt es ein Problem mit den Abfragen den es wird nichts geschrieben wenn die Datei existiert und ebenso wird nichts geschrieben wenn sie nicht exestiert.
                                    Und als Sahnehäubchen drauf bekomme ich nicht mal ne Fehlermeldung

                                    Warum auch, ist ja kein Fehler, ist syntaktisch korrekt ;-)
                                    Wird wahrscheinlich an der Pfadangabe liegen, braucht wohl den Vollständigen, da Du ja nicht das Verzeichnis gewechselt hast. Du bist also immer noch in Deinem Rootverzeichniss.

                                    Am Pfad kann es nicht liegen da die check.inc im Verzeichnis BILDER/ liegt und auserdem würde der Text dann trotzdem noch geschrieben werden schließlich steht da ja noch die die zweite If-Abfrage

                                    if (!file_exists("S/" . strtolower($var) . ".gif")){...

                                    für den Fall das er diese Datei nicht finden kann.

                                    1. Hallo,

                                      Ich hab nur wieder nen Problem. Scheinbar giebt es ein Problem mit den Abfragen den es wird nichts geschrieben wenn die Datei existiert und ebenso wird nichts geschrieben wenn sie nicht exestiert.
                                      Und als Sahnehäubchen drauf bekomme ich nicht mal ne Fehlermeldung

                                      Warum auch, ist ja kein Fehler, ist syntaktisch korrekt ;-)
                                      Wird wahrscheinlich an der Pfadangabe liegen, braucht wohl den Vollständigen, da Du ja nicht das Verzeichnis gewechselt hast. Du bist also immer noch in Deinem Rootverzeichniss.

                                      Am Pfad kann es nicht liegen da die check.inc im Verzeichnis BILDER/ liegt

                                      Und wo liegt die Datei, die diese Include einbindet?

                                      und auserdem würde der Text dann trotzdem noch geschrieben werden schließlich steht da ja noch die die zweite If-Abfrage.

                                      Funktioniert auch nicht, oder hast Du das gar nicht erst ausprobiert?

                                      if (!file_exists("S/" . strtolower($var) . ".gif")){...

                                      für den Fall das er diese Datei nicht finden kann.

                                      file_exists() ist Bool, kennt also nur wahr oder falsch, würde die zweite If-Abfrage durch ein simples else ersetzen.

                                      Setz doch mal ein 'echo loop1' bzw loop2 an den Anfang ind die If-Abfragen, dann weißt Du wenigstens, ob überhaupt etwas passiert.

                                      so short

                                      Christoph Zurnieden

                                      1. Ich habe jetzt einfach die ganze foreach-Schleif gekürtzt mal sehn obs geht.

                                        foreach ($bestandteile as $var)
                                           {
                                              if (file_exists("http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/S/" . strtolower($var) . ".gif")){
                                                 $i=0;
                                                 $var = strtolower($var);
                                                 $txt = $txt . "<img scr="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/S/" . strtolower($var) . ".gif" border='0'>"
                                              }
                                              else{
                                                  $txt = $txt . "#" . $var;
                                              }
                                           }

                                        1. Ich hab das ganze Nochmal ein wenig geändert so das es statt nur #  #; braucht und sollte ein User diese Kombination zu seinem Leitwesen durch ein simples " " getauscht aber so ist es am besten. Userfreundlicher mache is es später auch noch ansonsten soll es erstma so bleiben.

                                          foreach ($bestandteile as $var)
                                              {
                                                 if (file_exists("http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/S/" . strtolower($var) . ".gif")){
                                                    $i=0;
                                                    $var = strtolower($var);
                                                    $txt = $txt . "<img scr="http://mitglied.lycos.de/hermannguensti/Others/ROT/BILDER/S/" . strtolower($var) . ".gif" border='0'>"
                                                 }
                                                 else{
                                                     $txt = $txt . "#" . $var;
                                                 }
                                              }

                                          Tschau ich schau vielleicht in ein paar wochen wieder ins Forum (oder wenns mal wieder ein schweres Problem giebt),ansonsten

                                          DANKE.

                2. Leider hab ich nicht die geringste ahnung von Arrays.

                  *ROFL*. Diese elementaren Grundkenntnisse sollte meiner Meinung nach beherrschen. Nichts für Ungut, der Danny