Spieleguru
Mitglied
hi,
ich habe mir eine loginseite gebastelt(startseite) mit einprogrammierten passwort und sesions... als ich das dann umschreiben wollte, damit er es aus der db ausliest(nick und pw) ging das iwie net... wäre dankbar wenn ihr mir helfen und vielleicht auch verbessern könntet
problem: ich kann mich mit jedem passwort, egal welchen und welchen usernamen einloggen... egal was ich eingebe..
meine mysqltabelle heißt users in der kapimoney db
die felder zum login heißen "userpasswort" und "username"
hier kommt jetzt mal der code:
(pw ist in md5 verschlüsselt )
index.php
ich hab das hier mal mit einbinden der confic.inc gemacht, was auch net funktioniert... bei test hatte ichs einprogrammiert... wollt es aber über ne externe datei machen
confic.inc
das formular in der index.php:
zum sluss noch die auth.php, die ich in jede zu schützende seite einbinde:
die logout.php poste ich hier mal nicht, da die funktioniert...
ich hoffe, es macht sich jemand die mühe mir zu helfen.. wobei ich wahrscheinlich ein sehr blöden fehler gemacht habe
PS: nach dem login solls mich zus index2.php weiterleiten
edit: ich würd gern bei dieser art von login bleiben... das tut von hier hab ich auch ausprobiert, aber nicht hinbekommen es richtig zu implementieren...
ich habe mir eine loginseite gebastelt(startseite) mit einprogrammierten passwort und sesions... als ich das dann umschreiben wollte, damit er es aus der db ausliest(nick und pw) ging das iwie net... wäre dankbar wenn ihr mir helfen und vielleicht auch verbessern könntet
problem: ich kann mich mit jedem passwort, egal welchen und welchen usernamen einloggen... egal was ich eingebe..
meine mysqltabelle heißt users in der kapimoney db
die felder zum login heißen "userpasswort" und "username"
hier kommt jetzt mal der code:
(pw ist in md5 verschlüsselt )
index.php
PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//das geht irgendwie net: if (isset$_POST['username' && 'passwort']) {
include("confic.inc");
session_start();
$username = $_POST[$username];
$passwort = md5($_POST[$passwort]);
$db = new mysqli($host,$username,$passwort,$db); //Verbindung zur Mysql-Datenbank herstellen
if (mysqli_connect_errno())
die(mysqli_connect_error);
if($result = $db->query("SELECT userpasswort FROM users WHERE username LIKE $username"))
{
$pw = $result->fetch_assoc();
$passwort_db = $pw['userpasswort'];
$result->close();
}
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
// Benutzername und Passwort werden überprüft
if ($passwort == $passwort_db) {
$_SESSION['angemeldet'] = true;
// Weiterleitung zur geschützten Startseite
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
if (php_sapi_name() == 'cgi') {
header('Status: 303 See Other');
}
else {
header('HTTP/1.1 303 See Other');
}
}
$db->close();
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index2.php');
exit;
}
else {
$db->close();
echo "<script type=\"text/javascript\"><!-- alert(\"Username oder Passwort nicht korret!\"); --></script>";
}
}
?>
ich hab das hier mal mit einbinden der confic.inc gemacht, was auch net funktioniert... bei test hatte ichs einprogrammiert... wollt es aber über ne externe datei machen
confic.inc
PHP:
<?php
$host = "localhost";
$username = "root";
$passwort = "XXX";
$db = "kapimoney";
?>
das formular in der index.php:
HTML:
<FORM METHOD='POST' ACTION='index.php'>
<table>
<tr>
<td width=50%>Nickname</td>
<td width=50%><input type='text' name='username' maxlength='50' size='16' value=''></td>
</tr>
<tr>
<td width=50%>Passwort</td>
<td width=50%><input type='Password' name='passwort' maxlength='100' size='16' value=''></td>
</tr>
<tr>
<td width=50%><INPUT TYPE='submit' VALUE=' login ' class='send'></td>
</tr>
</table>
<div align=center>
<a href='index.php?page=regi' title='Registrier dich, wenn du noch keinen Account hast.'>anmelden</a>
|
<a href='index.php?page=sendpass' title='Passwort vergessen? Lass dir ein neues zukommen!'>Passwort vergessen?</a>
</div>
</form>
zum sluss noch die auth.php, die ich in jede zu schützende seite einbinde:
PHP:
<?php
session_start();
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
exit;
}
?>
die logout.php poste ich hier mal nicht, da die funktioniert...
ich hoffe, es macht sich jemand die mühe mir zu helfen.. wobei ich wahrscheinlich ein sehr blöden fehler gemacht habe
PS: nach dem login solls mich zus index2.php weiterleiten
edit: ich würd gern bei dieser art von login bleiben... das tut von hier hab ich auch ausprobiert, aber nicht hinbekommen es richtig zu implementieren...
Zuletzt bearbeitet: