PHP注册表不连接数据库

时间:2014-04-14 13:29:28

标签: php mysql database

我有一个简单的用户注册表单和外部连接脚本,但有一些奇怪的结果。 页面register.php显示表单正常,但似乎在表单之前显示我的整个连接字符串? 然后抛出与我的连接变量'$ dbcon'相关的错误(我已经评论了发生这种情况的行)这是我的register.php代码:

     <?php
      session_start();
      require "connect.php";

      if (isset($_SESSION['username'])){
      header("location: members.php");
       }

      if (isset($_POST['submit'])) 
      {
      $user = $_POST['user'];
      $pass = $_POST['pass'];
      $rpass = $_POST['rpass'];
      $fname = $_POST['fname'];
      $lname = $_POST['lname'];

if ($user == "" || $pass == "" || $rpass == "") 
{
echo "Please fill all fields";
}

else 
{
 if ($pass != $rpass)
 {
    echo "Passwords do not match";
 }
 else
 {
    //This is where the errors are found
       $query = mysqli_query($dbcon, "SELECT * FROM users WHERE username = '$user' ") or die ("Cannot query table");

    $row = mysqli_num_rows($query);
    if($row == 1)
    {
        echo "This username is already taken";
    }
    else
    {
    $add = mysqli_query($dbcon, "INSERT INTO users (id, firstname, lastname, username,                                                   password, admin) VALUES
    (null, '$fname', '$lname', '$user', '$pass', '$admin') ") or die ("Cant insert data");
    echo "Successfully added user!";
    }
 }
}
    }
    ?>

这是我的连接文件'connect.php'($ dbcon字符串是打印出来的?)

  $server = 'localhost';
  $user = 'root';
  $pass = '';
  $dbname = 'bodgett';

  $dbcon = mysqli_connect($server, $user, $pass, $dbname)or die("Can not connect to Server.");

具体来说,错误是'注意:未定义的变量:C:\ webserver ... \ register2.php中的dbcon' 任何人都可以建议为什么不识别这个变量?

4 个答案:

答案 0 :(得分:2)

可能是错误的文件名(也许文件不叫connect.php)或文件扩展名错误? (html而不是.php)

我刚刚复制了所有代码,它对我有用。我还没有看到php启动和关闭标签。

答案 1 :(得分:1)

我同意@Xatenev。此外,您可能需要考虑将PDO用于数据库交互,这是最安全的方式。我发现这非常有用:http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059

很抱歉,如果这似乎无关紧要,只是想提供帮助。

答案 2 :(得分:0)

检查是否启用了mysqli扩展

生成$ dbcon的代码是在类中还是在某个函数内部? 如果是,也许您需要返回或正确调用它。

答案 3 :(得分:0)

连接文件'connect.php'未包含在标签内,因此无法使用,并解释了为什么文本只是在页面顶部打印出来。

相关问题