Userdaten einfügen in Mysql
matthias
- php
Sersen,
mache gerade eine Verbindung zu einer MySQL DB mit PHP und Sessions,
Problem:
muss in der DB = kunden eine Tabelle anlegen = Benutzerdaten, darin zwei Felder = Benutzername, Kennwort
und dann die Werte eingeben, bloß welche Funktion nehme ich ASCII oder CHAR oder....
die Daten können nicht geladen werden
hier das PHP
______________________________________
<?php
session_start (); // Starte eine Session.
$pass = $HTTP_POST_VARS["pass"];
$user = $HTTP_POST_VARS["user"];
// ======== AUFBAU DER DATENBANKVERBINGUNG ========
$connID = mysql_connect ("localhost", "user", "passwort");
@mysql_select_db ("kunden", $connID);
// Generiere und starte die Abfrage
$sql = "SELECT * FROM benutzerdaten WHERE (benutzername like '$user') AND (kennwort = '$pass')";
$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;
}
// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");
?>
<html>
<head>
<?php if ($datenrichtig) { ?>
<meta http-equiv="Refresh" content="2; url=startseite.php?<?=session_name()?>=<?=session_id()?>">
<?php } ?>
</head>
<body>
<?php
if ($datenrichtig) {
echo "Vielen Dank fürs Einloggen. Sie werden weitergeleitet...";
} else {
echo "Die Daten waren falsch.";
}
?>
</body>
</html>
_______________________________________________________
Fehler muss glaube ich in den Werten der DB sein.
HILFE BITTE
VARCHAR zB.
Warum hast du dort beim Username ein LIKE?
Bist du sicher, dass die Variablen $pass und $user nicht leer sind?
VARCHAR zB.
Warum hast du dort beim Username ein LIKE?
Bist du sicher, dass die Variablen $pass und $user nicht leer sind?
Wahrscheinlich
wenn man in PHPMYADMIN die DB Struktur anlegt dann so oder
die Variablen $user und $pass werden per HTML-Formular mit $HTTP_POST_VARS["user"] und mit $HTTP_POST_VARS["pass"] bezeichnet und so müssten doch ihre Werte übertragen werden oder nicht !
Hallo
wieso nimmst du beim name LIKE ? Das ist doch nur für sowas wie zeige alles das mit X anfängt /aufhört oder das X enthält.
Und die ( ) in deinem SELECT braucht man glaube ich auch nicht.
Ich weis jezt nicht obs hilft aber versuch mal $_POST['user'] statt $HTTP_..... ich glaube das geht bei manchen PHP versionen mit $_POST und bei anderen mit $HTTP_.... oder nimm zum testen man $user
mfg
Alex
Jetzt kommt nur noch ne weisse Seite
<?php
session_start (); // Starte eine Session.
$user = $_POST['user'];
$pass = $_POST['pass'];
// ======== AUFBAU DER DATENBANKVERBINGUNG ========
$connID = mysql_connect ("localhost","test","test");
@mysql_select_db ("kunden", $connID);
// Generiere und starte die Abfrage
$sql = 'SELECT * FROM Benutzerdaten
WHERE 1 AND Benutzername
= '$user' AND Kennwort
= '$pass' LIMIT 0, 30';
$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;
}
// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");
?>
<html>
<head>
<?php if ($datenrichtig) { ?>
<meta http-equiv="Refresh" content="2; url=startseite.php?<?=session_name()?>=<?=session_id()?>">
<?php } ?>
</head>
<body>
<?php
if ($datenrichtig) {
echo "Vielen Dank fürs Einloggen. Sie werden weitergeleitet...";
} else {
echo "Die Daten waren falsch.";
}
?>
</body>
</html>
Nochmal hallo
schau mal hier http://www.schattenbaum.net dann geh auf PHP da ist die DB abfrage ganz einfach erklärt da schau ich immer nach wenn ich bei sowas einfachem ein Problem habe weil mir da SelfPHP zu umständlich ist
mfg
Alex
Hey Jungs ich habs raus
Fehler war
$sql = "SELECT * FROM Benutzerdaten WHERE Benutzer = BINARY '$username' && Passwort = BINARY '$password'";
so gehts, merci für die Antworten
Matthias