Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzeige Seite nur noch bis print href Befehl

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

  • Anzeige Seite nur noch bis print href Befehl

    Hallo,
    ich habe ein Problem mit einer Webseite nach Umstellung der php Version von 7.4 auf 8.0 bei strato. Und vorweg: Ich bin da Leihe, habe bis jetzt nur Anpassungen im Text gemacht bzw. Bilder-Verweise geändert usw. Die Webseiten sind schon sehr alt, leider gibt es den Ersteller der Seiten nicht mehr, darum versuche ich das zu machen.
    Es funktioniert fast alles, bis auf Seiten bei denen ein pdf Dokument in neuen Tab geöffnet werden soll. Ab dieser Zeile in der html Datei ist die Webseite leer, auch nachfolgende Bilder werden nicht mehr angezeigt.
    HTML-Code:
    <p><a class="none" target="_blank" href="<?php print href('', '', 'pdf/Messe2005_Alu.pdf'); ?>"><img src="<?php getPfad('images/pdf_pruef_zubehoer.jpg'); ?>" width="127" height="180" alt="Alu-Griffe" style="margin-right:15px;" align="left" border="0" /></a>
    Ich hoffe, mir kann hier jemand helfen.....

  • #2
    Das Problem könnte in der Funktion href oder getPfad liegen. Du musst dir mal ansehen, was für ein HTML-Code im Browser ankommt, um den Fehler einzukreisen.

    Kommentar


    • #3
      ...also wenn ich die Seite im Browser anschaue und mir den Quelltext anzeigen lasse...

      bei php 7.4 sieht es so aus und geht dann weiter.....

      HTML-Code:
      <div style="float:left; width:190px; height:200px; text-align:left;"><a class="none" target="_blank" href="/pdf/Holzetui.pdf"><img src="/images/pdf_holz.jpg" width="127" height="180" alt="Holzetuis" border="0" /></a></div>


      ​bei php 8.0 eingestellt geht es nur noch so weit:

      HTML-Code:
      <div style="float:left; width:190px; height:200px; text-align:left;"><a class="none" target="_blank" href="

      Kommentar


      • #4
        Dann liegt der Fehler wohl in dieser Funktion:
        PHP-Code:
        print href('''''pdf/Messe2005_Alu.pdf');​ 
        Tipp:
        Schreibe diese 4 Zeilen an den Anfang deines Scripts:
        PHP-Code:
        <?php
          error_reporting
        (E_ALL);
          
        ini_set('display_errors'true);
        ?>
        PHP wird dir dann vermutlich Hinweise geben, wo der Fehler zu finden ist.

        Kommentar


        • #5
          da bekomme ich diese Meldung:

          HTML-Code:
             <a class="none" target="_blank" href="   Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /mnt/web117/c1/40/522840/htdocs/Test_php/elemente/inc/funktionen.inc:117   Stack trace:   #0 /mnt/web117/c1/40/522840/htdocs/Test_php/elemente/seiten/de/pruef_zubehoer.inc(8): href()   #1 /mnt/web117/c1/40/522840/htdocs/Test_php/index.php(137): include('...')   #2 {main}   thrown in /mnt/web117/c1/40/522840/htdocs/Test_php/elemente/inc/funktionen.inc on line 117  ​
          <a class="none" target="_blank" href=" Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /mnt/web117/c1/40/522840/htdocs/Test_php/elemente/inc/funktionen.inc:117 Stack trace: #0 /mnt/web117/c1/40/522840/htdocs/Test_php/elemente/seiten/de/pruef_zubehoer.inc(8): href() Home /mnt/web117/c1/40/522840/htdocs/Test_php/index.php(137): include('...') Forum {main} thrown in /mnt/web117/c1/40/522840/htdocs/Test_php/elemente/inc/funktionen.inc on line 117
          Zuletzt geändert von Klaus M; 06.02.2023, 16:37.

          Kommentar


          • #6
            Dann musst du mal in /mnt/web117/c1/40/522840/htdocs/Test_php/elemente/inc/funktionen.inc Zeile 117 nachsehen, denn da tritt der Fehler auf.

            Kommentar


            • #7
              .... da steht folgendes: Zeile 69-128 Zeile 117 ROT:

              function href($navid = '', $parameter = array(), $datei = '', $anker = '') {
              $url_lang= ''; $param = ''; $virtualdatei = false;
              $paramarray = array();
              $sessid = session_id();
              global $navi;
              $url = PFAD_VOMHTMLROOT;
              if(empty($navid)) $navid=$_GET['navid'];
              $ebene1 = substr($navid, 0, 2); $ebene2 = substr($navid, 2, 2); $ebene3 = substr($navid, 4, 2); $ebene4 = substr($navid, 6, 2);
              if(!ini_get("session.use_trans_sid") and !empty($sessid)) $parameter[session_name()] = session_id();
              if(CONFIG_TEC_SUCHMASCHINENURL) {
              if(isset($parameter['lang']) and !empty($parameter['lang']) and (CONFIG_TEC_MULTILINGUAL)) {
              $url_lang .= (((isset($navi[$ebene1][$ebene2][$ebene3][$ebene4]['statikdateiname']) and !empty($navi[$ebene1][$ebene2][$ebene3][$ebene4]['statikdateiname']) and $navi[$ebene1][$ebene2][$ebene3][$ebene4]['statikdateiname'] != CONFIG_TEC_SUCHMASCHINENURL_DEFAULTDATEI) or $parameter['lang'] != CONFIG_TEC_SUCHMASCHINENURL_DEFAULTSPRACHE) ? $parameter['lang'] : '');
              $parameter = dropArrayElementByKey($parameter, 'lang');
              }
              if(empty($datei)) {
              if(isset($navi[$ebene1][$ebene2][$ebene3][$ebene4]['statikdateiname']) and !empty($navi[$ebene1][$ebene2][$ebene3][$ebene4]['statikdateiname'])) {
              if(!empty($url_lang)) $url .= $url_lang."/";
              $url .= ($navi[$ebene1][$ebene2][$ebene3][$ebene4]['statikdateiname'] != CONFIG_TEC_SUCHMASCHINENURL_DEFAULTDATEI ? $navi[$ebene1][$ebene2][$ebene3][$ebene4]['statikdateiname'].'.'.CONFIG_TEC_SUCHMASCHINENURL_EXTENSION : '');
              $virtualdatei = true;
              }
              } else {
              if(!empty($url_lang)) $url .= $url_lang."/";
              $url .= $datei;
              }

              if($virtualdatei or !empty($datei)) {
              if(!empty($parameter)) {
              foreach($parameter as $key => $value) {
              $paramarray[] = $key.'='.$value;
              }
              }
              $param = implode("&", $paramarray);
              if(!empty($param)) $url .= "?".$param;
              } else {
              if(!empty($url_lang)) $parameter['lang'] = $url_lang;
              $parameter['navid'] = $navid;
              if(!empty($parameter)) {
              foreach($parameter as $key => $value) {
              $paramarray[] = $key.'='.$value;
              }
              }
              $param = implode("&", $paramarray);
              $param = preg_replace("/&/", "/", $param);
              $param = preg_replace("/=/", "/", $param);
              if(!empty($param)) $url .= $param."/".CONFIG_TEC_SUCHMASCHINENURL_DEFAULTDATEI."." .CON FIG_TEC_SUCHMASCHINENURL_EXTENSION;
              }
              } else {
              if(!empty($datei)) { $url .= $datei; }
              $parameter['navid'] = $navid;
              if(!empty($parameter)) {
              $url .= "?";
              foreach($parameter as $key => $value) {
              $paramarray[] = $key.'='.$value;
              }
              $url .= implode("&", $paramarray);
              }
              }
              if(!empty($anker)) { $url .= "#".$anker; }
              return str_replace("&", "&amp;", $url);
              }​

              Kommentar


              • #8
                Du solltest Quellcode immer mit den Formatierungsmöglichkeiten des Forums posten:

                grafik.png

                Die Funktion:
                PHP-Code:
                function href($navid ''$parameter = array(), $datei ''$anker ''
                Dein Funktionsaufruf:
                PHP-Code:
                href('''''pdf/Messe2005_Alu.pdf');​ 
                der zweite Parameter sollte ein Array sein, die übergibst aber einen leeren String. Das was auch schon unter PHP 7 falsch, wurde aber nur als Warning quittiert, unter PHP 8 ist das dann ein fataler Fehler, was ja auch logisch ist.

                Kommentar


                • #9
                  Aha, und wie kann ich das berichtigen / ändern ?

                  Kommentar


                  • #10
                    Du könntest die Grundlagen lernen und den Fehler selber beheben.

                    Übergebe der Funktion ein leeres Array und keinen leeren String.

                    Kommentar


                    • #11
                      ... wenn ich () in [] ändere, kommt nur noch eine leere Seite...

                      Kommentar


                      • #12
                        Zitat von Klaus M Beitrag anzeigen
                        ... wenn ich () in [] ändere, kommt nur noch eine leere Seite...
                        Dann machst du etwas falsch, aber da man nicht erkennen kann, was du gemacht hast ......

                        Wer hat das Script denn geschrieben? Derjenige sollte wissen, wie man das PHP 8 fähig macht. Allerdings sieht mir das so aus, als wenn es besser wäre, das komplette Script fachgerecht zu entsorgen und dann neu zu schreiben.

                        Eine Möglichkeit wäre, definiere eine Variable mit
                        PHP-Code:
                        $var = array(); 
                        und dann
                        PHP-Code:
                        print href(''$var'pdf/Messe2005_Alu.pdf');​ 
                        Schön ist das aber nicht, neu schreiben wäre besser.

                        Kommentar


                        • #13
                          So, das habe ich jetzt mal so geändert und es funktioniert - Super.
                          .... das Script stammt von 2006 (oder so...), leider gibt es die Firma nicht mehr, die es damals erstellt hat, und ich versuche die Seiten irgendwie am Leben zu erhalten. Ist schon klar, das da mal was komplett neues gemacht werden sollte.
                          Vielen Dank für die (erfolgreiche) Unterstützung.

                          Kommentar

                          homepage-forum.de - Hilfe für Webmaster! Statistiken

                          Einklappen

                          Themen: 57.206   Beiträge: 432.332   Mitglieder: 29.599   Aktive Mitglieder: 48
                          Willkommen an unser neuestes Mitglied, Justinelacy.

                          Online-Benutzer

                          Einklappen

                          757 Benutzer sind jetzt online. Registrierte Benutzer: 3, Gäste: 754.

                          Mit 4.707 Benutzern waren am 12.01.2023 um 03:07 die meisten Benutzer gleichzeitig online.

                          Die neuesten Themen

                          Einklappen

                          Die neuesten Beiträge

                          Einklappen

                          Lädt...
                          X