Umstieg von Webhoster mit php 5.2 auf Webhoster mit php 8.2

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

  • Umstieg von Webhoster mit php 5.2 auf Webhoster mit php 8.2

    Hallo,

    ich bin blutiger Laie und weiß nicht, ob ich hier richtig bin. Ich stell meine Frage einfach mal.

    Ich hab ein kleines Script, das eine Kacheldarstellung von Fotos erzeugt, die man anklicken und vergrößern kann. Es lautet

    <?php
    $number=0;
    $fd =opendir ("bilder_kl/");
    while($bild =readdir($fd))
    {
    if(eregi("\.jpg$",$bild))
    {
    ++$number;
    echo "<a href=slideshow.php?auswahl=$number>";

    echo "<img src="bilder_kl/bild$number.jpg" border="0" hspace="6" vspace="6"></a>\n";
    }
    }
    closedir($fd);
    ?>

    und ist in einer Datei index.php.


    Das funktionierte wunderbar auf meinem alten Webserver mit php 5.2. Eine von diesem Script gebaute Seite sieht z.B. so aus:
    <http://rabe.macbay.net/bb-2007/index.php>

    Nun habe ich meine Webseiten auf einen neuen Server kopiert, der mit php 8.2 läuft. Und da funktioniert das Script nicht, die Seite bleibt leer, als ob das Script nicht da wäre.

    Kann mir jemand sagen, was ich da ändern muss? Ich bin, was php betrifft ein DAU und für jede Hilfe sehr dankbar.

    camier


  • #2
    Das ist dein Problem: http://php.adamharvey.name/manual/de/function.eregi.php

    Das funktionierte wunderbar auf meinem alten Webserver mit php 5.2
    Da hast du aber lange geschlafen, PHP 5.2 ist 2011 heraus gekommen
    Zuletzt geändert von scatello; 14.08.2023, 17:11.

    Kommentar


    • #3
      Hi,

      ändere den Ausdruck

      PHP-Code:
      if(eregi("\.jpg$",$bild)) 
      mal so ab

      PHP-Code:
      if(preg_match("\.jpg$",$bild)) 
      ob das funktioniert.

      Kommentar


      • #4
        Das ist schon mal ein großartiger Hinweis, VIELEN DANK!

        Ich hab jetzt "eregi" durch "preg_match" im Code ersetzt. Aber es ist immer noch nichts zu sehen (auch in einem anderen Browser). Da muss noch was anderes sein ...?

        Da hast du aber lange geschlafen
        Never touch a working system

        Kommentar


        • #5
          Probier das mal so:

          PHP-Code:
          $number = 0;
          $fd = opendir ("bilder_kl/");  
          while($bild = readdir($fd)) {  
             if($bild != "." && $bild != "..") {  
             ++$number;
          ?>  
            <a href=slideshow.php?auswahl=<?php echo $number?>>  
            <img src="bilder_kl/<?php echo $bild?>" style="border:none;" hspace="6" vspace="6"></a>  
          <?php  
            
          }  
          }  
          closedir($fd);
          Zuletzt geändert von ; 14.08.2023, 18:32.

          Kommentar


          • #6
            Wunderbar, funzt! Ihr seid super, ganz herzlichen Dank!

            Kommentar


            • #7
              Und wenn man jetzt noch glob statt opendir, readdir und closedir benutzt, kann man sich die Prüfung auf . und .. auch noch sparen.

              Kommentar


              • #8
                Etwas zu früh gefreut. Die Kacheldarstellung ist einwandfrei, aber die Links auf den einzelnen Bildern sind durcheinandergekommen, statt bild1, bild2, bild3 usw. führen die Links auf bild 38, bild110, bild148 und so chaotisch weiter

                Kommentar


                • #9
                  Zitat von camier Beitrag anzeigen
                  Etwas zu früh gefreut. Die Kacheldarstellung ist einwandfrei, aber die Links auf den einzelnen Bildern sind durcheinandergekommen, statt bild1, bild2, bild3 usw. führen die Links auf bild 38, bild110, bild148 und so chaotisch weiter
                  Wie sind denn die Bilder im Ordner sortiert? So werden sie auch ausgelesen.

                  Kommentar


                  • #10
                    Zitat von scatello Beitrag anzeigen
                    Und wenn man jetzt noch glob statt opendir, readdir und closedir benutzt, kann man sich die Prüfung auf . und .. auch noch sparen.
                    Bau mal das snippet nach glob() um bitte, wenne magst. Hab diese Funktion noch nicht benutzt. Danke.

                    Kommentar


                    • #11
                      Zitat von BBBln Beitrag anzeigen

                      Bau mal das snippet nach glob() um bitte, wenne magst. Hab diese Funktion noch nicht benutzt. Danke.
                      So!

                      PHP-Code:
                      <?php  
                      $number 
                      0;  
                      $fd glob("bilder_kl/*.jpg");  
                      foreach(
                      $fd as $bild) {  
                         ++
                      $number;  
                      ?>  
                         <a href=slideshow.php?auswahl=<?php echo $number?>>  
                         <img src="<?php echo $bild?>" style="border:none;" hspace="6" vspace="6"></a>  
                      <?php  
                      }  
                      ?>

                      Das ist voll gut!

                      Kommentar


                      • #12
                        Das ist voll gut!
                        Im Prinzip schon, aber die Reihenfolge der Bilder in der Kacheldarstellung ist falsch. Schau dir mal den Snapshot des Quellcodes der von deinem php-Code erzeugten Webseite an (anbei). bild1 ist korrekt und der Link auf bild1 ist auch korrekt. Statt bild2 2 wird aber bild10 angezeigt, der Link geht aber korrekt auf bild2. Ebenso wird beim dritten bild100 statt bild3 angezeigt mit Link auf bild3 usw.

                        Die Bilder, die in den Ordnern liegen heißen bild1, bild2, bild3, ..... bild10, bild11, bild12, ... bild100, bild101, ....

                        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: snap.png
Ansichten: 290
Größe: 275,8 KB
ID: 1046251
                        Angehängte Dateien

                        Kommentar


                        • #13
                          Guten Morgen,

                          teste mal so:

                          PHP-Code:
                          <?php  
                          $number 
                          0;  
                          $fd glob("bilder_kl/*.jpg");  
                          natsort($fd);  
                          foreach(
                          $fd as $bild) {  
                               ++
                          $number;  
                          ?>  
                          <a href=slideshow.php?auswahl=<?php echo $number?>>  
                          <img src="<?php echo $bild?>" style="border:none;" hspace="6" vspace="6"></a>  
                          <?php  
                          }  
                          ?>
                          Zuletzt geändert von ; 15.08.2023, 09:36.

                          Kommentar


                          • #14
                            Wow! Du hast mein Problem gelöst! Und dann auch noch so elegant! Vielen, vielen Dank!

                            Kommentar


                            • #15
                              Zitat von camier Beitrag anzeigen
                              Wow! Du hast mein Problem gelöst! Und dann auch noch so elegant! Vielen, vielen Dank!

                              Je vous en prie Monsieur et bonne journee

                              Kommentar

                              Lädt...
                              X