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

Parse error: syntax error, unexpected $end in C:\xampp\htdocs\....

djfabi

Mitglied
Hallo,

Hilfe ich bin am Verzweifeln! Ich habe hier ein Login Script mit Sessions, bekomme aber immer Diese Fehlermeldung.

Hab schon auf Klammerfehler getestet aber nix klappt.

Hoffe ihr könnt mir helfen ;-)

1:

PHP:
<html><head>
</head><body><?php   /* Session starten oder wieder aufnehmen */   session_start();
   /* Falls Aufruf von Login-Seite */   if(isset($_POST["e"]) && isset($_POST['p']))   {
     mysql_connect("", "root");     mysql_select_db("test1");
     $sqlab = "select email from user";     $sqlab = "select passwort from user";     $sqlab .= "where email like " . $_POST["e"];     $sqlab .= "where passwort like " . $_POST["p"];
     $res = mysql_query($sqlab);     $num = mysql_num_rows($res);     if($num==0) {
     echo "Keine passenden Datens&auml;tze gefunden.";      }
      else {         $userid = $res["userid"];
         $_SESSION["user_logged_in"] = $userid;      }


   /* Kontrolle, ob innerhalb der Session */   include "sc_schutz.inc.php";?>

<h3>Intro-Seite</h3><?php   /* Begrüßung des Benutzers */   echo "<p>Hallo " . $_SESSION["user_logged_in"] . "</p>";?><p><a href="sc_schutz_c.php">Zur beliebigen Seite</a></p><p><a href="sc_schutz_a.php">Logoff</a></p></body></html>




2:

PHP:
<?php   /* Kontrolle, ob innerhalb der Session */   if (!isset($_SESSION["user_logged_in"]))   {      echo "<p>Da ist wohl etwas schief gelaufen. Versuche es nocheinmal !</p>";      echo "<p><a href='index.php'>Zum Login</a></p>";      echo "</body></html>";      exit;   }?>









Bitte helft mir!

Danke ;)
 
klammern zählen

ich editiere mal deinen text dann siehst du es
PHP:
<?php
echo '<html>';
echo '<head>';
echo '</head>';
echo '<body>';

 /* Session starten oder wieder aufnehmen */   
session_start();
  
/* Falls Aufruf von Login-Seite */   
if(isset($_POST["e"]) && isset($_POST['p']))   
{
  mysql_connect("", "root");     
  mysql_select_db("test1");     
  $sqlab = "select email from user";     
  $sqlab = "select passwort from user";    
  $sqlab .= "where email like " . $_POST["e"];    
  $sqlab .= "where passwort like " . $_POST["p"];
  $res = mysql_query($sqlab);    
 
  $num = mysql_num_rows($res);    
  if($num==0) 
  {
    echo "Keine passenden Datens&auml;tze gefunden.";      
  }
  else 
  {         
    $userid = $res["userid"];
    $_SESSION["user_logged_in"] = $userid;      
  }

/* Kontrolle, ob innerhalb der Session */   
include "sc_schutz.inc.php";

echo '<h3>IntroSeite</h3>';

/* Begrüßung des Benutzers */   
echo "<p>Hallo " . $_SESSION["user_logged_in"] . "</p>";
echo '<p><a href="sc_schutz_c.php">Zur beliebigen Seite</a>';
echo '</p><p><a href="sc_schutz_a.php">Logoff</a></p></body></html>';
?>

und ?
 
Zuletzt bearbeitet:
Erstmal danke für deine schnelle Antwort und zu deinem 100 Post :DD

Aber nun mal zur Sache:

ICh bekomme immer noch die Fehler Meldung... Kann es vllt. auch am MySQL liegen, also dieser Teil hier :

PHP:
mysql_connect("", "root");     
  mysql_select_db("test1");     
  $sqlab = "select email from user";     
  $sqlab = "select passwort from user";    
  $sqlab .= "where email like " . $_POST["e"];    
  $sqlab .= "where passwort like " . $_POST["p"];
  $res = mysql_query($sqlab);    
 
  $num = mysql_num_rows($res);    
  if($num==0) 
  {
    echo "Keine passenden Datens&auml;tze gefunden.";      
  }
  else 
  {         
    $userid = $res["userid"];
    $_SESSION["user_logged_in"] = $userid;      
  }

?
 
hast du denn die klammern gezählt?

PHP:
..........
/* Falls Aufruf von Login-Seite */   
if(isset($_POST["e"]) && isset($_POST['p']))   
{
  mysql_connect("", "root");     
  mysql_select_db("test1");    
.......

das wird nicht geschlossen!
 
Ohhh... danke, das kommt davon wenn man einen ganzen Abend vor dem PC sitz und den Fehler sucht...

DANKE!
 
Ich rate dir im Übrigen an, den Code ordentlich einzurücken und gängige Standards zumindest einzuhalten.
Ein Statement pro Zeile und bei jedem Codeblock (if, else, while, for, foreach usw.) immer um eine Einheit (4 Leerzeichen oder Tab) einrücken.


PHP:
<?php
if (isset($_POST['id'])) {
    $id = (int)$_POST['id'];
    $sql = 'select * from users where user_id = ' . $id;
    $result = mysql_query($sql);
    if ($row = mysql_fetch_assoc($result)) {
        if ($row['username'] === 'Admin') {
            echo 'Hallo Chef';
        } else {
            echo 'Hallo Nichts';
        }
    } else {
        echo 'User-Id unbekannt.';
    }
} else {
    ?>
<form>...</form>
    <?php
}
?>

Da bemerkt man sofort, ob und was fehlt.
 
ich habe mir angewöhnt klammern sofort zu schliessen damit ich das problem nicht habe.

also so:

beispiel schritt 1:
PHP:
if()

beispiel schritt 2:
PHP:
if($a = $_POST[])

beispiel schritt 3:
PHP:
if($a = $_POST['a'])
{
}

beispiel schritt 4:
PHP:
if($a = $_POST['a'])
{
  echo ''
}

beispiel schritt 5:
PHP:
if($a = $_POST['a'])
{
  echo 'FOOBAR';
}

somit hast du nicht das prob das du klammern vergessen kannst
wenn du eine klammer öffnest schliesse direkt und hacke den code in die klammern.
und wie ich im post etwas weiter oben beschrieben habe. EINRÜCKEN!

wenn du nicht einrückst kannst du fehler schlechter erkennen.

mfg
 
Zurück
Oben