user email (ID) ausgeben wenn user eingeloggt
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgeben
benutzername
code
datum
email
fehlermeldung
folgendes ausgeben
header
http
login
not
null
nutzer
schau
setzen
spiel
tag
url
zeile
zugang
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
schau-dich-shlau schrieb:
Hallo,
Ich möchte gern folgendes ausgeben für einen eingeloggten user:
Emali
Nutzernme
Wie mach ich das.
Kennt ihr code.
Ohne dein Loginsystem zu kennen kann dir niemand Helfen.
Benutzt du eine Datenbank?
Wenn ja Poste den Namen der Tabelle und die Namen der Spalten.
Beitrag zuletzt geändert: 5.8.2013 0:14:11 von hpage -
schau-dich-shlau schrieb:
Hallo,
Ich möchte gern folgendes ausgeben für einen eingeloggten user:
Emali
Nutzernme
Wo und unter welchen Bedingungen soll die Ausgabe dieser Daten stattfinden? Woher kommen Nutzername und Emailadresse und wie stehen sie zur weiteren Verarbeitung zur Verfügung?
hpage schrieb:
Wenn ja Poste den Namen der Tabelle und die Namen der Spalten.
Mit ein wenig Abstraktionsvermögen kann man diese Dinge auch durch verständliche Pseudowerte ersetzen, die der Fragesteller dann entsprechend ersetzt. wirklich notwendig sind diese Infos nicht. -
Hallo,
Ich möchte das gerne Profilseite ausgeben (E-mail Benutzername).
CREATE TABLE IF NOT EXISTS `nutzer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nutzername` varchar(32) NOT NULL DEFAULT 'not',
`email` varchar(100) NOT NULL DEFAULT 'not',
`tag` varchar(20) NOT NULL,
`monat` varchar(20) NOT NULL,
`jahr` varchar(20) NOT NULL,
`passwort` varchar(40) NOT NULL DEFAULT 'not',
`anmeldedatum` datetime DEFAULT NULL,
`aktivierungscode` int(6) NOT NULL DEFAULT '123',
`aktiviert` int(11) NOT NULL DEFAULT '1',
`vergessen` int(6) NOT NULL DEFAULT '0',
`avatar` varchar(55) NOT NULL DEFAULT 'standart',
PRIMARY KEY (`id`)
) ;
<?php $seitentitel = 'Login'; require_once('includes/zugang.php'); $fehlermldg = ""; if (!isset($_SESSION['id'])) { if (isset($_POST['submit'])) { $db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME); mysqli_set_charset($db, "utf8"); $nutzername = mysqli_real_escape_string($db, trim($_POST['nutzername'])); $passwort = mysqli_real_escape_string($db, trim($_POST['passwort'])); if (!empty($nutzername) && !empty($passwort)) { $sql = "SELECT id, nutzername FROM nutzer WHERE nutzername = '$nutzername' AND passwort = SHA('$passwort')"; $daten = mysqli_query($db, $sql); $zeile = mysqli_fetch_array($daten); if (mysqli_num_rows($daten) == 1) { // Login erfolgreich, also die Cookies setzen und den Benutzer zur Hauptseite umleiten $_SESSION['id'] = $zeile['id']; $_SESSION['nutzername'] = $zeile['nutzername']; setcookie('id', $zeile['id'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen setcookie('nutzername', $zeile['nutzername'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen $hauptseite = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/seite2.php'; header('Location: ' . $hauptseite); mysqli_close($db); } else { $fehlermldg = 'Sie müssen gültige Zugangsdaten eingeben, um sich einzuloggen.'; } } else { $fehlermldg = 'Sie müssen Ihre Zugangsdaten eingeben, um sich einzuloggen.'; } } } ?> <div id="wrapper"> <?php require_once('includes/header.php'); if($fehlermldg != "") { echo '<p class="fail">' . $fehlermldg . '</p>'; } ?> <h2>Login</h2> <form method="post" action="login.php"> <label for="nutzername">Benutzername:</label> <input type="text" name="nutzername" /> <label for="passwort">Passwort:</label> <input type="password" name="passwort" /> <input type="submit" value="Login" name="submit" /> </form> </div><!-- #wrapper -->
-
es geht ab zeile 18 (dein kode in der letzten posting) so weiter:
$sql = <<< EOT SELECT id, nutzername, email FROM nutzer WHERE nutzername = '$nutzername' AND passwort = SHA($passwort) EOT; $daten = mysqli_query($db, $sql); $zeile = mysqli_fetch_array($daten); if (mysqli_num_rows($daten) == 1) { // Login erfolgreich, also die Cookies setzen und den Benutzer zur Hauptseite umleiten $zeile = mysqli_fetch_array($daten); $_SESSION['id'] = $zeile['id']; $_SESSION['nutzername'] = $zeile['nutzername']; $_SESSION['email'] = $zeile['email']; setcookie('id', $zeile['id'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen setcookie('nutzername', $zeile['nutzername'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen $hauptseite = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/seite2.php'; header('Location: ' . $hauptseite); mysqli_close($db); }
dann hast du 'nutzername' und 'email' un der $_SESSION, wo du sie dann überall zur verfügung hast.
allerdingd dein create ist ein einziger graus! ich würde das tun:CREATE TABLE IF NOT EXISTS `nutzer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nutzername` varchar(32) NOT NULL DEFAULT '', `email` varchar(100) NOT NULL DEFAULT '', `tag` varchar(20) NOT NULL, `monat` varchar(20) NOT NULL, `jahr` varchar(20) NOT NULL, `passwort` varchar(40) NOT NULL DEFAULT '', `anmeldedatum` datetime DEFAULT NULL, `aktivierungscode` int(6) NOT NULL DEFAULT '0', `aktiviert` int(11) NOT NULL DEFAULT '1', `vergessen` int(6) NOT NULL DEFAULT '0', `avatar` varchar(55) NOT NULL DEFAULT <avatarID>, PRIMARY KEY (`id`) )
wobei '<avatarID>' natürlich richtig sein sollte. -
Hallo,
Danke aber es geht nicht oder habe ich das falsch eingefügt.
Die Fehlermeldung kommt.
Parse error: syntax error, unexpected 'else' (T_ELSE) in E:\xampp\htdocs\spiele\login\login.php on line 39
<?php $seitentitel = 'Login'; require_once('includes/zugang.php'); $fehlermldg = ""; if (!isset($_SESSION['id'])) { if (isset($_POST['submit'])) { $db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME); mysqli_set_charset($db, "utf8"); $nutzername = mysqli_real_escape_string($db, trim($_POST['nutzername'])); $passwort = mysqli_real_escape_string($db, trim($_POST['passwort'])); if (!empty($nutzername) && !empty($passwort)) { $sql = <<< EOT SELECT id, nutzername, email FROM nutzer WHERE nutzername = '$nutzername' AND passwort = SHA($passwort) EOT; $daten = mysqli_query($db, $sql); $zeile = mysqli_fetch_array($daten); if (mysqli_num_rows($daten) == 1) { // Login erfolgreich, also die Cookies setzen und den Benutzer zur Hauptseite umleiten $zeile = mysqli_fetch_array($daten); $_SESSION['id'] = $zeile['id']; $_SESSION['nutzername'] = $zeile['nutzername']; $_SESSION['email'] = $zeile['email']; setcookie('id', $zeile['id'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen setcookie('nutzername', $zeile['nutzername'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen $hauptseite = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/seite2.php'; header('Location: ' . $hauptseite); mysqli_close($db); else { $fehlermldg = 'Sie müssen gültige Zugangsdaten eingeben, um sich einzuloggen.'; } } else { $fehlermldg = 'Sie müssen Ihre Zugangsdaten eingeben, um sich einzuloggen.'; } } } ?> <div id="wrapper"> <?php require_once('includes/header.php'); if($fehlermldg != "") { echo '<p class="fail">' . $fehlermldg . '</p>'; } ?> <h2>Login</h2> <form method="post" action="login.php"> <label for="nutzername">Benutzername:</label> <input type="text" name="nutzername" /> <label for="passwort">Passwort:</label> <input type="password" name="passwort" /> <input type="submit" value="Login" name="submit" /> </form> </div><!-- #wrapper -->
-
also dann der ganze code (von dir, von oben + meine einfügung):
<?php $seitentitel = 'Login'; require_once('includes/zugang.php'); $fehlermldg = ""; if (!isset($_SESSION['id'])) { if (isset($_POST['submit'])) { $db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME); mysqli_set_charset($db, "utf8"); $nutzername = mysqli_real_escape_string($db, trim($_POST['nutzername'])); $passwort = mysqli_real_escape_string($db, trim($_POST['passwort'])); if (!empty($nutzername) && !empty($passwort)) { $sql = <<< EOT SELECT id, nutzername, email FROM nutzer WHERE nutzername = '$nutzername' AND passwort = SHA($passwort) EOT; $daten = mysqli_query($db, $sql); if (mysqli_num_rows($daten) == 1) { // Login erfolgreich, also die Cookies setzen und den Benutzer zur Hauptseite umleiten $zeile = mysqli_fetch_array($daten); $_SESSION['id'] = $zeile['id']; $_SESSION['nutzername'] = $zeile['nutzername']; $_SESSION['email'] = $zeile['email']; setcookie('id', $zeile['id'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen setcookie('nutzername', $zeile['nutzername'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen $hauptseite = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/seite2.php'; mysqli_close($db); header('Location: ' . $hauptseite); exit(); } else { $fehlermldg = 'Sie müssen gültige Zugangsdaten eingeben, um sich einzuloggen.'; } } else { $fehlermldg = 'Sie müssen Ihre Zugangsdaten eingeben, um sich einzuloggen.'; } } } ?> <div id="wrapper"> <?php require_once('includes/header.php'); if($fehlermldg != "") { echo '<p class="fail">' . $fehlermldg . '</p>'; } ?> <h2>Login</h2> <form method="post" action="login.php"> <label for="nutzername">Benutzername:</label> <input type="text" name="nutzername" /> <label for="passwort">Passwort:</label> <input type="password" name="passwort" /> <input type="submit" value="Login" name="submit" /> </form> </div><!-- #wrapper -->
-
Jetzt kommt die Fehlermeldung ich kann mich nicht einloggen.
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in E:\xampp\htdocs\spiele\login\login.php on line 25
-
jetzt wird das programm in der mitte unterbrochen! dann kopierst bitte ALLE ausgaben und postest sie hier. bitte!
das also ausführen:<?php $seitentitel = 'Login'; require_once('includes/zugang.php'); $fehlermldg = ""; if (!isset($_SESSION['id'])) { if (isset($_POST['submit'])) { $db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME); mysqli_set_charset($db, "utf8"); $nutzername = mysqli_real_escape_string($db, trim($_POST['nutzername'])); $passwort = mysqli_real_escape_string($db, trim($_POST['passwort'])); if (!empty($nutzername) && !empty($passwort)) { $sql = <<< EOT SELECT id, nutzername, email FROM nutzer WHERE nutzername = '$nutzername' AND passwort = SHA($passwort) EOT; $daten = mysqli_query($db, $sql); exit(mysqli_error($db)."<hr /><pre>$sql"); if (mysqli_num_rows($daten) == 1) { // Login erfolgreich, also die Cookies setzen und den Benutzer zur Hauptseite umleiten $zeile = mysqli_fetch_array($daten); $_SESSION['id'] = $zeile['id']; $_SESSION['nutzername'] = $zeile['nutzername']; $_SESSION['email'] = $zeile['email']; setcookie('id', $zeile['id'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen setcookie('nutzername', $zeile['nutzername'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen $hauptseite = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/seite2.php'; mysqli_close($db); header('Location: ' . $hauptseite); exit(); } else { $fehlermldg = 'Sie müssen gültige Zugangsdaten eingeben, um sich einzuloggen.'; } } else { $fehlermldg = 'Sie müssen Ihre Zugangsdaten eingeben, um sich einzuloggen.'; } } } ?> <div id="wrapper"> <?php require_once('includes/header.php'); if($fehlermldg != "") { echo '<p class="fail">' . $fehlermldg . '</p>'; } ?> <h2>Login</h2> <form method="post" action="login.php"> <label for="nutzername">Benutzername:</label> <input type="text" name="nutzername" /> <label for="passwort">Passwort:</label> <input type="password" name="passwort" /> <input type="submit" value="Login" name="submit" /> </form> </div><!-- #wrapper -->
-
Unknown column 'mm' in 'where clause'
SELECT id, nutzername, email
FROM nutzer
WHERE nutzername = 'manuel' AND passwort = SHA(mm) -
schau-dich-shlau schrieb:
ok. zeile 21 lautet
Unknown column 'mm' in 'where clause'
SELECT id, nutzername, email
FROM nutzer
WHERE nutzername = 'manuel' AND passwort = SHA(mm)WHERE nutzername = '$nutzername' AND passwort = SHA('$passwort')
also statt SHA($passwort) schreibst 'SHA('$passwort')' (also $passwort zwischen einfachen aufführungszeichen). natürlich nimmst jetzt zeile 24 unbedingt raus (einfach löschen)!
und jetzt solltest dein passwort 'mm' dringendst ändern ;)
Beitrag zuletzt geändert: 5.8.2013 19:17:44 von czibere -
schau-dich-shlau schrieb:
einfach:
Banke es geht.
Aber wie kann ich die Daten ausgeben.echo "<p>Nutzer: {$_SESSION['nutzername']}</p>\n"; echo "<p>Email: {$_SESSION['email']}</p>\n";
aber am einfachsten geht all das, wenn du php lernst ;) -
Hallo,
Es geht schon wieder was nicht.
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in E:\xampp\htdocs\spiele\login\login.php on line 25
<?php $seitentitel = 'Login'; require_once('includes/zugang.php'); $fehlermldg = ""; if (!isset($_SESSION['id'])) { if (isset($_POST['submit'])) { $db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME); mysqli_set_charset($db, "utf8"); $nutzername = mysqli_real_escape_string($db, trim($_POST['nutzername'])); $passwort = mysqli_real_escape_string($db, trim($_POST['passwort'])); if (!empty($nutzername) && !empty($passwort)) { $sql = <<< EOT SELECT id, nutzername, email FROM nutzernutzername WHERE nutzername = '$nutzername' AND passwort = SHA('$passwort') EOT; $daten = mysqli_query($db, $sql); if (mysqli_num_rows($daten) == 1) { // Login erfolgreich, also die Cookies setzen und den Benutzer zur Hauptseite umleiten $zeile = mysqli_fetch_array($daten); $_SESSION['id'] = $zeile['id']; $_SESSION['nutzername'] = $zeile['nutzername']; $_SESSION['email'] = $zeile['email']; setcookie('id', $zeile['id'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen setcookie('nutzername', $zeile['nutzername'], time() + (60 * 60 * 24 * 30)); // Verfällt in 30 Tagen $hauptseite = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/seite2.php'; mysqli_close($db); header('Location: ' . $hauptseite); exit(); } else { $fehlermldg = 'Sie müssen gültige Zugangsdaten eingeben, um sich einzuloggen.'; } } else { $fehlermldg = 'Sie müssen Ihre Zugangsdaten eingeben, um sich einzuloggen.'; } } } ?> <div id="wrapper"> <?php require_once('includes/header.php'); if($fehlermldg != "") { echo '<p class="fail">' . $fehlermldg . '</p>'; } ?> <h2>Login</h2> <form method="post" action="login.php"> <label for="nutzername">Benutzername:</label> <input type="text" name="nutzername" /> <label for="passwort">Passwort:</label> <input type="password" name="passwort" /> <input type="submit" value="Login" name="submit" /> </form> </div><!-- #wrapper -->
-
schau-dich-shlau schrieb:
ja! deine konzentration ;)
... Es geht schon wieder was nicht ...
du hast die query geändert! meine query lautet$sql = <<< EOT SELECT id, nutzername, email FROM nutzer WHERE nutzername = '$nutzername' AND passwort = SHA('$passwort') EOT;
und deine ist$sql = <<< EOT SELECT id, nutzername, email FROM nutzernutzername WHERE nutzername = '$nutzername' AND passwort = SHA('$passwort') EOT;
demnach ist eine tabelle mit den namen `nutzernutzername` nicht vorhanden!
Beitrag zuletzt geändert: 6.8.2013 0:18:49 von czibere -
Danke dafür nochmal.
Ich haben ein Problem Namen wird angezeigt Aber Email nicht was ist falsch.
Nutzer: manuel
Notice: Undefined index: email in E:\xampp\htdocs\spiele\profil-einstellung\index.php on line 30
email:
<?php require_once('../login/includes/sitzungsstart.php'); $seitentitel = 'Memberarea'; require_once('../login/includes/zugang.php'); if(isset($_SESSION['nutzername'])) { $user = $_SESSION['nutzername']; $db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME); mysqli_set_charset($db, "utf8"); $sql = "SELECT aktiviert, nutzername FROM nutzer WHERE nutzername = '$user' "; $daten = mysqli_query($db, $sql); $zeile = mysqli_fetch_array($daten); if ($zeile['aktiviert'] == 0) { $aktivierungsseite = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/aktivierung.php'; header('Location:' . $aktivierungsseite); mysqli_close($db); } } ?> <?php echo "<p>Nutzer: {$_SESSION['nutzername']}</p>\n"; echo "<p>email: {$_SESSION['email']}</p>\n"; ?>
-
schau-dich-shlau schrieb:
liest du keine pn-s? du hast es von mir auf diesem wege bekommen!
... Notice: Undefined index: email in E:\xampp\htdocs\spiele\profil-einstellung\index.php on line 30
email: ... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage