Login.php Fehler

04/11/2015 19:08 Hazard۶-٩#1
Ich weiß nicht wo der Fehler liegt...

Fehlercode: Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\xampp\htdocs\login.php on line 78

Das ist die Zeile:

else
{
if(isset($_SESSION['email']))

CODE:

PHP Code:
<?php include("top.php"); ?>

<?php

$form
="

    <form action='login.php' method='POST'>
    
    <table cellspacing='10'>
        <tr>
            <td>Email</td> 
            <td><input type='text' name='email'></td>
        </tr>
        <tr>
            <td>Passwort</td> 
            <td><input type='password' name='passwort'></td>
        </tr>
        <tr>
            <td></td> 
            <td><input type='submit' name='loginAbsenden' value='Anmelden'></td>
        </tr>
    </table>
    </form>

"
;


include(
"connect.php");

$email = (isset ($_POST['email']));
$passwort = (isset ($_POST['passwort']));
if(isset(
$_POST['loginAbsenden']));
{
    if(
$email != "" && $passwort != "")
    {
        
$email mysql_real_escape_string($email);
        
$passwort md5($passwort);
        
        
$abfrage mysql_query("SELECT * FROM spieler WHERE email='$email'");
        
        if(
mysql_num_rows($abfrage) > 0)
        {
            
$db mysql_fetch_assoc($abfrage);
            
            if(
$db['passwort'] == $passwort)
            {
                
$spielerid $db['id'];
                
$name $db['name'];
                
$passwort $db['passwort'];
                
$email $db['email'];
                
$level $db['level'];
                
$exp $db['exp'];
                
                
$_SESSION['id'] = $spielerid;
                
$_SESSION['name'] = $name;
                
$_SESSION['passwort'] = $passwort;
                
$_SESSION['email'] = $email;
                
$_SESSION['level'] = $level;
                
$_SESSION['exp'] = $exp;
                
                echo 
"SIe haben sich erfolgreich Angemeldet! <b>$name</b>";
            }
            else
            {
            echo 
"Sie haben ein falsches Passwort eingegeben";    
            }            
        }
        else
        {
            echo 
"Der Benutzer ist nicht vorhanden!";
        }
    }
    else
    {
        echo 
"Bitte füllen sie alle Felder aus!";
    }
}
    else
{
    if(isset(
$_SESSION['email']))
    {
        echo 
"<a href='logout.php'>Abmelden</a>";
    }
    else
    {
        echo 
$form;
    }
}



?>

<?php include("bottom.php"); ?>
04/11/2015 19:20 Syc#2
Code:
if(isset($_POST['loginAbsenden']));
da ist schon mal ein Semikolon zu viel.
04/11/2015 19:24 Hazard۶-٩#3
Notice: Undefined index: email in C:\xampp\htdocs\login.php on line 30

Notice: Undefined index: passwort in C:\xampp\htdocs\login.php on line 31

Notice: Undefined index: loginAbsenden in C:\xampp\htdocs\login.php on line 32


was das jetze ....
04/11/2015 19:56 Analysis'#4
Lad das mal bei pastebin.com hoch. Keine Lust jetzt die ganze Zeit nach der Zeile zu suchen.
04/11/2015 20:22 Hazard۶-٩#5
[Only registered and activated users can see links. Click Here To Register...]


Hier ^^
04/11/2015 22:48 Analysis'#6
Was machen denn die Klammern darum?

PHP Code:
$email = ($_POST['email']);
$passwort = ($_POST['passwort']); 
richtig ist
->

PHP Code:
$email $_POST['email'];
$passwort $_POST['passwort']; 
04/11/2015 23:01 Hazard۶-٩#7
dann kommt immernoch

Notice: Undefined index: email in C:\xampp\htdocs\login.php on line 30

Notice: Undefined index: passwort in C:\xampp\htdocs\login.php on line 31
04/11/2015 23:41 Peachu#8
Habe mich mal daran gewagt. Sollte eigentlich so passen, hoffe ich habe nichts übersehen.

Das was ich gefundne habe habe ich dir verbessert und hingeschrieben was ich gemacht habe.

PHP Code:
<?php 

//include durch require_once ersetzt damit wenn die Datei nicht vorhanden ist auch der Rest nicht funktioniert und nicht nur ein "Warning" ausgegeben wird.
//Alternativ kannst du auch um statt dem Error einen Warning zu bekommen include_once verwenden.
require_once("top.php"); 

$form "

    <form action='login.php' method='POST'>
    
    <table cellspacing='10'>
        <tr>
            <td>E-mail</td> 
            <td><input type='text' name='email'></td>
        </tr>
        <tr>
            <td>Passwort</td> 
            <td><input type='password' name='passwort'></td>
        </tr>
        <tr>
            <td></td> 
            <td><input type='submit' name='loginAbsenden' value='Anmelden'></td>
        </tr>
    </table>
    </form>

"
;

//include ersetz durch require_once
require_once('connect.php');

if(isset(
$_POST['loginAbsenden']))
{
    
    
// Die Variablen $email und $passwort verschiebe ich hierhin damit du erst Abfragst ob dieses Event über stattgefunden hat.
    //Sonst würde er dir dort einen null Wert eintragen da dort noch nichts enthalten sein kann.
    
$email $_POST['email'];
    
$passwort $_POST['passwort'];
    
    
//Statt $email != "" verwende ich an dieser Stelle !empty
    
if(!empty($email) && !empty($passwort))
    {
        
$email mysql_real_escape_string($email);
        
$passwort md5($passwort);
        
        
$abfrage mysql_query("SELECT * FROM spieler WHERE email='$email'");
        
            if(
mysql_num_rows($abfrage) > 0)
            {
                
$db mysql_fetch_assoc($abfrage);
                
                if(
$db['passwort'] == $passwort)
                {
                        
                    
//Die oberen Variablen waren eigentlich überflüssig weßhalb ich dir das direkt in die $_SESSION schreiben.
                        
                    
$_SESSION['id'] = $db['id'];
                    
$_SESSION['name'] = $db['name'];
                    
//$_SESSION['passwort'] = $db['passwort']; // Das Passwort sollte man nicht an die $_SESSION übergeben.
                    
$_SESSION['email'] = $db['email'];
                    
$_SESSION['level'] = $db['level'];
                    
$_SESSION['exp'] = $db['exp']; // überflüssiges ; entfernt
                    
                    
$db null;
                    
                    echo 
"Sie haben sich erfolgreich Angemeldet! <b>$name</b>";
                }
                else
                {
                echo 
"Sie haben ein falsches Passwort eingegeben";    
                }            
            }
            else
            {
                echo 
"Der Benutzer ist nicht vorhanden!";
            }
    }
    else
    {
    echo 
"Bitte füllen sie alle Felder aus!";
    }
}
//Ich hoffe, dass es richtig war bzw ich es alles richtig erfasst habe. Du hattest soweit ich es gesehen habe
// einen else{} zu viel. Ich habe dir die $_SESSION-Abfrage jetzt in das else{} der "isset($_POST['loginAbsenden'])" gesteckt.
// Also er fragt ab ob du den Button gedrückt hast. Wenn nicht wird überprüft ob $_SESSION['email] vorhanden und NICHT leer ist.
// Anschließend wird falls dem so ist dir der Logout bzw. Abemelden Button ausgegeben.
// Sollte dieser jedoch nicht gesetzt oder leer sein wird dir die Form ausgeben um dich einzuloggen.

// Wenn du nachher deine $_SESSIOn auflöst beim Logout setz alle $_SESSION['xy'] = ''; also leer machen.
// Anschließend zerstörst du die $_SESSION mit ich glaube es heißt session_destroy();
else
{
    
    if(isset(
$_SESSION['email']) && !empty($_SESSION['email']))
    {
        echo 
"<a href='logout.php'>Abmelden</a>";
    }
    else {
        
        echo 
$form;
        
    }
    
}



// Wieder require_once
require_once("bottom.php"); 

// Da du an dieser Stelle kein HTML mehr ausgibst brauchst du auch kein PHP-Endtag setzen.
Bei Fragen oder Problemen adde mich einfach in Skype, schreib' es hier in den Thread oder meld' dich privat mir egal :)
04/11/2015 23:48 Hazard۶-٩#9
Ich adde dich mal!