myGully.com

myGully.com (https://mygully.com/index.php)
-   Entwicklung & Programmierung (https://mygully.com/forumdisplay.php?f=72)
-   -   PHP Login Script mit Registrierung (https://mygully.com/showthread.php?t=3185495)

Speedreini93 30.01.14 17:22

PHP Login Script mit Registrierung
 
Hallo
ich wollte für mein kleines Projekt ein Login S***** machen. Habe mir das Video angeschaut
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt 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."


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.