注册不起作用


Registration not working

注册过程以重定向结束,但用户不会被添加到数据库中。我什么都试过了,但看不出问题。如果你需要什么问题,我会编辑这篇文章的内容或解释。

<?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);
?> 

这是一个更好的代码实现,使用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;
    }
}
............
?>
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;
}

语法错误。

$result = mysqli_query($con,"INSERT INTO `users` (username,password,mail) VALUES ($jucatoru,$crypt,$email)");