mySQL的登录问题没有选择数据库

时间:2016-02-28 08:07:43

标签: php mysql

我是PHP编码的初学者,我遇到了这个问题,我试图修复它。 我已经通过stackoverflow搜索答案,但它仍然没有用。

这是我的登录form.php文件

<form name = 'LoginForm' method = 'POST' action = 'verifyUser.php'>
<br />
E-MAIL: <input type = "Textbox" Name = "App_Email"><br><br>
PASSWORD: &nbsp;&nbsp;&nbsp;<input type = "password" Name = "App_Password"><br><br>

<input type = 'Submit' name = 'Login' value = 'Log in'><br><br>
</form>

此表格将转至verifyUser.php,这些是代码

include ('DBconnect.php'); 
 $username = $_POST['App_Email'];
 $pass  = $_POST['App_Password'];
 if($username=='' || $pass=='') {
        header("Location:login.php?id=Some fields are empty");
    }

$result = mysql_query("SELECT * FROM applicant_acct ");

if(!$result) {
    die("Query Failed: ". mysql_error());
} else {

    $row = mysql_fetch_array($result);

    if ($username==$row['App_Email']) {
        if($username==$row['App_Email'] && $pass==$row['App_Password']) {
            header("Location: index.html?id=$username");
        } else {
            header("Location:login.php?id=username or your password is incorrect. Please try again");
        }
    }
}

最后的DBconnect.php

<?
$dbc = mysql_connect('localhost','root','root') OR die('Wrong Connection!!!!!!!');
mysql_select_db('onlinerecruitment') OR die ('Cannot connect to DB.');
?>

我真的不知道它为什么显示&#34;查询失败:没有选择数据库&#34; 我认为问题出在verifyUser.php中,但不知道在哪里。

另外一件事,在我登录后如何生成文本&#34;欢迎 - &#34;用户名&#34;&#34;并为他们提供退出按钮?

请帮忙。 谢谢。

2 个答案:

答案 0 :(得分:0)

通常,您可能希望研究图形用户界面,例如XAMPP或MySQL工作台,直到您对数据库系统更加熟悉。

这似乎可以在您的DBConnect.php文件中进行大多数改进。你正在开始,我可以欣赏它。考虑以下几行中包含额外PDO ::静态调用的安全性的内容。

<?php 

public function _dbconnect($hostpath, $database, $username, $password){

try {

  $this->conn = new PDO("mysql:host = {$hostpath};
                         dbname - {$database};
                         charset = utf8", 
                         $username, 
                         $password);

} else { exit(); }
?>

如果此特定代码块没有帮助,我强烈建议您继续调查PDO :: calls。

答案 1 :(得分:0)

<?php 
include ('DBconnect.php'); 
if(isset($_POST['Login'])){
   $username = $_POST['App_Email'];
   $pass  = $_POST['App_Password'];
   if(empty($username) || empty($pass) || ctype_space($username) || ctype_space($pass)){
   header("Location:login.php?error=1");
} else {
   $result = mysql_query("SELECT * FROM applicant_acct");
   if(!$result) {
      die("Query Failed: ". mysql_error());
   } else {
    $row = mysql_fetch_array($result);
    if($username==$row['App_Email'] && $pass==$row['App_Password']) {
       header("Location: index.php?id=$username");
    } else {
       header("Location:login.php?error=0");
    }
}
?>

我对你的代码有很多话要说。

  1. 使用isset功能。此功能检查是否已完成。
  2. 再次检查您的数据库详细信息。也许你写了一些东西 错误(错误点击或其他)
  3. 使用$_GET['error']获取错误。我设置1 =表示空字符,0表示数据库和输入之间匹配为0。
  4. 使用会话登录后留言。您还可以使用Session来处理错误。
  5. 编辑:我建议你开始学习MySQLi或PDO。