注册过程以重定向结束,但用户未加入数据库。我尝试了一切,看不出问题。如果您需要任何问题,我将使用内容或说明编辑此帖子。
<?php
$cookie="tD2h6";
$jucatoru = $_POST['numeleluii'];
$passw = $_POST['pass'];
$email = $_POST['mail'];
$con=mysqli_connect("xx","xx","xxx","xx");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$jucatoru = $con->real_escape_string($jucatoru);
$passw = $con->real_escape_string($passw);
$email = $con->real_escape_string($email);
if(strlen($jucatoru)>1)
{
$crypt = md5($passw);
$result = mysqli_query($con,"INSERT INTO `users` (username,password,mail) VALUES ($jucatoru,$crypt,$email);");
$data = "name=" . $jucatoru . "&pass=" . md5($passw);
setcookie ( $cookie, $data, time()+60*60*24 );
header("Location: http://r4ge.ro");
die;
}
echo "<div class=\"box box-info\">
<i class=\"ion-locked\"></i>
<h3 class=\"box-title\">Register</h3>
</div>
<form action=\"/php/register.php\" method=\"post\">
<div class=\"form-group\">
<input class=\"form-control\" type=\"text\" name=\"numeleluii\" value=\"\" placeholder=\"Username:\"/><br />
</div>
<div class=\"form-group\">
<input class=\"form-control\" type=\"email\" name=\"mail\" value=\"\" placeholder=\"e-mail: example@domain.tdl\"/><br />
</div>
<div class=\"form-group\">
<input class=\"form-control\" type=\"password\" name=\"pass\" value=\"\"placeholder=\"Password:\" /><br />
</div>
<div class=\"box-footer clearfix\">
<input class=\"pull-right btn btn-default\" type=\"submit\" name=\"send\" value=\"Send\" />
</div>
</form>
</div>";
mysqli_close($con);
?>
答案 0 :(得分:5)
这是使用php预处理语句更好的代码实现。
<?php
$cookie="tD2h6";
$jucatoru = $_POST['numeleluii'];
$passw = $_POST['pass'];
$email = $_POST['mail'];
if(!empty($jucatoru)){
$conn = new mysqli("xx", "xx", "xx", "xx");
$conn->set_charset("utf8");
if ($conn->connect_errno) {
echo "Failed to connect to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error;
}
$sql = "INSERT INTO `users` (username,password,mail) VALUES (?,?,?)";
if($stmt = $conn->prepare($sql)){
$crypt = md5($passw)
$stmt->bind_param('sss', $jucatoru, $passw, $crypt);
$stmt->execute();
$data = "name=" . $jucatoru . "&pass=" . md5($passw);
setcookie($cookie, $data, time()+60*60*24 ;
header("Location: http://r4ge.ro");
exit();
}else{
echo $conn->error;
}
}
............
?>
答案 1 :(得分:4)
if(strlen($jucatoru)>1){
$crypt = md5($passw);
$result = mysqli_query($con,"INSERT INTO `users` (username,password,mail) VALUES ('{$jucatoru}','{$crypt}','{$email}')");
if($result){
echo "Data inserted";
}else{
echo "Error in inserting";
}
$data = "name=" . $jucatoru . "&pass=" . md5($passw);
setcookie ( $cookie, $data, time()+60*60*24 );
header("Location: http://r4ge.ro");
die;
}
答案 2 :(得分:2)
语法错误。
$result = mysqli_query($con,"INSERT INTO `users` (username,password,mail) VALUES ($jucatoru,$crypt,$email)");