我是PHP编码的初学者,我遇到了这个问题,我试图修复它。 我已经通过stackoverflow搜索答案,但它仍然没有用。
这是我的登录form.php文件
<form name = 'LoginForm' method = 'POST' action = 'verifyUser.php'>
<br />
E-MAIL: <input type = "Textbox" Name = "App_Email"><br><br>
PASSWORD: <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;并为他们提供退出按钮?
请帮忙。 谢谢。
答案 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");
}
}
?>
我对你的代码有很多话要说。
$_GET['error']
获取错误。我设置1 =表示空字符,0表示数据库和输入之间匹配为0。