2016-11-20 1 views
-1

Ich erstelle eine Website mit einer Datenbank verknüpft (Schulprojekt, Neuling hier!), Die eine Anmeldung und Zugriff auf Informationen ermöglichen würde, aber ich bleibe immer mit diesem Fehler, egal was ich tue, um es zu ändern.

Parse-Fehler: Syntaxfehler, unerwartet '$ userID' (T_VARIABLE) in/Applications/XAMPP/xamppfiles/htdocs/Unit1/Datenbanken/Band Projekt/passCheck.php on line 38

Mein Code für die passcheck .php ist unten:

<p> 
    <?php 

    $email = $_POST["email"]; 
    echo $email; 
    echo "</br>"; 

    $password = $_POST["password"]; 
    echo $password; 
    echo "</br>"; 

    require_once 'config.php'; 

    require_once 'databaseclass.php'; 

    $db = new databaseclass($pdo); 


    $sql = "SELECT * FROM User WHERE email = '" . $email . "' AND password = '" . $password . "'"; 
    echo $sql; 
    echo "<br>"; 

    $rows = $db->query($sql)->fetchAll(); 
    $count = count($rows); 
    print_r($rows); 
    echo "<br>"; 
    echo $count; 

    if($count == 1){ 
     session_start(); 
      $_SESSION['firstname'] = $firstname; 
      $_SESSION["lastname"] = $lastname; 
      $_SESSION['userID'] = $userID; 
      $_SESSION['loggedin'] = true; 
      header('Location:http://localhost/Unit1/Databases/Band%20Project/homepage.php');} 
    else{ 

     session_destroy(); 
     $error = "Your Login Name or Password is invalid"; 
     header('Location:http://localhost/Unit1/Databases/Band%20Project/login.html'); 
     echo $error;} 

    ?>  
</p> 

Meine Config Seite lautet:

<?php 

$host = '127.0.0.1'; 
$db = 'bandProject'; 
$user = 'root'; 
$pass = ''; 
$charset = 'utf8'; 

try{wqcd 
     $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; 
     $opt = [ 
      PDO::ATTR_ERRMODE   => PDO::ERRMODE_EXCEPTION, 
      PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, 
      PDO::ATTR_EMULATE_PREPARES => false, 
     ]; 

    $pdo = new PDO($dsn, $user, $pass, $opt); 
} 
catch (PDOException $e) 
{ 
    exit('Error connecting to DataBase'); 

} 

Meine Sitzung PHP ist:

<?php 
require_once 'config.php'; 
session_start(); 

$user_check = $_SESSION['userID']; 


$ses_sql = mysqli_query($db,"select username from admin where username = '$user_check' "); 

$row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC); 

$login_session = $row['username']; 

if(!isset($_SESSION['login_user'])){ 
     header("location:http://localhost/Unit1/Databases/Band%20Project/login.html"); 
} 
?> 

Meine Homepage ist:

<h1><center><big><font color=#653C5E>Homepage</font></big></center></h1> 
    <BR> 
     <?php 
     require_once 'session.php' ; 
     if($count == 1){ 
     session_start(); 
      $_SESSION['firstname'] = $firstname; 
      $_SESSION['lastname'] = $lastname; 
      $_SESSION['userID'] = $userID; 
      $_SESSION['loggedin'] = true; 
      header('Location:http://localhost/Unit1/Databases/Band%20Project/homepage.php') 
      echo "Hello " . $firstname . " " . $lastname;} 
      //set all your session variables (firstname, lastname, userID)` 
      //should have from SQL results 
      //open homepage// 
     else{ 

      session_destroy(); 
      $error = "Your Login Name or Password is invalid"; 
      echo $error; 
      header('Location:http://localhost/Unit1/Databases/Band%20Project/login.html');} 

     ?> 

    <BR> 
      </BODY> 

+0

wo erstellen Sie die userID-Variable? – ChrisBull

+0

Ich glaube nicht, dass die akzeptierte Antwort hier die vollständige Lösung ist. Es ist offensichtlich, dass Sie eine Verbindung mit der PDO-API herstellen, aber dann die mysqli_-API verwenden, um innerhalb der Session-PHP-Datei abzufragen. Ganz zu schweigen von der Verwendung von Header und Echo in 'header ('Location: http: //localhost/Unit1/Databases/Band%20Project/homepage.php') echo" Hallo ". $ Vorname. "". $ lastname; 'wo das Echo nie passieren wird. Die Frage wurde aufgrund der folgenden Fehlermeldung beendet: 'Parse error: Syntaxfehler, unerwarteter '$ userID' (T_VARIABLE)'. –

+0

Zusatz zum oben genannten: * "echo $ error; header ('Ort: http: //localhost/Unit1/Databases/Band%20Project/login.html')" * - Das ist die Ausgabe vor dem Header, wo die Fehlerberichterstattung erfolgen würde habe Ihnen davon erzählt http://php.net/manual/en/function.error-reporting.php –

Antwort

-1

Versuchen;

$_SESSION['userID'] = $rows["userID"]; 
Verwandte Themen