A. php連接mysql資料庫,賬號密碼的驗證問題。
PHP部分應該放在整體的最前面
而不是後面 並且最有要有結尾
相當於頁面先運行PHP再運行HTML
完成的帳號密碼是個很復雜的頁面(包含三個部分)
1、PHP驗證部分,一般都是查詢驗證
2、JS表單驗證部分,驗證是否正確填寫
3、HTML部分。
一般寫PHP驗證SQL正確性 都會把$sql1這種首先列印出來,看是否正確;然後把你的$result1可以加一條語句,然後寫出查詢值的$row=mysql_fetch_array($resulta) 這時候$row是一個數組,運用print_r()可以把數組列印出來 就是查詢結果
最後說一下,驗證登錄一般是把password 寫入where語句中,這樣安全性相對高一些。
B. php連接mysql進行登錄驗證
$conn=mysql_connect("localhost","root","");
mysql_select_db("homework",$conn);
mysql_query("SETNAMES'UTF8'",$conn);
$username=$_POST['user_email'];
$password=$_POST['password'];
$sql="select*fromuserwhereusername='$username'andpassword='$password'";
$Result=mysql_query($sql,$conn);
$onerow=mysql_fetch_array($Result);
if($onerow)
echo"正確";
else
echo"錯誤";
C. php簡單的登陸驗證用戶名和密碼怎麼寫
給你個實例參考一下php編寫登陸驗證用戶名和密碼吧。
登錄頁面
login.html 負責收集用戶填寫的登錄信息
在CODE上查看代碼片派生到我的代碼片
<html>
<head>用戶登錄</head>
<form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)">
<p>
<label for="username" class="label">用戶名:</label>
<input id="username" name="username" type="text" class="input" />
<p/>
<p>
<label for="password" class="label">密 碼:</label>
<input id="password" name="password" type="password" class="input" />
<p/>
<p>
<input type="submit" name="submit" value=" 確 定 " class="left" />
</p>
</form>
</html>
登錄處理
login.PHP 負責處理用戶登錄與退出動作。
在CODE上查看代碼片派生到我的代碼片
<?php
//登錄
if(!isset($_POST['submit'])){
exit('非法訪問!');
}
$username = htmlspecialchars($_POST['username']);
$password = MD5($_POST['password']);
//包含資料庫連接文件
include('conn.php');
//檢測用戶名及密碼是否正確
$check_query = mysql_query("select userid from user_list where username='$username' and password='$password' limit 1");
if($result = mysql_fetch_array($check_query)){
//登錄成功
session_start();
$_SESSION['username'] = $username;
$_SESSION['userid'] = $result['userid'];
echo $username,' 歡迎你!進入 <a href="my.php">用戶中心</a><br />';
echo '點擊此處 <a href="login.php?action=logout">注銷</a> 登錄!<br />';
exit;
} else {
exit('登錄失敗!點擊此處 <a href="javascript:history.back(-1);">返回</a> 重試');
}
//注銷登錄
if($_GET['action'] == "logout"){
unset($_SESSION['userid']);
unset($_SESSION['username']);
echo '注銷登錄成功!點擊此處 <a href="login.html">登錄</a>';
exit;
}
?>
用戶中心
my.php 是用戶中心,作為用戶登錄檢測。
在CODE上查看代碼片派生到我的代碼片
<?php
session_start();
//檢測是否登錄,若沒登錄則轉向登錄界面
if(!isset($_SESSION['userid'])){
header("Location:login.html");
exit();
}
//包含資料庫連接文件
include('conn.php');
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$user_query = mysql_query("select * from user_list where userid = '$userid' limit 1");
$row = mysql_fetch_array($user_query);
echo '用戶信息:<br />';
echo '用戶ID:',$userid,'<br />';
echo '用戶名:',$username,'<br />';
echo '<a href="login.php?action=logout">注銷</a> 登錄<br />';
?>
conn.php,用於連接資料庫
在CODE上查看代碼片派生到我的代碼片
<?php
$conn = mysql_connect("127.0.0.1","root","") or die("資料庫鏈接錯誤".mysql_error());
mysql_select_db("info_db",$conn) or die("資料庫訪問錯誤".mysql_error());
mysql_query("set names gb2312");
?>
D. PHP資料庫驗證登陸
你記住 所有在 引號裡面的 東西都是字元串!!!!!
if("SELECT username,passwd FROM wen WHERE $username=$user,$passwd=$passwd"){
echo "<script>alert('歡迎登錄!');window.location.href='index1.php';</script>";
}
這一句代碼本身就是不通的.
還有就是 你的sql語句也是錯誤的。
參考如下:
$sql = 'SELECT username,passwd FROM wen WHERE username="'.$user.'" AND passwd="'.$passwd.'"';
$result = mysql_query($sql,$conn);
手動回復,不謝
E. php連接資料庫驗證用戶名密碼沒輸入賬號直接提示失敗 去掉exit('登錄失敗!'); 可以正常登錄,請大佬看看
這個是登錄流程問題,
一般正確的流程是在第一次打開登錄頁面的時候,應該先執行html那部分的,然後顯示登錄頁的布局,然後輸入賬號和密碼 點擊登錄的按鈕,表單提交到自身,然後才是執行資料庫連接,資料庫查詢賬號密碼是否正確這些流程,如果正確就跳轉頁面,錯誤就顯示登錄失敗。
而從你的代碼看第一次打開登錄頁面的時候 是先執行了php代碼,查資料庫所以會先提示登錄失敗。
你可以把你的代碼 php部分外層加一個if($_POST){}判斷, 然後登錄的時候用Post提交,這樣你在刷新登錄頁的時候,因為是get提交所以不會執行if判斷里的代碼,然後點登錄的時候才會觸發if里的代碼
F. php登錄驗證資料庫,帶余額,後台可以更改資料庫余額信息
前台AJAX 驗證登錄 後台可以修改 用戶表余額欄位
G. php登錄頁面完整代碼連接資料庫
創建conn.php,連接資料庫。
$dns = 'mysql:host=127.0.0.1;dbname=test';
$username = 'root';
$password = 'root';
// 1.連接資料庫,創建PDO對象
$pdo = new PDO($dns,$username,$password);
創建login.html,登陸頁面。
用戶名
密 碼
創建login.php,驗證賬號密碼。
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST["submit"])){
exit("錯誤執行");
}//檢測是否有submit操作
include('conn.php');//鏈接資料庫
$name = $_POST['name'];//post獲得用戶名表單值
$pwd = sha1($_POST['password']);//post獲得用戶密碼單值
if ($name && $pwd){//如果用戶名和密碼都不為空
$sql = "select * from user where username = '$name' and password='$pwd'";//檢測資料庫是否有對應的username和password的sql
$stmt = $pdo->prepare($sql);
$stmt->execute();
if($stmt->fetch(PDO::FETCH_BOUND)){//0 false 1 true
header("refresh:0;url=welcome.html");//如果成功跳轉至welcome.html頁面
exit;
}else{
echo "用戶名或密碼錯誤";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";//如果錯誤使用js 1秒後跳轉到登錄頁面重試;
}
}else{//如果用戶名或密碼有空
echo "表單填寫不完整";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";
//如果錯誤使用js 1秒後跳轉到登錄頁面重試;
}
$pdo = null;
創建signup.html,注冊頁面
用戶名:
密 碼:
創建signup.php
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST['submit'])){
exit("錯誤執行");
}//判斷是否有submit操作
$name=$_POST['name'];//post獲取表單里的name
$pwd = sha1($_POST['password']);//post獲取表單里的password
include('conn.php');//鏈接資料庫
$sql="insert into user(id,username,password) values (null,'$name','$pwd')";//向資料庫插入表單傳來的值的sql
$stmt = $pdo->prepare($sql);
$stmt->execute();
$stmt->fetch(PDO::FETCH_BOUND);
if (!$stmt){
die('Error: ' . $stmt->getMessage());//如果sql執行失敗輸出錯誤
}else{
echo "注冊成功";//成功輸出注冊成功
}
$pdo = null;//關閉資料庫
H. PHP鏈接資料庫驗證數據跳轉問題
一、sql 語句就有問題了。既然向PHP端傳入參數name和password,那麼$sql 就得做出更改了。
$sql ="select * from admin where name='".$name."' and password='".md5($password)."'";
二、函數mysqli_fetch_assoc() 函數從結果集中取得一行作為關聯數組。while只針對二維數組來循環操作的,所以$row=mysqli_fetch_assoc($result);即可。
所以整體代碼更改如下:
$sql="";
if(!isset($_POST)||empty($_POST)){
}else{
//關聯資料庫接受信息
$name=$_POST['name'];
$password=$_POST['password'];
$sql="select*fromadminwherename='".$name."'andpassword='".md5($password)."'";
if($result=mysqli_query($con,$sql))
{
$row=mysqli_fetch_assoc($result);
mysqli_free_result($result);//釋放結果集
if($row){
header("Location:empManage.php");
exit();
}else{
header("Location:login.php?errno=1");
exit();
}
}else{
echo("錯誤描述:".mysqli_error($con));
}
mysqli_close($conn);
}
I. php登陸資料庫驗證問題
if($_POST[id]=='$a') $a 不能用單引號括起來,要麼用雙引號,要不不用,單引號擴住的話,它不會編譯,只會把它堪稱是字元串 $a 來看待。我說一個問題哦,僅僅是我自己理解的,你在頁面傳輸的時候接受 id ($_POST[id]==)的值,而你又要和$a(用戶名$lr[luser]; )比較( _POST[id]=='$a' ),你的用戶民 是字元串,而id是數字類型的,怎麼能相等...
J. php登錄資料庫驗證問題!
這個不是錯誤,是警告,意思是你變數定義不規范。
另外不是32行的問題,問題在這
$_SESSION[admin_name]=$info[name];
$_SESSION[pwd]=$info[pwd];
改成
$_SESSION[『admin_name』]=$info[『name』];
$_SESSION[『pwd』]=$info[『pwd』];
加上引號就行了。SESSION部分也建議加上引號,我加了,你可以自己決定。
規范一些總沒有壞處。
希望能幫到你。