LoginSystem
Manston
- datenbank
hi
Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war
http://tut.php-quake.net/de/login.html#s1
...Problem ist das zwar register usw angezeigt wird aber es ist ob ich was im testfeld rein schreib oder nicht. ich kann mich so oder so registrieren oder einlogen.
ich kopier mal mein "register.php" hier rein. ihr könnt auch mal unter www.outlawz2011.de/register.php gucken
<?php
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
//formular verarbeiten
}
return $ret;
?>
<?php
$ret = array();$ret['filename'] = 'register.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],
$_POST['Antwort'], $_POST['formaction'])) {
return INVALID_FORM;
}
}
return $ret;
?>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include 'constants.php';
include 'functions.php';
include 'classes.php';
include 'variables.php';
// [...]
?>
<?php
define('INVALID_FORM', 'Benutzen sie nur Formulare von der Homepage.');
?>
<?php
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],
$_POST['Antwort'], $_POST['formaction'])) {
return INVALID_FORM;
}
if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {
return INVALID_FORM;
}
if ($_POST['Password'][0] != $_POST['Password'][1]) {
return 'Bitte geben sie das gleiche Password ein.';
}
}
return $ret;
?>
<?php
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],
$_POST['Antwort'], $_POST['formaction'])) {
return INVALID_FORM;
}
if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {
return INVALID_FORM;
}
if ($_POST['Password'][0] != $_POST['Password'][1]) {
return 'Bitte geben sie das gleiche Password ein.';
}
if (($Username = trim($_POST['Username'])) == '' OR
($Password = trim($_POST['Password'][0])) == '' OR
($Email = trim($_POST['Email'])) == '' OR
($Antwort = trim($_POST['Antwort'])) == '') {
return EMPTY_FORM;
}
}
return $ret;
?>
<?php
define('INVALID_FORM', 'Benutzen sie nur Formulare von der Homepage.');
define('EMPTY_FORM', 'Bitte füllen sie das Formular vollständig aus.');
?>
<?php
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],
$_POST['Antwort'], $_POST['formaction'])) {
return INVALID_FORM;
}
if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {
return INVALID_FORM;
}
if ($_POST['Password'][0] != $_POST['Password'][1]) {
return 'Bitte geben sie das gleiche Password ein.';
}
if (($Username = trim($_POST['Username'])) == '' OR
($Password = trim($_POST['Password'][0])) == '' OR
($Email = trim($_POST['Email'])) == '' OR
($Antwort = trim($_POST['Antwort'])) == '') {
return EMPTY_FORM;
}
if ('' != $Antwort) { // entsprechend anpassen
return 'Bitte geben sie die richtige Antwort an.';
}
}
return $ret;
?>
<?php
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],
$_POST['Antwort'], $_POST['formaction'])) {
return INVALID_FORM;
}
if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {
return INVALID_FORM;
}
if ($_POST['Password'][0] != $_POST['Password'][1]) {
return 'Bitte geben sie das gleiche Password ein.';
}
if (($Username = trim($_POST['Username'])) == '' OR
($Password = trim($_POST['Password'][0])) == '' OR
($Email = trim($_POST['Email'])) == '' OR
($Antwort = trim($_POST['Antwort'])) == '') {
return EMPTY_FORM;
}
if ('' != $Antwort) { // entsprechend anpassen
return 'Bitte geben sie die richtige Antwort an.';
}
if (!preg_match('~\A\S{3,30}\z~', $Username)) {
return 'Der Benutzername darf nur aus 3 bis 30 Zeichen bestehen und '.
'keine Leerzeichen enthalten.';
}
}
return $ret;
?>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include 'constants.php';
include 'functions.php';
include 'classes.php';
include 'variables.php';
$db = @new MySQLi(dbms.strato.de, U833858, PASSWORD, DB833858);
$ret = 1; // speichert den rückgabewert von include, standardwert 1
if (mysqli_connect_errno()) {
$ret = 'Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error();
} else {
// Laden der Include-Datei
// [...]
}
// Laden des HTML-Kopfs
// [...]
?>
<?php
// [...]
if (!preg_match('~\A\S{3,30}\z~', $Username)) {
return 'Der Benutzername darf nur aus 3 bis 30 Zeichen bestehen und '.
'keine Leerzeichen enthalten.';
}
$sql = 'SELECT
ID
FROM
User
WHERE
Username = ?
LIMIT
1';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$stmt->bind_param('s', $Username);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows) {
return 'Der Username wird bereits verwendet.';
}
$stmt->close();
// [...]
?>
<?php
// [...]
if ($stmt->num_rows) {
return 'Der Username wird bereits verwendet.';
}
$stmt->close();
$sql = 'INSERT INTO
User(Username, Email)
VALUES
(?, ?)';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$stmt->bind_param('ss', $Username, $Email);
if (!$stmt->execute()) {
return $stmt->error;
}
// [...]
?>
<?php
// [...]
if (!$stmt->execute()) {
return $stmt->error;
}
$UserID = $stmt->insert_id;
$sql = 'UPDATE
User
SET
Password = ?
WHERE
ID = ?';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$Hash = md5(md5($UserID).$Password);
$stmt->bind_param('si', $Hash, $UserID);
if (!$stmt->execute()) {
return $stmt->error;
}
// [...]
?>
<?php
// [...]
if (!$stmt->execute()) {
return $stmt->error;
}
return showInfo('Der Benutzer wurde hinzugefügt. Sie können sich nun anmelden.');
// [...]
?>
<?php
/* Daten
* - msg: Die Nachricht die angezeigt werden soll.
*/
?><p class="info">
<?php echo htmlspecialchars($data['msg']); ?>
</p>
<?php
/**
* Erzeugt ein Array für das Infomessage-Template.
*
* Diese Funktion erzeugt eine Array für unsere Templateengine die dann
* die Infomessage-Template-Datei "info.tpl" läd. Der Parameter gibt
* dabei die Nachricht an die angezeigt werden soll.
* @param msg Die Nachricht die angezeigt werden soll.
* @return Das Array für unsere Templateengine.
*/function showInfo($msg) {
$ret = array();
$ret['filename'] = 'info.tpl';
$ret['data'] = array();
$ret['data']['msg'] = $msg;
return $ret;
}
?>
<?php
if (getUserID($db)) {
return 'Sie sind eingeloggt und können sich nicht registieren.';
}
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
// [...]
?>
<?php
if (getUserID($db)) {
return 'Sie sind eingeloggt und können sich nicht registieren.';
}
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
// [...]
?>
Hallo,
Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war
http://tut.php-quake.net/de/login.html#s1
...Problem ist das zwar register usw angezeigt wird aber es ist ob ich was im testfeld rein schreib oder nicht. ich kann mich so oder so registrieren oder einlogen.
»»
Du solltest - auch im Hinblick auf dein anderes Posting - wirklich daran arbeiten, brauchbare Problembeschreibungen zu liefern.
Du musst beschreiben, was genau passieren soll.
Dann beschreibst du was du machst.
Und dann kommt die Beschreibung des Ergebnisses.
Dort zeigst du dann, wie das von deinem Gewollten abweicht.
Um zu zeigen, dass du auch dem SELF-Gedanken treu bist solltest du dann auch noch selbst Mutmaßungen zu deinem Problem anstellen. Denke also hier im Forum laut: "Es passiert dasss und das. Die Fehlermeldung ist 'bla'. Das könnte sein, dass ich das und das falsch gemacht habe. Das und das habe ich schon probiert..."
ich kopier mal mein "register.php" hier rein. ihr könnt auch mal unter www.outlawz2011.de/register.php gucken
Ich weiß, dass es Leute gibt, die sich hier auch so viel Code anschauen. Aber erwarte das bitte von keinem. Beschreib das Problem lieber wie oben angedeutet und kopiere dann hier die fehlerhaften Stellen rein.
Mal ganz generell:
Tutorials sind ja schön und gut, aber du musst genau verstehen was passiert und passieren soll. Ich empfehl dir daher vielleicht einfach selbst ein Login-System unter Anlehnung an das Tutorial (oder ein anderes, habe es nicht gelesen) zu entwickeln.
Hello,
Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war
Es ist ungeheuer schwer, Dir zu helfen. Du schreibst in Sätzen ohne Punkt und Komma an den entscheidenen Stellen und setzt uns nicht ausreichend ins Bild.
Was sind die Aufgaben der Dateien
und wie arbeiten sie zusammen?
Du postest uns hier eine lose Sammlung von PHP-Codes. Wie hängen denn die zusammen?
Womit startet der Request? Das HTML-Formular dafür fehlt, oder habe ich es nur übersehen in der Sammlung?
Du benötigst also einen Ablaufplan, aus dem hervorgeht, welcher Codeteil wann ausgeführt werden soll. Außerdem muss aus dem Ablaufplan das Wechselspiel von Client und Server hervorgehen. Anders kann man mit Deinen Angaben nichts anfangen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war
Es ist ungeheuer schwer, Dir zu helfen. Du schreibst in Sätzen ohne Punkt und Komma an den entscheidenen Stellen und setzt uns nicht ausreichend ins Bild.
Was sind die Aufgaben der Dateien
- register.php
- login.php
- profile.php
und wie arbeiten sie zusammen?
Du postest uns hier eine lose Sammlung von PHP-Codes. Wie hängen denn die zusammen?
Womit startet der Request? Das HTML-Formular dafür fehlt, oder habe ich es nur übersehen in der Sammlung?Du benötigst also einen Ablaufplan, aus dem hervorgeht, welcher Codeteil wann ausgeführt werden soll. Außerdem muss aus dem Ablaufplan das Wechselspiel von Client und Server hervorgehen. Anders kann man mit Deinen Angaben nichts anfangen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
ICh kann dazu auch nicht mehr schreiben weil ich nicht wirklich viel weiß von php. ich hab jetzt zb ne komplett neue rigister.php datei von woanders her.weil ich das selber nicht schreiben kann muss ich es von anderen seiten holen die php soweit es geht erklären