ingobar: Leerzeichen in inkludierten Dateien machen Probleme

Beitrag lesen

Hallo zusammen,

ich kämpfe hier mit einem ganz merkwürdigen Problem. Ich habe eine Seite in php codiert, die es aber in zwei Varianten geben soll. Kopf und Fuß der Seiten sollen aber gleich sein. Ich habe daher die alte php-Seite genommen und die sich ändernden Elemente in sepearate php-Dateien ausgelagert:

<?php
 if ($oldId>0) {
  include 'metadaten_sa_ex_old.php';
  include 'noten_tabelle_old.php';
 } else {
  include 'metadaten_sa_ex.php';
  include 'noten_tabelle.php';
 }
 ?>

Jetzt bekomme ich aber ständig Fehlermeldungen, wenn ich in den inkludierten Dateien den php-Code über mehrere Zeilen habe:

<?php
$idx=1; $schuler_ids = "";
while ($curschuler = mysql_fetch_assoc($schulerData)) {
 echo "<tr><td>$idx</td><td>$curschuler[name],&nbsp;$curschuler[vname]</td><td>&nbsp;</td><td><input type="text" size="2"></td></tr>";
 $idx++; $schuler_ids .= "$curschuler[id],";
}
?>

Ich bekomme dann immer folgende Fehlermeldung:

syntax error, unexpected T_VARIABLE in /Users/ingobartling/Sites/classmanager/php/noten_tabelle.php on line 1

Nicht nur das die Fehlermedlung einem nicht weiterhilft. Ich dachte auch, dass er z.B. die Variable $schulerData gar nicht kennt, die ich in der inkludierenden Datei definiert habe.

Wenn ich den ganzen Code aber in eine lange Zeile schreibe:

<?php $idx=1; $schuler_ids = ""; while ($curschuler = mysql_fetch_assoc($schulerData)) { echo "<tr><td>$idx</td><td>$curschuler[name],&nbsp;$curschuler[vname]</td><td>&nbsp;</td><td><input type="text" size="2"></td></tr>"; $idx++; $schuler_ids .= "$curschuler[id],";} ?>

geht alles wunderbar.

Kann mir den Effekt mal jemand erklären und sagen, ob ich etwas falsch mache, ob ich irgendwas, wenn ja was, anders machen sollte.