2016-07-06 1 views
0

多くの皆様に感謝します。 htmlはうまくいきます、私はjavascriptがまだ問題であると信じています、そしてphpは大丈夫ですが、私はもう少しポインタが必要です。レビュー/コメント:php mysql javascript(学校ではない)

<input name="uname" type="text" placeholder="please enter a user name" required><br /> 
      <input name="upassword" type="text" placeholder="please enter a password or passphrase" required><br /> 
      <input id="register" name="register" type="submit" class="btn btn-primary btn-lg outline" onclick="register();"/> 

機能レジスタ(){

javascriptの

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "register.php", 
    data: { name: "uname", password: "password"}, 
    success: function (result) { 
     alert("success"); 
    } 
}); 
} 

そして、私の最大の問題、PHP

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

define('USER', 'root'); 
define('PASS', 'Schwinny2156!'); 

try { 
$conn = new PDO("mysql:host=localhost;dbname=users;", USER, PASS); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt = $conn->prepare('INSERT INTO `users` (name, password VALUES  (:name,:password)'); 
$stmt->bindParam(':name', $_POST['uname']); 
$stmt->bindParam(':password', $_POST['upassword']); 

$stmt->execute() 
} 
catch(PDOException $e) 
{ 
echo $stmt . "<br>" . $e->getMessage(); 
} 
$stmt = null; 
:...

HTMLは次のように私は私のコードを編集しました

+0

まず。例:http://php.net/manual/de/mysqli.quickstart.prepared-statements.php – JRsz

+0

'define( 'name'、$ _POST ['uname'];' – RamRaider

+3

password_hashの閉じ括弧がありません。パスワードの確認は[正しい方法](http://stackoverflow.com/a/32556010) – Drew

答えて

1

何かが間違っていて、私が何か逃したかどうかは分かりません。

編集:言及するのを忘れて、参照password_hashを実装して実装してください。パスワードをプレーンテキストに保存することはできません。

編集2:パスワードハッシュ機能を追加しました。ログイン時にパスワードを確認するにはpassword_verifyを使用してください。これはブートストラップとは何の関係もありませんし、私はこの正しいを見る場合は、2番目のあなたののparamsを結合しない

<form onsubmit="return register(this);"> 
    <input name="uname" type="text" placeholder="please enter a user name" required><br /> 
    <input name="upassword" type="text" placeholder="please enter a password or passphrase" required><br /> 
    <input id="register" name="register" type="submit" class="btn btn-primary btn-lg outline"/> 
</form> 

JS

function register(form) { 
    $.post("register.php", $(form).serialize()); 
    return false; 
} 

PHP

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

define('USER', 'root'); 
define('PASS', 'password'); 

try { 
    $conn = new PDO("mysql:host=localhost;dbname=users;", USER, PASS); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    define('uname', $_POST['uname']); 
    $passwordHash = password_hash($_POST['upassword'], PASSWORD_DEFAULT); 
    define('upassword', $passwordHash); 

    $sql = 'INSERT INTO `users` (name , password) VALUES (?, ?)'; 
    $conn->prepare($sql)->execute([uname, upassword]); 
} 
catch(PDOException $e) 
{ 
    echo $sql . "<br>" . $e->getMessage(); 
} 
$conn = null; 
?> 
+0

これは本当に優れています、ありがとうございます。私は今すべてをチェックしようとしています。 – user6554670

0

GETメソッドを使用してjQuery $.get("register.php");からデータを送信し、PHPのPOSTデータにアクセスします。 jQueryで$.post("register.php");を使用するか、PHPで$ _GETを使用してください

関連する問題