Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd unexpected t_variable on line 1 na serwerze OVH
Forum PHP.pl > Forum > PHP
fakir
Witam,
Mam problem.
Przygotowałem sobie prosta stronę w PHP, z includowaniem menu i nagłówka strony. Dodałem zmienne tekstowe, aby ladnie mi podświetlało aktualny dział na stronie + był odpowiedni tytuł strony w tagu <title></title>
Strona na serwerze Apache w XAMPP mi działa bez problemu, a jak wgrywam na serwer OVH (ten darmowy dodawany do domen, Start 10M chyba, obsługuje PHP), to wszystko się pieprzy:

Cytat
Parse error: syntax error, unexpected '$pageTitle' (T_VARIABLE) in /.../proj/index.php on line 1



index.php :

  1. <?php
  2. $pageTitle = 'Home';
  3. include 'include/header.php';
  4. ?>
  5. <body id="hmp">
  6. <?php
  7. $page = 'home';
  8. include 'include/nav.php';
  9. ?>
  10. <div class="container">
  11. <div id="textlayer">
  12. <h1 class="hpheader">Lorem ipsum</h1>
  13. </div>
  14. </div>
  15. <?php include 'include/footer.php'; ?>
  16.  
  17. </body>
  18. </html>


include/header.php:
  1. <!DOCTYPE HTML>
  2. <html lang="en">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4. <title><?php echo $pageTitle; ?></title>
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200italic,400italic' rel='stylesheet' type='text/css'>
  7. <link rel="stylesheet" type="text/css" href="style.css" media="screen">
  8. <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
  9. <!--[if lt IE 9]>
  10. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  11. <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
  12. <![endif]-->
  13. <script type="text/javascript">
  14. var originalNavClasses;
  15. function toggleNav() {
  16. var elem = document.getElementById('projnav');
  17. var classes = elem.className;
  18. if (originalNavClasses === undefined) {
  19. originalNavClasses = classes;
  20. }
  21. elem.className = /expanded/.test(classes) ? originalNavClasses
  22. : originalNavClasses + ' expanded';
  23. }
  24.  
  25. </head>


include/nav.php:

  1. <header>
  2. <div class="container">
  3. <div class="projlogo"><a href="index.php" title="" class="abtn" <?php echo ($page == 'home') ? 'class="current"' : '';?>></a></div>
  4. <a href="java script:toggleNav();" id="menu-icon"></a>
  5. <nav id="projnav">
  6. <ul class="menu">
  7. <li><a href="index.php" title="Home" <?php echo ($page == 'home') ? 'class="current"' : '';?>>Home</a></li>
  8. <li><a href="about.php" title="About" <?php echo ($page == 'about') ? 'class="current"' : '';?>>About</a></li>
  9. <li><a href="contact.php" title="Contact" <?php echo ($page == 'contact') ? 'class="current"' : '';?>>Contact</a></li>
  10. </ul>
  11. </nav>
  12. </div>
  13. </header>



Myślałem, że to wina Doctype z HTML5, ale nawet jak go usuwam to nic nie pomaga. Wersja PHP na obu serwerach jest ta sama (na moim Apache w XAMPP i na OVH, zmieniłem tam na 5.4).
Z góry dziękuję bardzo za pomoc. Pozdrawiam
ber32
Witam.
  1. include 'include/header.php';
to pierwsze a potem reszta
fakir
Dzięki za odpowiedź.
Zmieniłem to miejscami, czyli sam początek pliku index.php wygląda tak:
  1. <?php
  2. include 'include/header.php';
  3. $pageTitle = 'Home';
  4. ?>

Szczerze, też tak próbowałem wcześniej, ale wtedy pojawia się znów taki błąd:

Cytat
Parse error: syntax error, unexpected ''include/header.php'' (T_CONSTANT_ENCAPSED_STRING) in /(...)/proj/index.php on line 1
b4rt3kk
Zmień w includowanym pliku:

  1. ?>
  2. <!DOCTYPE HTML>
  3. <html lang="en">
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title><?php echo $pageTitle; ?></title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200italic,400italic' rel='stylesheet' type='text/css'>
  8. <link rel="stylesheet" type="text/css" href="style.css" media="screen">
  9. <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
  10. <!--[if lt IE 9]>
  11. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  12. <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
  13. <![endif]-->
  14. <script type="text/javascript">
  15. var originalNavClasses;
  16. function toggleNav() {
  17. var elem = document.getElementById('projnav');
  18. var classes = elem.className;
  19. if (originalNavClasses === undefined) {
  20. originalNavClasses = classes;
  21. }
  22. elem.className = /expanded/.test(classes) ? originalNavClasses
  23. : originalNavClasses + ' expanded';
  24. }
  25.  
  26. </head>
  27. <?php


Nie dostrzegasz faktu, że includując plik "doczepiasz" jego zawartość? Kiedy byś zwyczajnie wkleił zawartość swojego header.php w miejsce include to byś dostrzegł, że umieszczasz HTML pomiędzy znacznikami php, co musi wyrzucić błąd.
fakir
Dzięki za odpowiedź, b4rt3kk, jednak niestety to dalej nie pomogło.
Zrobiłem jak napisałeś i błąd nadal występuje (dalej unexpected ''include/header.php'').

Pierwszy raz spotykam się z czymś takim, a osobiście uważam, że jako tako podstawy PHP znam. No i zastanawiające jest to, że na XAMPPie wszystko działa bez zająknięcia!

b4rt3kk
Kod niby wygląda w porządku, mimo to wyrzuca błąd składni, hmm. Zakomentuj więc linię z include i zobacz jakie wtedy błędy wyrzuci. Spróbuj może zamiast include funkcji require_once?
fakir
Nie uwierzycie, czego to była wina...

Wygląda na to, że na serwerze OVH nie łapie kodu PHP, gdy nie jest napisany w jednej linijce... serio!
W index.php na początku mam teraz:

  1. <?php $pageTitle = 'Home'; include 'include/header.php'; ?>
  2. <body id="splash">
  3. <?php $page = 'home'; include 'include/nav.php'; ?>


I śmiga aż miło - wszystkie błędy ustąpiły. Kto by przypuszczał, że w tym mógłby być błąd?
Dziękuję pięknie za pomoc i poświęcony przez Was czas.

Pozdrawiam!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.