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

php Loginscript

Fabiii321

Mitglied
Hallo zusammen,
hallo ich habe ein Problem und zwar wenn ich die Website öffne und das Login-Script ausführe kommt diese Fehlermeldung:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in /var/customers/webs/fabiii9/technik/login_check.php on line 40

Hier der Code:
PHP:
<?php
    session_start ();
    $verhalten = 0;
    
    if(!isset($_SESSION["username"]) and !isset ($_GET["page"])) {
     $verhalten = 0;
    }
    if ($_GET["page"] == "log") {
    /*
    $user = $_POST["user"];
    $passwort = $_POST["passwort"];
    */
    $user = strtolower ($_POST["username"]);
    $passwort = md5 ($_POST["passwort"]);
    
    $verbindung = mysql_connect("localhost","***","***")
    or die ("Fehler im System");
    
    mysql_select_db ("fabiii9sql14")
    or die ("Verbindung zur Datenbank war nicht möglich...");
    
    $control = 0;
    $abfrage = "SELECT * FROM login WHERE username = '$user' AND passwort = '$passwort'";
    $ergebnis = mysql_query($abfrage);
    while ($row = mysql_fetch_object ($ergebnis))
      {
        $control++;
      }
      
if ($control !=0) {
  $_SESSION["username"] = $user;
  $verhalten = 1;  
} else {
$verhalten = 2;
}
    }

if($verhalten == 1) {
echo ("Du wurdest erfolgreich eingeloggt!!!")
}    
?>

Was mach ich falsch ?
Finds nicht.
Vielen Dank für eure Bemühungen
Gruß
Fabi
 
Und wenn ich erwähnen darf, sowas ist einfach nur grausam:
PHP:
$control = 0;
    $abfrage = "SELECT * FROM login WHERE username = '$user' AND passwort = '$passwort'";
    $ergebnis = mysql_query($abfrage);
    while ($row = mysql_fetch_object ($ergebnis))
      {
        $control++;
      }
Und den User einfach so zu übernehmen, ist fahrlässig!
 
Und wenn ich erwähnen darf, sowas ist einfach nur grausam:
PHP:
$control = 0;
    $abfrage = "SELECT * FROM login WHERE username = '$user' AND passwort = '$passwort'";
    $ergebnis = mysql_query($abfrage);
    while ($row = mysql_fetch_object ($ergebnis))
      {
        $control++;
      }
Und den User einfach so zu übernehmen, ist fahrlässig!

Natürlich darf du das erwähnen aber dann Zeig ihm auch wie man es Richtig macht!
 
Hallo,
vielen Dank für eure Antworten.
Oh sorry das habe ich einfach übersehen und Fehlermeldung konnte ich wohl auch nicht lesen. Entschuldigt !

Soh jetzt habe ich das ausgeführt doch es funktioniert nicht.
Es kommt aber keine Fehlermeldung sondern einfach nur eine weiße Seite.

Was mach ich falsch ???
PHP:
<?php
    session_start ();
    $verhalten = 0;
    
    if(!isset($_SESSION["username"]) and !isset ($_GET["page"])) {
     $verhalten = 0;
    }
    if ($_GET["page"] == "log") {
    /*
    $user = $_POST["user"];
    $passwort = $_POST["passwort"];
    */
    $user = strtolower ($_POST["username"]);
    $passwort = md5 ($_POST["passwort"]);
    
    $verbindung = mysql_connect("localhost","***","***")
    or die ("Fehler im System");
    
    mysql_select_db ("fabiii9sql14")
    or die ("Verbindung zur Datenbank war nicht möglich...");
    
    $control = 0;
    $abfrage = "SELECT * FROM login WHERE username = '$user' AND passwort = '$passwort'";
    $ergebnis = mysql_query($abfrage);
    while ($row = mysql_fetch_object ($ergebnis))
      {
        $control++;
      }
      
if ($control !=0) {
  $_SESSION["username"] = $user;
  $verhalten = 1;  
} else {
$verhalten = 2;
}
    }

if($verhalten == 1) {
echo ("Du wurdest erfolgreich eingeloggt!!!");
} 
?>

Wäre sehr dankbar wenn ihr mir helfen könntet, verzweifel langsam.

Vielen Dank
Gruß
Fabi
 
RE

Hallo,
so funktioniert es leider auch nicht.
PHP:
<?php
    session_start ();
    $verhalten = 0;
    
    if(!isset($_SESSION["username"]) and !isset ($_GET["page"])) {
     $verhalten = 0;
    }
    if ($_GET["page"] == "log") {
    /*
    $user = $_POST["user"];
    $passwort = $_POST["passwort"];
    */
    $user = strtolower ($_POST["username"]);
    $passwort = md5 ($_POST["passwort"]);
    
    $verbindung = mysql_connect("localhost","***","***")
    or die ("Fehler im System");
    
    mysql_select_db ("fabiii9sql14")
    or die ("Verbindung zur Datenbank war nicht möglich...");
    
    $control = 0;
    $abfrage = "SELECT * FROM login WHERE username LIKE '$user' AND passwort LIKE '$passwort'";
    $ergebnis = mysql_query($abfrage);
    while ($row = mysql_fetch_object ($ergebnis))
      {
        $control++;
      }
      
if ($control !=0) {
  $_SESSION["username"] = $user;
  $verhalten = 1;  
} else {
$verhalten = 2;
}
    }

if($verhalten == 1) {
echo ("Du wurdest erfolgreich eingeloggt!!!");
} 
?>

Keiner mehr eine Idee ??

Vielen Dank im Voraus !
Gruß
Fabi
 
Ungetestet:
PHP:
 <?php
    session_start ();
    
    if (isset($_GET["page"]) && $_GET["page"] == "log") 
    {
       $verbindung = mysql_connect("localhost","***","***")
          or die ("Fehler im System");
    
       mysql_select_db ("fabiii9sql14")
          or die ("Verbindung zur Datenbank war nicht möglich...");
    
       $user = mysql_real_escape_strring(strtolower($_POST["username"]));
       $passwort = md5 ($_POST["passwort"]);
       
       $abfrage = "SELECT 
                      count(*)
                    FROM 
                      `login` 
                    WHERE 
                      `username` = '$user' 
                     AND 
                      `passwort` = '$passwort'";
                      
      $ergebnis = mysql_query($abfrage)
         or die ("MySQL-Error: " . mysql_error());
         
      $control = mysql_result($ergebnis, 0);
          
      if ($control !=0) 
      {
         $_SESSION["username"] = $user;
         echo ("Du wurdest erfolgreich eingeloggt!!!"); 
      }
      else
        die ("Kein Zugang");
    }
    else
      die ("Fehlender Parameter");
?>
 
RE

Hallo,
erstmal vielen Dank für deine Bemühungen.
Ich habe dieses Script jetzt mal ausgeführt was du mir geschickt hast und es funktioniert aus. Es kommt aber die Meldung "Fehlender Parameter". Ich verstehe nur nicht was da fehlt.
Wo muss da der Fehler sein ?

Vielen Dank schon mal im Voraus für deine so große Geduld

Gruß
Fabi
 
Ich verstehe nur nicht was da fehlt.
Was verstehst du daran nicht? Die Ausgabe kann doch nur kommen, wenn dies
PHP:
if (isset($_GET["page"]) && $_GET["page"] == "log")
nicht zutrifft. Warum der Parameter page vorhanden sein soll und woher er kommen soll, kannst nur du wissen.
 
RE

Hallo,
vielen Dank.
Entschuldigt das hatte ich nicht bedacht.

Jetzt habe ich nur noch ein Problem wie schütze ich jetzt die Datei auf die man nicht zugreifen soll.
Weil momentan muss ich nur die Domain in die Domainleiste eingeben und ich komme drauf ohne Login.
Ich muss die Session jetzt noch irgendwie abfragen aber wie ?
Hier meine Codes.

Der Login Code:
PHP:
<?php
    session_start ();
    
       $verbindung = mysql_connect("localhost","***","***")
          or die ("Fehler im System");
    
       mysql_select_db ("fabiii9sql14")
          or die ("Verbindung zur Datenbank war nicht möglich...");
    
       $user = $_POST["username"];
       $passwort = md5 ($_POST["passwort"]);
       
       $abfrage = "SELECT 
                      count(*)
                    FROM 
                      `login` 
                    WHERE 
                      `username` = '$user' 
                     AND 
                      `passwort` = '$passwort'";
                      
      $ergebnis = mysql_query($abfrage)
         or die ("MySQL-Error: " . mysql_error());
         
      $control = mysql_result($ergebnis, 0);
          
      if ($control !=0) 
      {
         $_SESSION["username"] = $user;
         header("Location: start.php");
      }
      else
        header("Location: fehlgeschlagen.php");
?>
Der Code der die Session abfrägt. (funktioniert noch nicht es kommt aber keine Fehlermeldung.)
PHP:
<?php
 
 session_start();
 if (!isset($_SESSION['username'])) {
  header ("Location:index.php");
  exit;
 }
?>
Der Code der zu schüptzenden Seite:
PHP:
<?php
include ('aut.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="website">
<div id="header">
    <div id="header_text"> Technik GyKi</div>
  <div id ="header_benutzer">Fa.Bette</div>
</div>

<ul id="Navigation">
    <li><a href="nav_definieren.htm">Teilnehmer</a></li>
    <li><a href="nav_definieren.htm">Start</a></li>
    <li><a href="nav_formatieren.htm">Veranstaltungen</a></li>
    <li><a href="nav_rollover.htm">Archiv</a></li>
    <li><a href="nav_definieren.htm">Meine Zusagen</a></li>
    <li><a href="nav_formatieren.htm">Dokumente/Fotos</a></li>
    <li><a href="nav_rollover.htm">Wunschliste</a></li>
    <li><a href="nav_definieren.htm">Verleihliste</a></li>
    <li><a href="nav_formatieren.htm">Inventar</a></li>
    <li><a href="nav_definieren.htm">Forum</a></li>
    <li><a href="nav_rollover.htm">Admin-Bereich</a></li>
    <li><a href="nav_rollover.htm">Hilfe</a></li>
    <li><a href=""></a></li>
    <li><a href="nav_rollover.htm">Abmelden</a></li>
  </ul>
 <div id="main"></div>
</div>
</div>
</body>
</html>

Vielen Dank für euer Angament !!!

Viele Grüße
Fabi
 
funktioniert noch nicht es kommt aber keine Fehlermeldung.
Dann empfehle ich mal:

Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Zurück
Oben