Login Fehler trotz richtiger Daten

Subwoover

Erfahrenes Mitglied
Ich hab da jez mal ein ganz einfaches Login-System geschrieben aber es ist JEDESMAL eine Fehlmeldung als würden die Daten nicht stimmen, tun sie aber....muss also am Script liegen oder?

PHP:
<?

$connect = mysql_connect("localhost","es","es11");
        mysql_select_db("es",$connect);
        $check = "SELECT FROM test WHERE (username like '$name') AND (password = '$passwort')";

        if (mysql_num_rows($check) > 0) {
        include ("enter.php");
        } else {
        echo "Fehler";
        }

Was muss ich da ändern?
Und wie baue ich da Sessions ein? Die Variante von Workaholic sieht zwar interessant aus liefert aber auch immer eine Fehlermeldung...
 
PHP:
<?php
session_start ();

require('config.inc.php');

//CONNECT AND TEST
$con = mysql_connect ("$sqlhost", "$sqluser", "$sqlpass");
@mysql_select_db ("$database", $con);

$sql = "SELECT * FROM users WHERE (nickname like '$nickname') AND (password = '$password')";
$result = mysql_query ($sql, $con);

if (mysql_num_rows ($result) > 0)
{
  $login = true;
  $eingeloggt = true;
}
else
{
  $login = false;
  $eingeloggt = false;
}
session_register ("eingeloggt");


//AUSWAHL TRUE OR FALSE
if($login)
{
  echo "checking data ...<meta http-equiv=Refresh content='1; url=$adminphp'>";
}
else
{
  echo "checking data ...<meta http-equiv=Refresh content='1; url=$formphp?action=wrong'>";
}

?>




das funzt auf jeden :)
 
anstelle von
PHP:
$check = "SELECT FROM test WHERE (username like '$name') AND (password = '$passwort')";

einfach
PHP:
$check = mysql_query("SELECT FROM test WHERE (username like '$name') AND (password = '$passwort')");

mfg,
ZZZottel
 
Er schreibt mir immer noch die echo-Meldung für Fehler ;(
Hab das mit mysql_query aber geändert...
Was stimmt denn nicht? Dass er mir immerwieder eien Fehlermeldung ausspuckt...
 
Mach es mal so
PHP:
mysql_connect(...);
mysql_select_db(...);

// Anzahl der übereinstimmenden Datensätze
$result = mysql_query("select count(*) from test where username = '$name' and password = '$passwort'");
$row = mysql_fetch_row($result);
mysql_close();

// Datensatz vorhanden --> Username + Passwort richtig
if($row[0])
{
    include_once('enter.php');
}
else print('Fehler.');
 
was für nen genauen fehler gibt er dir den aus und post gleich mal die zeile!
 
Jo Leute das Script funkt so wie Der Zottel mit 3 Z es mir gesagt hat ;)

Danke dir ZZZottel (nichts gegen den Namen :) )
Funkt einwandfrei!!!!
Thxxxxxx

EDIT: Aja eins noch: vielleicht kann mir hier jemand helfen bevor ich einen neuen Thread aufmachen muss...

Wie bau ich da jetzt Sessions ein? Der Code ist nun so ziemlich der selbe wie der von ZZZottel!
 
Zuletzt bearbeitet:
Ich habs nicht getestet, aber ich glaube es müsste so gehen
PHP:
@session_start();
// Wenn kein User/Passwort registriert ist
if(!$HTTP_SESSION_VARS["user"] || !$HTTP_SESSION_VARS["password"])
{
    // Hier wieder die Datenbankabfrage 
    $result = ...

    // Gibt es einen User
    if($row[0])
    {
        session_register('user');
        session_register('password');
        $GLOBALS['user'] = $nickname;
        include_once('enter.php');
    }
    else print('Fehler');
}
// User ist schon registriert
else 
{
   include_once('enter.php');
}
 
Zuletzt bearbeitet:
Hmmmm funkt irgendwie nicht, kannst du das mal am Beispiel von ZZZottel schreiben?
Und wie überprüfe ich dann auf einer page mit wert (index.php?go=intern) ob der user eingeloggt ist?
 
Ich würde das so machen:
eine Datei _authenticate.php mit folgendem Inhalt:
PHP:
<?php
session_start();

// $_SESSION nur ab PHP 4.1.1 ansonsten $HTTP_SESSION_VARS
if(!$_SESSION["user"] || !$_SESSION["password"])
{
	header('Location: login.php');
	return;	
}
?>

Eine Datei names login.php
PHP:
<?
 session_start();
// Formular wurde abgeschickt
if($HTTP_POST_VARS["action"])
{
	// Hier die Datenbankabfrage
       $result = ...
	
	// Gibt es den User?
	if($row[0])
	{
		session_register('user');
		session_register('password');
		header("Location: index.php");
		return 0;		
	}	
}
?>
<HTML>
<BODY>
<form action="<?=$PHP_SELF?>" method="POST">
<INPUT type="text" name="user"><br>
<INPUT type="text" name="password"><br>
<input type="submit" name="action" value="Login"><br>
</form>
</BODY>

und in jede datei wird die _authenticate.php includiert
Beispiel index.php
PHP:
<?php
include_once('_authenticate.php');
?>
<html>
<body>
Wenn die Seite dargestellt wird, war alles in Ordnung
</body>
</html>
 
Zuletzt bearbeitet:
Zurück