PHP-Skript Cut and Paste Fehler

Hi,

ich weiss nicht recht ob es hier reingehört (oder in einen anderen Bereich), aber ich mir ist ein Fehler "begegnet" der mich unheimlich irritiert.
Ich beschäftige mich grade ein wenig mit PHP und habe mir dazu ein Ebook von meiner Stadtbibliothek ausgeliehen, dieses ist geschützt so das ich es nur lesen kann wenn ich online bin (Halt der normale pdf/DRM Kram).

Nun habe ich ein Beispielskript aus besagten Buch kopiert (In Zwischenablage kopieren) und per Notepad2 in eine Datei eingetragen.
Das führte allerdings zu Parse-Fehlern.

Das Skript an sich war so schon richtig (habs auch zeilenweise aus/einkommentiert) und lief vor allem fehlerfrei als ich es im selben Notepad2-Fenster haarklein abgetippt habe (das reinkopierte dann gelöscht).

Nun könnte ich mich ja einfach damit abfinden das ich die Sachen eben eintippen muss, aber ich verstehe einfach nicht wie DERSELBE Text in Klartext einmal falsch und einmal richtig sein kann. Zeichenkodierung? 'Unsichtbare' DRM-Tricks? Ich würds einfach gerne wissen...

Der Fehler lässt sich auch mit einzelnen, trivialen Zeilen beim kopieren reproduzieren, bei HTML-Code geht es.
Meine Einrichtung:
- Windows XP Pro SP3
- Acrobat Reader 7
- Notepad 2
- XAMPP-Installation

Wäre schön wenn ich nicht dumm sterben müsste...
 
Es waere vielleicht Hilfreich wenn du die Fehlermeldung mitsamt Code (Copy&Paste und der abgetippte) hier posten wuerdest.

- MfG Keks :)
 
Es ist so wie ichs geschrieben hab, nach menschlichem ermessen (na gut, nach meinem) sind die beiden Versionen identisch (bis auf die Whitespaces).

Aber der Vollständigkeit halber hast du recht, wir ham ja Platz :)

Skript1:(cut+paste)
Code:
<html>
  <head>    
    <title>Einfache MySQL-Abfrage mit PHP, mysqli-Version</title>  
  </head>
  <body>
    <h1>Einige Länder, ihre Hauptstädte und Kontinente</h1>
    <table border="2" cellpadding="4">      
      <tr>        
        <th>Land</th>
        <th>Hauptstadt</th>
        <th>Kontinent</th>      
      </tr>
      </table>
      
    <?php
      $host = "localhost";
      $user ="*****";
      $pass ="*****";
      $db   ="geotest";
      // Datenbankverbindung herstellen
      $connID = mysql_connect($host, $user, $pass); 
      //Datenbank auswählen  
      mysql_select_db ($db);  
      // MySQL-Abfrage  
      $result = mysql_query ("SELECT * FROM laender ORDER BY land ASC");
      
        // Schleife zum Auslesen und Anzeigen der Ergebnisse  
      while (list ($land, $hauptstadt,$kontinent) = mysql_fetch_row ($result)) 
      {    
        echo "<tr>\n";
        echo "<td>$land</td>\n";
        echo "<td>$hauptstadt</td>\n";
        echo "<td>$kontinent</td>\n";    
        echo "</tr>\n";  
       }  
       // Datenbankverbindung schließen  
       mysql_close();
     ?>    
     
   </body>
</html>

Ist das kopierte, jetzt direkt aus dem Notepad. Ergibt die Fehlermeldung:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\test.php on line 16

Skript2: (abgetippt)
Code:
<html>
  <head>    
    <title>Einfache MySQL-Abfrage mit PHP, mysqli-Version</title>  
  </head>
  <body>
    <h1>Einige Länder, ihre Hauptstädte und Kontinente</h1>
    

    
    <table cellpadding="4" border="2">    
      <tr>        
        <th>Land</th>
        <th>Hauptstadt</th>
        <th>Kontinent</th>      
      </tr> 
<?php
$host="localhost";
$user="*****";
$pass="*****";
$db="geotest";
//Datenbankverbindung herstellen
$connID=mysql_connect($host,$user,$pass);

//Datenbank auswählen
mysql_select_db ($db);
//MySQL-Abfrage
$result=mysql_query("SELECT * FROM laender ORDER BY land ASC");
//Schleife zum Auslesen und Anzeigen der Ergebnisse
while (list($land,$haupstadt,$kontinent)=mysql_fetch_row($result))
{
  echo "<tr>\n";
  echo "<td>$land</td>\n";
  echo "<td>$haupstadt</td>\n";
  echo "<td>$kontinent</td>\n";
  echo "</tr>\n";
}  

//Datenbankverbindung schliessen
mysql_close();
?>
</table>
   </body>
</html>

Das wiederrum läuft einfach wies soll. Alle Datensätze ausgeben.
(Habe natürlich user und pass gesternt, absichtlich jetzt nicht eingerückt)



Ich probier jetzt gleich nochmal skript1 aus dem Forum zu kopieren...


EDIT: Und siehe da aus dem Forum kopiert, läuft auch Skript1. Aber nicht wenn ich es z.B. von Notepad2 zu Notepad2 kopiere. Auch nicht über den Umweg einer anderen Anwendung (wordpad)
 
Also in dem Script das du gepostet hast ist kein Fehler drin,
Kann natuerlich daran liegen dass das Board-Script hier eventuell seine Finger im Spiel hat...

Ich vermute mal, dass sich da irgendwo ein Sonderzeichen (nicht Sichtbar) im Code befindet, das diesen Fehler verursacht...

Besser als Code hier zu posten waere dann wohl das Script (Die Datei) das den Fehler verursacht hier zu verlinken.

MfG - Keks :)
 
Hmm, ist dann wohl doch etwas viel Aufwand, aber danke für die Aufmerksamkeit ;)

Nur noch soviel: Mit Anzeige aller Whitespaces und Line-Endings in Notepad2 war kein verstecktes Zeichen zu finden...

Danke nochmal..
 
nur am rande, weiß nicht ob das Stimmt.

Bei dem Tutorial wo ich PHP gelernt habe wurde darauf hingewiesen das man die Scripte nicht mit Copy&Paste nutzen sollte (einerseits wegen dem Lerneffekt) andererseits weil er dann vor dem <?PHP etwas einfügt wo Probleme entstehen können, habe es nie getestet, aber vielleicht hat des ja was damit zu tun.

Schreib einfach mal in ne PHP datei

Code:
<?php

?>
Und füge den rest vom code per copy&paste ein, vielleicht liegts ja daran.

gruß
chris
 
Zurück
Oben