• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

$end Problem

Marko10_000

Neues Mitglied
Es tut mir schrecklich leid aber dieser Fehler ist mir leider unterlaufen und ich kann ihn leider nicht finden. Kann jemand mir villeich weiterhelfen?
PHP:
<?php
function Top($Name, $Page)
{
  //Top
  //Schauen ob es die Anmeldung ist
  if($Page == 0)
  {
    //Anmeldemaske
    ?><?php
    Botton();
  }
  else
  {
    if($Page == 1)
    {
      //1 Frage
      TopFrage($Name);
      Frage(1, "Frage");
      Botton();
    }
    else
    {
      //andere Frage, Nummer heraus filtern
      $Nummer = INT($Page);
      TopFrage($Name);
      Frage($Nummer);
      Botton();
    }
  }
  return;
}
function TopFrage($Name)
{
  //Dahrstellung
  ?><?php
  return;
}
function Frage($Page)
{
  //Fragen
  ?><form action="index.php?page=<?php
  if($Page + 1 <= count($Frage))
  {
    echo $Page +1;
  }
  else
  {
    echo "H"; //Highscore
  }
  ?>" method="post"><?php echo "\n";
  $Frage = array(".", ".", ".", ".", ".");
  $Art = array(1, 0, 1, 1, 1); //1 = Mulitplichouis  2 = Textfeld
  $Antworten = array("dfdf|dfdfdf|sdfsdf", "dfdfd|dfdfdf" => 2);
  //SYSTEM
  $Fragen = count($Frage);
  $Fragen = $Fragen + 1;
  if($Page == 1)
  {
    //Ausnahme
  }
  else
  { 
    $Zahl = 1;
    while($Zahl == $Page - 1)
    {
      ?><input value="<?php
      echo $_POST["Frage"+$Zahl];?>" name="<?php
      echo "Frage$Zahl";?>" type="hidden"><? echo "\n";
      $Zahl++;
    }
  }
  ?><h2><?php echo $Frage[$Page-1];?></h1><br><?php
  if($Art[$Page-1] == 1)
  {
    $Antwort = preg_split($Antworten[$Page - 1]);
    $Zahl = count($Zahl);
    $Zahlen = 1;
    while($Zahl == $Zahlen)
    {
      ?><input type="radio" name="Frage<?php echo $Page; ?>" value="<?php echo $Zahlen ; ?>"> <?php echo $Antwort[$Zahlen - 1]; ?><br><?php
      $Zahlen++;
    }
  }
  else
  {
    ?> <input type="text" name="Frage<?php echo $Page; ?>"><br><?php
  }
  ?></from><?php
  return;
}
function Botton()
{
  //Botton
?><?php
  return;
}
function Start()
{
  //Cooki suchen
  if(isset($_COOKIE["name"]))
  {
    $Name = $_COOKIE["name"];
    $Page = $_POST["page"];
    Top($Name, $Page);
  }
  else
  {
    //Hier muss man sich jetzt anmelden
    //Erst mahl schauen ob sich gerade einer anmeldet
    if(isset($_POST["login"]))
    {
       //Es versuch sich einer Anzumelden
       //nun Anmelden
       setcookie("name", $_POST["name"]);
       //nun fragen anzeigen
       Top($Name, 1);
    }
    else
    {
      //Anmeldemaske
      Top("", 0);
    }
  }
  return "Hallo";
}
Start(); 
?>
Als flas jemand anders noch ein fehler findet soll er es mir bitte sagen.
 
Zähl mal die Anzahl der geschweiften Klammern { und }. Stimmt die Anzahl der öffnenden Klammern mit der Anzahl der Schließenden überein?
 
Willkommen im Forum!

Schildere bitte genauer, wo es hakt. "$end" deutet auf einen Parse-Error hin, der aber in dem geposteten Code nicht auftritt.

Das Mischen von HTML- und PHP-Abschnitten innerhalb von Funktionskörpern ist unüblich und völlig unübersichtlich. Versuche nach Möglichkeit, die HTML-Ausgabe von der Programmlogik zu trennen und erst ganz zum Schluss der Programmausführung zu beginnen, wenn alle notwendigen Daten (Aktuelle Frage, Name, ...) vorliegen.

Edit: Korrigiere. In Zeile ~68 hat es einen Shorttag (<? statt <?php). Das ist sicher die Ursache.
 
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\Internet System\index2.php on line 127
ist die Meldung
ich sehe keine fehler bei den Öffnungen der Klammer und zu dem <?php das geht, steht in meinem Buch und das PHP5.3. Bei Mir mach localhost(XAMPP) leider bei echo "<HTML>"; aus irgend ein grund ein Fehler,warum weiß ich nicht(???).
 
Das geht, wenn short_open_tag auf "On" steht, was bei dir nicht der Fall ist.

Durchsuche im Zweifel die PHP-Info deines Servers nach "short_open_tag".

PHP:
<?php

phpinfo();

Da diese Einstellung manchmal auf "Off" steht, wird gemeinhein davon abgeraten, <?...?> als Ersatz für <?php...?> zu verwenden.
 
Wenn du in Zeile 68 das <? zu einem <?php machst? Dann wird es bei mir zumindest sauber durchgeparst. Falls das nicht das Problem sein sollte, ist "geht nicht" keine Fehlerbeschreibung.
 
Zurück
Oben