2016-07-23 1 views
2

나는이 문제를 거의 4 시간 동안이 문제를 해결하려고 노력했습니다. 오류 메시지가 없으면 $ stmt -> execute()는 모르는 이유에 대해 false를 제공합니다.

register.php

<?php 

session_start(); 

if(isset($_SESSION['id'])){ 
    header("Location: index.php"); 
} 

require 'database.php'; 

$message = ''; 

if(!empty($_POST['user']) && !empty($_POST['password'])): 

    $pass = $_POST['password']; 
    $user = $_POST['user']; 

    $sql = "Insert into user (username, password) values (:user, :password)"; 
    $stmt = $conn->prepare($sql); 

    $stmt->bindValue(':user', $_POST['user']); 
    $stmt->bindValue(':password', password_hash($_POST['password'], PASSWORD_BCRYPT)); 

    //var_dump($_POST['password']); 
    //var_dump($_POST['user']); 

    if($stmt -> execute()): 
     $message = 'Successfully created new user'; 
    else: 
     $message = 'Sorry there must have been an issue creating your account'; 
    endif; 


endif; 

?> 

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Register Below</title> 
    </head> 
    <body> 

    <?php if(!empty($message)): ?> 
     <p><?= $message ?></p> 
    <?php endif; ?> 

    <h1>Register</h1> 
    <form class="" action="register.php" method="post"> 

     <input type="text" placeholder="Username" name="user" id="user"> 
     <input type="password" placeholder="and password" name="password" id="password"> 
     <input type="password" placeholder="confirm password" name="confirm_password"> 

     <button type="submit" name="button">Register</button> 
    </form> 
    <a href="./index.php">home</a> 
    </body> 
</html> 

database.php

<?php 

    $server = 'localhost'; 
    $username ='master'; 
    $password ='master'; 
    $database = 'quiz'; 

    try{ 
     $conn = new PDO("mysql:host=$server;dbname=$database;" , $username, $password); 
    } catch(PDOException $e){ 
     die ("Connection failed" . $e->getMessage()); 
    } 

?> 

내가 암호 확인을 무시하고 알고 있지만 내가 먼저 데이터베이스에 삽입 할 수 있는지 확인하려면.

답변

0

해결 방법 : 내 데이터베이스의 암호 길이가 15 자입니다. 해시 된 암호 >> 15 자입니다. 길이를 255로 변경했으며 모두 좋습니다. 희망적으로 이것은 다른 누군가에게 유용 할 것입니다.

+0

우울합니다. 당신이 그것을 발견했기 때문에 다행 – BeetleJuice