Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Code funktioniert nur bei 5.x und nicht bei 7.x

Einklappen

Neue Werbung 2019

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

  • PHP Code funktioniert nur bei 5.x und nicht bei 7.x

    Hallo ihr Lieben,

    bislang war ich hier nur ein stiller Leser. Damit ging ich niemandem auf die Nerven und habe auch viiieeel mitnehmen können. Leider habe ich hier ein Problem bei welchem ich zum Kot... nicht weiter komme.
    Registriert bin ich also und sende euch ein freundliches "Hallo".
    Ich möchte euch um eure Unterstützung bitten und skizziere so kurz wie möglich mein Problem:

    Aktiv und funktionierend:
    Joomla 3.8.6 mit DirectPHP und eigenem Modul zur Anzeige von Highcharts unter PHP 5.6
    Im Highchartsteil gibt es folgenden Code:


    <?php if($name14!=''){ ?> //Damit diese Serie nur angezeigt wird wenn ein Name vergeben wurde
    {//ERSTE SERIE
    name: '<?php echo $name14;?>',
    color: '#030',
    data: [<?php echo $chartValues_temp14[0];?>],
    stack: 'vierzehnter',
    visible: <?php if($name14!=''){echo "true";} else{echo "false";} ?>
    }
    <?php } ?>//ENDE VON: Damit diese Serie nur angezeigt wird wenn ein Name vergeben wurde

    Wenn ich den Webspaceeinstellungen die PHP-Version auf 7.x umstelle funktioniert die Seite nicht mehr. Sie ist nicht erreichbar. Ohne weitere Fehlermedungen.
    Unter PHP 7.x funktioniert der Chart jedoch wunderbar wenn ich die grün kommentierten Zeilen 'rausnehme:

    {//ERSTE SERIE
    name: '<?php echo $name14;?>',
    color: '#030',
    data: [<?php echo $chartValues_temp14[0];?>],
    stack: 'vierzehnter',
    visible: <?php if($name14!=''){echo "true";} else{echo "false";} ?>
    }

    Hat jemand von euch eine Ahnung woran das liegt? Was kann ich tun?

    Viele Grüße

    Jörg

  • #2
    Zitat von Threadtitel
    PHP Code funktioniert nur bei 5.x und nicht bei 7.x

    MOD: Verschoben von HTML, ...
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Ohne weitere Fehlermedungen.
      Die stehen warscheinlich bei deinem Hoster im Log, musst du mal im Adminpanel gucken. Kannst aber auch erstmal das hier probieren:

      https://php-de.github.io/jumpto/leitfaden/
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #4
        Hallo chorn und Danke für Deine Unterstützung.

        Leider komme ich nicht an die Logdateien 'ran weil es zum probieren ein kostenloser Hoster ist.
        Allerdings muss ich mich korrigieren. "syntax error, unexpected end of file" wird angezeigt. Das habe ich überlesen, da es auf dem Joomla-Frontend unter einem Infotext stand.
        Warum kommt sowas nur bei PHP 7.x und nicht bei 5.x?

        Wie gesagt: Bei 5.x läuft es fehlerfrei.

        Unglücklicherweise muss ich jetzt noch einmal weg und kann erst morgen früh weitermachen

        Wenn noch Ideen eintrudeln werde ich diese morgen gleich umsetzen .

        Danke schonmal und viele Grüße

        Jörg

        Kommentar


        • #5
          PHP 7 wirft jetzt Errors für einige Fehler, die zuvor einfach als Error ausgegeben wurden.

          Du kannst mit PHP7 sowas machen:
          PHP-Code:
          try {
              
          // dein code
          } catch (Throwable $e) {
              echo 
          $e->getMessage();

          Klar, die Fehlerbehandlung sollte so nicht gemacht werden, aber zur Fehlerfindung dürfte das in diesem Fall ausreichen. Zumal das vorgestellte Konstukt oben schon ziemlich banane ist...
          PHP hat sowas: http://php.net/manual/de/function.json-encode.php

          PHP-Code:
          // ...

          $result = [];

          // ....

          if($name14 !== '') {
              
          $result[] = [
                  
          'name' => $name14,
                  
          'color' => '#030',
                  
          'data' => $chartValues_temp14[0],
                  
          'stack' => 'vierzehnter',
                  
          'visible' => $name14 !== '' // Sinnlos!?
              
          ];
          }

          // ....

          echo json_encode($resultJSON_UNESCAPED_SLASHES JSON_PRETTY_PRINT); 
          ...oder wenigstens...

          PHP-Code:
          <?php if($name14 !== ''): ?>
          <?= json_encode
          ([
                  
          'name' => $name14,
                  
          'color' => '#030',
                  
          'data' => $chartValues_temp14[0],
                  
          'stack' => 'vierzehnter',
                  
          'visible' => $name14 !== '' // Sinnlos!?
              
          ], JSON_UNESCAPED_SLASHES JSON_PRETTY_PRINT)
          ?>
          <?php 
          endif ?>
          Enthält $name14 ein ' geht der Code in #1 ohnehin kaputt.

          Kommentar

          Lädt...
          X