php login

Dark Ranger

Erfahrenes Mitglied
Also ich habe folgenden Code, der überprüft ob ein user eingeloggt ist oder ob die eingegebenen Daten richtig sind.

checkuser.php
PHP:
if (mysql_num_rows ($result) > 0) {
  // Ein Datensatz wurde gefunden.
  $datenrichtig = true;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = true; 
} else {
  // Die Benutzerdaten waren falsch.
  $datenrichtig = false;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = false;
}

// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");
?>

Das Problem, es soll dabei noch überprüft werden ob in der mysql datenbank in der Spalte aktiviert ein true oder ein false steht, nur weiß ich jetzt nicht so genau wo cih dass einbauen soll.

Kann mir vielleicht einer helfen?

Edit: Also so einiges verstehe ich, anderes wiederrum nicht, is halt ein Login Script was ich im web gefunden habe
 
Zuletzt bearbeitet:
Warum machst du es nicht mit SESSION IDs,
wenn er sich einlogt und befor er auf die nächste seite geschickt wird einfach
PHP:
// Datenbankverbindung aufbauen  
include("config.php"); // Kannste zu deiner CONFIG HINVERWEISEN

$sql = "SELECT * FROM db_name WHERE table_name='".mysql_real_escape_string($_REQUEST["formularfeld_username"])."'"; // Einfach nach belieben ändern
$result = mysql_query($sql);   

if(mysql_num_rows($result) > 0) {   
	// Benutzerdaten in ein Array auslesen.   
	$user = mysql_fetch_array($result);
	if($user["password"] == md5($_REQUEST["password"])) {
		session_start();
		// Sessionvariablen erstellen und registrieren   
		$_SESSION["user_id"] = $user["id"];
        } else {
          echo "Username und Password stimmen nicht überein!";
        }
} else {
  echo "Ein Fehler ist aufgetreten bitte benachichtigen Sie den Admin";
}


Ist finde ich die einfachste lösung
 
Ähm ja!
Ich habe gerade so festgestellt ich sollte mich doch noch ein wenig intensiver damit beschäftigen, ich verstehe nämlich null! ^^
 
PHP:
<?php
session_start (); // Starte eine Session.

// ======== AUFBAU DER DATENBANKVERBINGUN ========
$connID = mysql_connect ("localhost", "tobiaslueckel_01", "Masterbuilder");
@mysql_select_db ("tobiaslueckel_01", $connID);

// Generiere und starte die Abfrage
$sql = "SELECT * FROM Benutzerdaten WHERE (Nickname like '$username') AND (Kennwort = '$password')";
$aktiv = "Select * FROM Benutzerdaten WHERE (aktiviert = '$aktiv')";
if $aktiv == 1 {
$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0) {
  // Ein Datensatz wurde gefunden.
  $datenrichtig = true;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = true; 
} else {
  // Die Benutzerdaten waren falsch.
  $datenrichtig = false;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = false;
}
} else {
	echo "Der Account ist noch nicht aktiviert";
}

// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");
?>

<html>
<head>
  <?php if ($datenrichtig) { ?>
  <meta http-equiv="Refresh" content="2; url=index.html?<?=session_name()?>=<?=session_id()?>">
  <?php } ?>
</head>

<body>
<?php

if ($datenrichtig) { 
  echo "Vielen Dank für’s Einloggen. Sie werden weitergeleitet...";
} else {
  echo "Die Daten waren falsch.";
}

?>
</body>
</html>

Warum geht das nicht?
Was bedeutet der Fehler?

Fehler hat gesagt.:
Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in /usr/export/www/vhosts/funnetwork/hosting/tobiaslueckel/checkuser.php on line 11
 
PHP:
if $aktiv == 1 {

Zeile 11: Dort sagt er dir, dass er eine Klammer erwartet. Wieso? Weil If-Abfragen immer umklammert werden müssen:

PHP:
if ($aktiv == 1) {
 
Fehler hat gesagt.:
Parse error: syntax error, unexpected T_IF in /usr/export/www/vhosts/funnetwork/hosting/tobiaslueckel/checkuser.php on line 11

PHP:
<?php
session_start (); // Starte eine Session.

// ======== AUFBAU DER DATENBANKVERBINGUN ========
$connID = mysql_connect ("localhost", "tobiaslueckel_01", "Masterbuilder");
@mysql_select_db ("tobiaslueckel_01", $connID);

// Generiere und starte die Abfrage
$sql = "SELECT * FROM Benutzerdaten WHERE (Nickname like '$username') AND (Kennwort = '$password')";
$aktiv = "SELECT * FROM Benutzerdaten WHERE (aktiviert = '$aktiv')";
if ($aktiv == False) {
$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0) {
  // Ein Datensatz wurde gefunden.
  $datenrichtig = true;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = true; 
} else {
  // Die Benutzerdaten waren falsch.
  $datenrichtig = false;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = false;
}
} else {
	echo "Der Account ist noch nicht aktiviert";
}

// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");
?>

<html>
<head>
  <?php if ($datenrichtig) { ?>
  <meta http-equiv="Refresh" content="2; url=index.html?<?=session_name()?>=<?=session_id()?>">
  <?php } ?>
</head>

<body>
<?php

if ($datenrichtig) { 
  echo "Vielen Dank für’s Einloggen. Sie werden weitergeleitet...";
} else {
  echo "Die Daten waren falsch.";
}

?>
</body>
</html>

Mhh geht so jetzt, aber irgendwie auch doch nicht, weil es halt so iust, dass es drauf an kommt, ob ich if ($aktiv == False) oder if ($aktiv == True) schreibe, bei dem einen mal loggt er ganz normal ein, bei demn anderen nicht, egal welchen wert mein aktiviert in der datenbank hat!
 
Mhhh es geht immer noch nicht!

Kann mir einer helfen?

(Ich glaube ich mss mir die ganze Seite nochmal erarbeiten, was aber nicht heißen soll, dass ihr mir nicht hefen sollt, ich lern es schneller wenn ihr das Problem löst und es alles schön kommentiert)
 
Hallo du würdest schneller lernen wenn du das Beispiel von cille umsetzt und die Funktion aus dem manual nachliest. Übrigens gibts hier zig fertige Login-Scripte einfach mal suchen ;-)
 
Bei dem von cille versteh ich aber noch weniger als bei meinem! ^^

Naja und das Login Script funktioniert ja eigentlich, is halt nur, dass noch nicht eingearbeitet ist das man aktiviert sein muss um sich anzumelden! ^^
 
mhhh also das registrierungsscript funktioniert ja eigentlich so, aber ich bekomme es halt nicht hin eine abfrage zu erstellen, das überprüft, ob der user aktiviert ist oder nicht!
 
Zurück