Bekomme Usernamen nicht angezeigt
Thomas
- php
Hallo,
ich möchte einen Usernamen aus einer Tabelle holen, mit dieres Funktion:
function getUsername($db) {
if (!is_object($db)) {
return false;
}
if (!($db instanceof MySQLi)) {
return false;
}
if (!isset($_COOKIE['UserID'], $_COOKIE['Password'])) {
return false;
}
$sql = 'SELECT
Username
FROM
User
WHERE
ID = ? AND
Password = ?';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$stmt->bind_param('is', $_COOKIE['UserID'], $_COOKIE['Password']);
if (!$stmt->execute()) {
$str = $stmt->error;
$stmt->close();
return $str;
}
$stmt->bind_result($Username);
if (!$stmt->fetch()) {
$stmt->close();
return false;
}
$stmt->close();
return $Username;
}
hiermit habe ich die Tabelle angelegt:
CREATE TABLE User (
ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
Username VARCHAR(30) NOT NULL,
Password CHAR(32) NOT NULL,
Email VARCHAR(100) NOT NULL
);
und das hab ich in die index.php gepackt damit nach dem login ein logout angezeigt wird mit usernamen:
<?php
if(getUserID($db))
{
echo getUsername($db);
include 'includes/Templates/Login/logout.tpl';
}else {
include 'includes/Templates/Login/login.tpl';
}
?>
Ich kann die Funktion getUserID anfügen, aber ich denke es liegt an dem Teil in index.php oder der function getUsername...
ich bekomme diese Fehlermeldung:
Fatal error: Call to undefined function getUsername() in C:\xampp\htdocs\index.php on line 148
also das hilft mir nicht viel...
mfg Thomas
ich bekomme diese Fehlermeldung:
Fatal error: Call to undefined function getUsername() in C:\xampp\htdocs\index.php on line 148
Die Funktion steht nicht zur Verfügung. Hast du vergessen, sie mit include einzubinden?
MfG Freitag
ich bekomme diese Fehlermeldung:
Fatal error: Call to undefined function getUsername() in C:\xampp\htdocs\index.php on line 148Die Funktion steht nicht zur Verfügung. Hast du vergessen, sie mit include einzubinden?
MfG Freitag
Okay Problem war ? Keine Ahnung jetzt gehts, komisches Programm...
Aber 2 Datenbankabfragen sind mir einfach zuviel...
den Namen also cookie übergeben hat erstmal nicht geklapt, vielleicht liegts wieder am Programm... ist das den üblich oder geht man meinen weg oder kann ich das getuserID irgendwie durch getUsername ersetzen weil wenn es einen gibt den dann printen und logout.tpl anzeigen
hier der beschriebene Teil
<?php
if(getUserID($db)) //möchte ich irgendwie durch getUsername ersetzen
{
echo getUsername($db); //Username dann hier printen
include 'includes/Templates/Login/logout.tpl';
}else {
include 'includes/Templates/Login/login.tpl';
}
?>
mfg Thomas
Hi,
ich verstehe das Problem nicht.
Frage Username und Passwort vom User ab. Schau in der DB nach.
Mit: SELECT id FROM user WHERE username = EINGEGEBENER_USERNAME AND password = EINGEGEBENES_PASSWORT
Wenn du da genau 1 Ergebnis bekommst, ist der USer richtig eingeloggt und das Ergebnis ist auch gleich die ID.
Wenn der User mit Cookies eingeloggt beliben soll, speichere da nicht das Passwort sondern eine Session ID oder sowas.
Dann lässt du halt id, username ausgeben.
Jedenfalls musst du mysql_real_escape_string verwenden um die Usereingaben (auch das was ausm Cookie) kommt zu entschwärfen, dass keiner eine Injection machen kann - niemals einfach irgend eine Eingabe ungeprüft übernehmen.
Das Passwort sollte außerdem verschlüsselt gespeichert werden - dann kann der Admin nicht einfach alle Passwärter der User auslesen.
Gruß
Alex
Hi,
ich verstehe das Problem nicht.
Frage Username und Passwort vom User ab. Schau in der DB nach.
Mit: SELECT id FROM user WHERE username = EINGEGEBENER_USERNAME AND password = EINGEGEBENES_PASSWORTWenn du da genau 1 Ergebnis bekommst, ist der USer richtig eingeloggt und das Ergebnis ist auch gleich die ID.
Wenn der User mit Cookies eingeloggt beliben soll, speichere da nicht das Passwort sondern eine Session ID oder sowas.
Dann lässt du halt id, username ausgeben.
Jedenfalls musst du mysql_real_escape_string verwenden um die Usereingaben (auch das was ausm Cookie) kommt zu entschwärfen, dass keiner eine Injection machen kann - niemals einfach irgend eine Eingabe ungeprüft übernehmen.
Das Passwort sollte außerdem verschlüsselt gespeichert werden - dann kann der Admin nicht einfach alle Passwärter der User auslesen.
Gruß
Alex
Jo danke alles gemacht, funktioniert super.
Habe jetzt ein anderes Problem, ich hab nen facebook like it button zu meiner seite hinzugefügt welches ein iframe ist wenn ich jetzt ausführe wird eine html seite erstellt die genau mit diesem frame endet...
Es wird also alles was danach kommt einfach ausgeschnitten, was dazu führt das mein footer nicht angezeigt wird...
Villt hatte mal wer das Problem...?
mfg Thomas
Hi,
bitte zitiere sinnvoll, das worauf du dich konkret beziehst, und nicht einfach alles.
Habe jetzt ein anderes Problem, ich hab nen facebook like it button zu meiner seite hinzugefügt welches ein iframe ist wenn ich jetzt ausführe wird eine html seite erstellt die genau mit diesem frame endet...
Es wird also alles was danach kommt einfach ausgeschnitten, was dazu führt das mein footer nicht angezeigt wird...
1. Validiere deinen Code.
2. </hilfe/charta.htm#tipps-fuer-fragende>
MfG ChrisB