myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

PHP Login S***** mit Registrierung

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 30.01.14, 17:22   #1
Speedreini93
Newbie
 
Registriert seit: Jan 2010
Beiträge: 79
Bedankt: 27
Speedreini93 ist noch neu hier! | 0 Respekt Punkte
Standard PHP Login S***** mit Registrierung

Hallo
ich wollte für mein kleines Projekt ein Login S***** machen. Habe mir das Video angeschaut
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] . Nur leider, wenn ich ein Account Registriere. Meint er es wäre erfolgreich, nur der erstellte Account ist in MySQL nicht zu finden.
Getestet wird es auf ein Windows 8.1 System mit dem Programm XAMPP.
Config:
PHP-Code:
<?php
session_start
();
$mysql['user'] = "root";
$mysql['password'] = "";
$mysql['host'] = "127.0.0.1";
$mysql['db'] = "login";

//Nichts ändern!
//Verbindung zum MySQL Server.
mysql_connect($mysql['host'], $mysql['user'], $mysql['password']) OR die ('Database connection failed');
mysql_select_db($mysql['db']) OR die ('Database not found');

//Wird geschaut, ob ein User eingeloggt ist.
function isLoggedin()
{
    return isset(
$_SESSION['username']);
}

function 
buildHash($password)
{
    return 
crypt($password'$2a$10$OurConstantSaltRules12$');
}

function 
tryLogin($username$password)
{
    
$password buildHash($password);
    
    
$sql "SELECT 'username'
            FROM 'users'
            WHERE 'username' = "
.mysql_real_escape_string($username)."
            AND 'password' = "
.$password."
            LIMIT 1;"
;
    
$result mysql_query($sql);
    
    if(
mysql_num_rows($result) > 0);
    {
        
$_SESSION['username'] = $username;
        return 
true;
    }
    return 
false;
}

function 
register($username$password)
{
    
$hashedPassword buildHash($password);
    
    
$sql "INSERT INTO users
            (username,password)
            VALUES("
.$username.",".$hashedPassword.");";
        
    
mysql_query($sql) or die(mysql_error()); 
    
    return 
tryLogin($username$password);
}

function 
logout()
{
    
session_destroy();
    
session_start();
}

?>
index.php
PHP-Code:
<!DOCTYPE html>
<
html>
    <
head>
    <
title>Unsecured Page</title>
    </
head>
    <
body>
        <
h1>Unsecured Page</h1>
        <
a href="secured.php">Secured Page</a>
    </
body>
</
html
secured.php
PHP-Code:
<?php
    
require 'requiresLogin.php';
?>

<!DOCTYPE html>
<html>
    <head>
    <title>Secured Page</title>
    </head>
    <body>
        <h1>Secured Page!</h1>
        <a href="logout.php">Logout</a>
    </body>
</html>
requiresLogin.php
PHP-Code:
<?php
require_once 'config.php';

if(!
isLoggedin())
{
    include 
"login.php";
    
    if(!
isLoggedin())
    {
        exit;
    }
}

?>
Login.php
PHP-Code:
<?php
    
require_once 'config.php';
if(
isLoggedin())
{
    
header("Location: index.php");
    exit;
}

$loginFailed false;
if(isset(
$_POST['username']))
{
    if(
tryLogin($_POST['username'], $_POST['password']))
    {
        
$loggedIn true;
    }
    
    else
    {
        
$loginFailed true;
    }
}

if(!isset(
$loggedIn)):
?>

<!DOCTYPE html>
<html>
    <head>
        <title>Login Page!</title>
    </head>
    <body>
        <h1>Login Page!</h1>
        <?php if($loginFailed):?><p>The login failed. Please check yout username and password!</p><?php endif; ?>
        <form method="post" action="">
            <p>Username: <input type="text" name="username" value=""></p>
            <p>Password: <input type="password" name="password" value=""></p>
            <p>Login: <input type="submit" value="Login"></p>
        </form>
        <br>
        <a href="register.php">Register</a>
    </body>
</html>
<?php endif; ?>
register.php
PHP-Code:
<?php
    
require_once 'config.php';
if(
isLoggedin())
{
    
header("Location: index.php");
    exit;
}

$loginFailed false;
if(isset(
$_POST['username']) && isset($_POST['password']))
{
    if(
register($_POST['username'], $_POST['password']))
    {
        
header("Location: index.php");
        exit;
    }
}

?>

<!DOCTYPE html>
<html>
    <head>
        <title>Register Page!</title>
    </head>
    <body>
        <h1>Register Page!</h1>
        <form method="post" action="register.php">
            <p>Username: <input type="text" name="username" value=""></p>
            <p>Password: <input type="password" name="password" value=""></p>
            <p>Register: <input type="submit" value="Register"></p>
        </form>
    </body>
</html>
Logout.php
PHP-Code:
<?php
require_once'config.php';
logout();
?>

<!DOCTYPE html>
<html>
    <head>
    <title>Unsecured Page</title>
    </head>
    <body>
        <h1>Unsecured Page</h1>
        <a href="secured.php">Secured Page</a>
    </body>
</html>
SQL:7
PHP-Code:
CREATE DATABASE IF NOT EXISTS login;

CREATE TABLE IF NOT EXISTS Users
(
    
id INT AUTO_INCREMENT PRIMARY KEY,
    
username VARCHAR(50NOT NULL,
    
password VARCHAR(150NOT NULL
); 
/edit
/edit
So mit der registrierung habe ich es jetzt hinbekommen.
Jetzt wenn ich mich mit dem erstellte Account anmelden will.Komme ich auf die secured.php und da oben steht, dann
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Projekt\config.php on line 35
Aktuelle Config.php
PHP-Code:
<?php
session_start
();
$mysql['user'] = "root";
$mysql['password'] = "";
$mysql['host'] = "127.0.0.1";
$mysql['db'] = "login";

//Nichts ändern!
//Verbindung zum MySQL Server.
mysql_connect($mysql['host'], $mysql['user'], $mysql['password']) OR die ('Database connection failed');
mysql_select_db($mysql['db']) OR die ('Database not found');

//Wird geschaut, ob ein User eingeloggt ist.
function isLoggedin()
{
    return isset(
$_SESSION['username']);
}

function 
buildHash($password)
{
    return 
md5('$2a$10$OurConstantSaltRules12$'.$password); 
}

function 
tryLogin($username$password)
{
    
$password buildHash($password);
    
    
$sql "SELECT username
            FROM users
            WHERE username = "
.$username."
            AND password = "
.$password."
            LIMIT 1;"
;
    
$result mysql_query($sql);
    
    if(
mysql_num_rows($result) > 0);
    {
        
$_SESSION['username'] = $username;
        return 
true;
    }
    return 
false;
}

function 
register($username$password)
{
    
$hashedPassword buildHash($password);
    
    
$sql "INSERT INTO `users`
            (username,password)
            VALUES('
$username','.$hashedPassword.');";
        
    
mysql_query($sql) or die(mysql_error()); 
    
    return 
tryLogin($username$password);
}

function 
logout()
{
    
session_destroy();
    
session_start();
}

?>

So hab alle Fehler gefunden
das ist richtig
WHERE username = '.$username.'
AND password = '.$password.'

und nicht
WHERE username = ".$username."
AND password = ".$password."
Speedreini93 ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.


Sitemap

().