【发布时间】:2015-02-27 22:03:22
【问题描述】:
我一直在尝试让它工作,当我在一个或两个字段上单击少于 3 个字符的注册时,它不会弹出一个框来说明它应该说什么,当我单击上面的注册时3 两者都不会给出确认或错误,更不用说将信息插入数据库了。
<?php
$sqlHost = 'localhost';
$sqlUser = 'root';
$sqlPass = 'hidthepassword';
$sqlDatabase = 'RPG';
$connection = new PDO('mysql:host='.$sqlHost.';dbname='.$sqlDatabase.';charset=utf8', $sqlUser, $sqlPass);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$username = null;
$password = null;
if(isset($_GET['user'])) {
$username = $_GET['user'];
}
if(isset($_GET['pass'])) {
$pass = $_GET['pass'];
}
if((isset($username)) && (isset($password))) {
// TODO SQL
$salt = genSalt(40);
$passHash = md5(md5($salt) . md5($password));
$statement = $connection->prepare("INSERT INTO `rpg`.`accounts` (`id`, `username`, `password`, `salt`) VALUES (:user, :pass, :salt);");
$statement->bindParam(":user", $username);
$statement->bindParam(":pass", $passHash);
$statement->bindParam(":salt", $salt);
if($statement->execute()) {
echo "Thank-you for your registration, " . $username;
} else {
echo "Sorry, your registration failed.";
}
} else {
// DISPLAY
echo '<input type="text" id="user" placeholder="username"/>
<input type="text" id="pass" placeholder="password"/>
<button id="button">Register</button>
<script>
var r = document.getElementById("button");
button.addEventListener("click", function() {
var user = document.getElementById("user");
var pass = document.getElementById("pass");
if(user.value.length < 3 || pass.value.length < 3) {
alert("Please enter a valid username or password");
} else {
window.location = "index.php?user="user.value+"&pass="+pass.value;
}
));
</script>
';
}
function genSalt($length) {
$variables = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
$charLength = strlen($variables);
$returned = "";
for($i = 0; $i < $length; $i++) {
$returned .= $variables[rand(0, ($charLength - 1))];
}
return $returned;
}
?>
【问题讨论】:
标签: javascript php xampp