Anzeige:
Ergebnis 1 bis 3 von 3

Thema: php läuft lokal, online gibt es eine Fehlerneldung

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468

    php läuft lokal, online gibt es eine Fehlerneldung

    Hi, ich habe mir ja lokal einen Apache-Server zum Testen von php-Skripten installiert und darauf eine php-Version meiner Homepage gebastelt. Alles lief gut, aber als ich die Dateien hochgeladen habe, um damit online zu gehen, kam (wenn ich mir die Fehler anzeigen lasse, was man ja online eigentlich lieber lassen sollte...) die Meldung:
    Code:
    Parse error
    : syntax error, unexpected '[' in
    /var/www/web1114/html/ruth/include/nav-de.php
    on line
    2
    nav-de ist eine Include-Datei, in die ich mein Menü ausgelagert habe, und sieht folgendermaßen aus:
    PHP-Code:
    <?php
    $pages 
    = [
      [
        
    'name' => '/deutsch',
        
    'linktext' => 'Home',
      ],
      [
        
    'name' => '/uebersetz',
        
    'linktext' => 'Überset&shy;zen',
      ],
      [
        
    'name' => '/dolmetsch',
        
    'linktext' => 'Dolmet&shy;schen',
      ],
        [
        
    'name' => '/fach',
        
    'linktext' => 'Fach- und Spezial&shy;gebiete',
      ],
      [
        
    'name' => '/kontakt',
        
    'linktext' => 'Kontakte',
      ],

    ];

    $pages2 = [
      [
        
    'name' => '/impressum',
        
    'linktext' => 'Impres&shy;sum',
      ],
      [
        
    'name' => '/AGB',
        
    'linktext' => 'AGB',
      ],
        [
        
    'name' => '/rueckmeldung',
        
    'linktext' => 'Rückmel&shy;dungen',
      ],
    ];

    foreach (
    $pages as $index => $page) :
      
    $listitem "<li";
      if (
    $_SERVER["SCRIPT_NAME"] == $page["name"] . ".php") :
        
    $listitem .= " aria-current='page'><a class='same'>";
      else :
        
    $listitem .= "><a href='" $page["name"] . ".php'>";
      endif;
      
    $listitem .= $page["linktext"] . "</a></li>";
      
    $pages[$index]["listitem"] = $listitem;
    endforeach; 
    foreach (
    $pages2 as $index2 => $page2) :
      
    $listitem "<li";
      if (
    $_SERVER["SCRIPT_NAME"] == $page2["name"] . ".php") :
        
    $listitem .= " aria-current='page'><a class='same'>";
      else :
        
    $listitem .= "><a href='" $page2["name"] . ".php'>";
      endif;
      
    $listitem .= $page2["linktext"] . "</a></li>";
      
    $pages2[$index2]["listitem"] = $listitem;
    endforeach; 
    ?>

        <nav>
        <ul id="navi" aria-label="Hauptmenü">
            <?php foreach ($pages as $page) : echo $page["listitem"]; endforeach; ?>
        </ul>
        </nav>
        <nav>
        <ul id="navi2" aria-label="Zusatzmenü">
            <?php foreach ($pages2 as $page2) : echo $page2["listitem"]; endforeach; ?>
        </ul>
        </nav>
    Eingebunden wird es in die Hauptdatei so:

    HTML-Code:
    <!DOCTYPE HTML>
    
    <html lang="de">
    <head>	
    	<?php include './include/common-head.php';
    	?>
    	...
    
    </head>
     
    <body>
    	<?php include './include/header-de.php';
    	?>
    	<?php include './include/nav-de.php';
    	?>
    
        <main>
    	<div class="inhalt">
    
    ...
    Aber auch wenn ich die Include-Datei alleine laufen lasse, sehe ich zu Hause das Menü (wenn auch ohne Formatierung), online aber den Fehler:
    Code:
    Parse error: syntax error, unexpected '[' in /var/www/..../include/nav-de.php on line 2
    Wie kommt das zustande? Was kann ich machen, damit es funktioniert? Läuft auf dem Server des Anbieters eine andere PHP-Version? Bin Anfängerin im Scripting und habe bisher nur HTML und CSS genutzt. Deshalb mache ich auch keine gefährlichen Sachen wie Kontaktformulare.

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Habe jetzt hier https://sandbox.onlinephpfunctions.com getestet, dass dieser Fehler bei php-Versionen < 5.4.0 auftritt. Finde ich irgendwo eine Anleitung für die richtige Syntax für php 5.3.x?

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    OK, habe gefunden, dass es an der verkürzten Array-Schreibweise liegt. Sorry, irgendwie finde ich die Lösung oft viel leichter, nachdem ich gefragt habe.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •