Problem in PHP Code

New member
Hallo,

ich arbeite gerade an einem Loginsystem und habe ein Problem.
Folgene Fehlermeldung erscheint:

Parse error: syntax error, unexpected T_SL in /data/multiserv/users/548038/projects/1347874/www/Login/class/login.php on line 77

Die login.php:

PHP:
<?php

class login{

    private $id = NULL;
    private $name = NULL;
    private $passwort = NULL;
    private $email = NULL;
    private $session = NULL;
    private $dbconnection = NULL;
    
    public function __construct($sessionid){
        $this->dbconnection = new DB_MySQL();
        
        $this->session = $sessionid;
        
        if (isset($_POST['login'])===true && 
            isset($_POST['username'])===true && 
            isset($_POST['userpass'])===true){
            
             $this->name = $_POST['username'];
             $this->passwort = $_POST['userpass'];
             $this->login();
             return true;
        }
        
        if (isset($_GET['logout'])===true && $_GET['logout']==='1'){
                 $this->logout();
        }
    }
    
    private  function login(){
        $query = 'SELECT * FROM users
                  WHERE  
                    Name     = \''. mysql_real_escape_string($this->name) .'\' AND
                    Passwort = \''. mysql_real_escape_string(MD5($this->passwort)) .'\'
                  LIMIT 1;';
        
        $this->dbconnection->query(&$query);
        
        if($this->dbconnection->count()!==1){
            return false;
        } else {
            $row = $this->dbconnection->fetchRow();
            $this->email = $row['EMail'];
            $this->id    = $row['ID'];
            
            $this->logout();
            
            $query = 'UPDATE  
                          users
                      SET  
                        Session = \''. mysql_real_escape_string($this->session) .'\' 
                      WHERE 
                          ID =  '. $this->id .' 
                      LIMIT 1;';
            
            $this->dbconnection->query(&$query);            
            
            return true;
        }
    }
    
    public function logged_in(){
        $query = 'SELECT * 
                      FROM users
                  WHERE  
                    Session = \''. mysql_real_escape_string($this->session) .'\' 
                  LIMIT 1;';
        
        $this->dbconnection->query(&$query);
        
        return ($this->dbconnection->count()!==1) ? false : true;
    }
    
    public function showLogin(){
        echo <<<EOT 
<form method="post" action="">
<fieldset style="width:300px;text-align:right;position:absolute; left:20%; top:20%;">
 <legend>Benutzeranmeldung</legend>
    <br />
    <label for="textinput1">Benutzername</label>
    <input type="text" name="username">
    <br />
    <label>Passwort</label>
    <input type="password" name="userpass" id="textinput2">
    <br /><br />
  <button name="login" type="submit">Anmelden</button>

</fieldset>
</form>
            
EOT;
    }
    
    public function showLogout($text='Logout'){
        echo '<a href="?logout=1&sid=',$this->session,'">',$text,'</a>';
    }

    
    private function logout(){
        $query = 'UPDATE  
                      users
                  SET  
                    Session = NULL 
                  WHERE 
                      Session = \''. mysql_real_escape_string($this->session) .'\'
                  LIMIT 1;';
        
        $this->dbconnection->query(&$query);
    }
}

?>
Ich kenne mich nicht she rgut mit php aus und habe die Codes ausm Netz gezogen. Ich hoffe ihr könnt mir helfen.

Mit freundlichen Grüßen hallo2000
 
in Zeile 77 ist der Fehler.
Steht ja in der Fehlermeldung.
wie kann ich das Error-Reporting denn höher machen?
 
Du scherzkeks :) Ich will wissen was in der Zeile 77 ist habe keine editor hier grade und keine lust zum zählen.

PHP:
error_reporting(E_ALL|E_STRICT);
ganz nach oben ins script.
 
Jo ist klar ein Syntaxfehler

PHP:
public function showLogin(){
        echo '
<form method="post" action="">
<fieldset style="width:300px;text-align:right;position:absolute; left:20%; top:20%;">
 <legend>Benutzeranmeldung</legend>
    <br />
    <label for="textinput1">Benutzername</label>
    <input type="text" name="username">
    <br />
    <label>Passwort</label>
    <input type="password" name="userpass" id="textinput2">
    <br /><br />
  <button name="login" type="submit">Anmelden</button>

</fieldset>
</form>';
            
    }
Sollte funktionieren.
 
Hallo,

ich bins nochmal.
Ich arbeite gerade daran, das passend zum Code aus dem Ersten Code noch der Benutzername angezeigt wird, weil das ja ein Loginsystem ist.
Mein Problem ist aber nun, das der Benutzername nur das erstemal angezeigt wird und wenn man auf einer anderen Seite geht, ist der Benutzername auf einmal verschwunden und kommt auch nicht mehr wieder.
Wie kann ich das den machen, das der Benutzername auf jeder Seite angezeigt wird?

Mit freundlichen Grüßen hallo2000
 
Du musst hier mit der Session arbeiten.
Wenn der Login erfolgreich ist, dann packst du die ID vom User in die Session und kannst dann den Namen auslesen und darstellen.
Du musst ja eh auf jeder seite prüfen ob der user eingelogt ist oder nicht.
 
hä?
du weißst schon was eine Session ist oder? $_SESSION
Ich glaube dein Problem ist eher das du keinen schimmer hast was da oben in der KLasse überhaupt passiert, kann das sein?
 
Dafür muss man sich nicht entschuldigen. War ich ja auch mal.
Es ist nur schwer jemanden zu helfen der nicht versteht worüber man redet. Und dir jetzt code vorkauen möchte ich nicht, da du nichts dadurch lernst.

Es geht einfach kein weg vorbei sich mit den Grundlagen zu befassen. Und bitte schau wenn du mit irgendwelchen Tutorials arbeitest auf das Datum. Es geistern so viel schlechte Tutorials und code Beispiele im Netz rum, dass ist wirklich schlimm.



Das ist eine nette Seite zwar auch schon veraltet aber für die ersten schritte echt supper.
 

Online-Statistiken

Zurzeit aktive Mitglieder
0
Zurzeit aktive Gäste
135
Besucher gesamt
135

Neueste Themen

Beliebte Forum-Themen

X
Keine passende Antwort gefunden?