一位 IT 新手學生在這里嘗試撰寫我的主題要求,即電子商務網路應用程式。我有 rn 的問題是用 PHP 撰寫的登錄表單。無論我輸入的輸入是對還是錯,警報仍然顯示“請填寫所有欄位”。
這是我的 PHP 登錄表單
<?php
$conn = mysql_connect("localhost","root","1234");
if(!$conn)
{
die('Could not connect: ' . mysql_error());
}mysql_select_db("registration", $conn);
$email=$_POST["email"];
$pwd=md5($_POST["password"]);
$query = mysql_query("SELECT * FROM tbl_reg where password='$pwd' AND email='$email'",$conn);
$rows = mysql_num_rows($query);
if(!$email|| !$pwd)
{
echo"<script>alert(\"please fill up fields\");window.location='sign-in.html'</script>";
}
if ($rows == 1)
{
echo"<script>alert(\"login Succes\");window.location='index2.html'</script>";
}
else
{
$error = "Username or Password is invalid";
}
if ($rows == 0)
{
echo"<script>alert(\"Username or Password is Incorrect\");window.location='login.php'</script>";}
mysql_close($conn);
?>
這基本上是我的 HTML 登錄表單
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Hugo 0.104.2">
<title>Log in Form</title>
<link rel="canonical" href="https://getbootstrap.com/docs/5.2/examples/sign-in/">
<link href="assets/css/bootstrap.min.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB VDvE9tvIXrMQaPlFFSUTR nldQm1LuPXQ=" crossorigin="anonymous"></script>
<style>
.bd-placeholder-img {
font-size: 1.125rem;
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
@media (min-width: 768px) {
.bd-placeholder-img-lg {
font-size: 3.5rem;
}
}
.b-example-divider {
height: 3rem;
background-color: rgba(0, 0, 0, .1);
border: solid rgba(0, 0, 0, .15);
border-width: 1px 0;
box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
}
.b-example-vr {
flex-shrink: 0;
width: 1.5rem;
height: 100vh;
}
.bi {
vertical-align: -.125em;
fill: currentColor;
}
.nav-scroller {
position: relative;
z-index: 2;
height: 2.75rem;
overflow-y: hidden;
}
.nav-scroller .nav {
display: flex;
flex-wrap: nowrap;
padding-bottom: 1rem;
margin-top: -1px;
overflow-x: auto;
text-align: center;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
}
</style>
<!-- Custom styles for this template -->
<link href="assets/css/signin.css" rel="stylesheet">
</head>
<body class="text-center">
<main class="form-signin w-100 m-auto">
<form method="post" action="login.php">
<img class="mb-4" src="../assets/brand/bootstrap-logo.svg" alt="" width="72" height="57">
<h1 class="h3 mb-3 fw-normal">Please sign in</h1>
<div class="form-floating">
<input type="email" class="form-control" id="floatingInput" placeholder="[email protected]" name="email">
<label for="floatingInput">Email address</label>
</div>
<div class="form-floating">
<input type="password" class="form-control" id="floatingPassword" placeholder="Password" name="password">
<label for="floatingPassword">Password</label>
</div>
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="remember-me" > Remember me
</label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit"><a href="appDev Assignment/index.html">Sign in</a></button>
<p class="mt-5 mb-3 text-muted">© 2017–2022</p>
</form>
<center>
<p class="mt-5 mb-3 text-muted" id="q">©</p>
</center>
</main>
<script>
var category = 'happiness'
$.ajax({
method: 'GET',
url: 'https://api.api-ninjas.com/v1/quotes?category=' category,
headers: { 'X-Api-Key': 'ToCfG0A/2Y9rS7AiwSj0BA==5YvMUReDisFAtJ0P'},
contentType: 'application/json',
success: function(result) {
console.log(result);
var q=result;
var quote=result[0].quote;
console.log(quote);
let q1 = document.getElementById("q")
q1.textContent =quote
},
error: function ajaxError(jqXHR) {
console.error('Error: ', jqXHR.responseText);
}
});
</script>
</body>
</html>
我有一個非常糟糕的教授,他剛剛在 Ppt 中發布了語法。沒有任何資訊的檔案。只是純粹的硬代碼。而已。一點也不差。連一點教導都沒有。我嘗試了從重寫代碼到洗掉資料庫或洗掉表的所有方法,但無濟于事。我什至嘗試重寫所有內容,甚至是 HTML 表單。請我需要幫助,因為我們的期中考試就在月底,我真的需要幫助。
uj5u.com熱心網友回復:
為了支持上述評論,也許以下內容會有所幫助。
<?php
# start & maintain session variables for all pages
session_start();
# enable error reporting
error_reporting( E_ALL );
mysqli_report( MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT );
# create the mysql connection - the OO format is much less verbose!
$conn = new mysqli('localhost','root','1234','registration)';
# test that the request is a POST request and you have important variables set ( using `isset` )
if( $_SERVER['REQUEST_METHOD']=='POST' && isset(
$_POST['email'],
$_POST['password']
)){
# create the basic sql and construct the `prepared statement`
$sql='select `password` from `tbl_reg` where `email`=?';
$stmt=$conn->prepare( $sql );
# bind the placeholder(s) to variables
$stmt->bind_param('s', $_POST['email'] );
$stmt->bind_result( $hash );
$stmt->execute();
# if the stored hash matches the value generated by `password_verify` that is a success
if( password_verify( $_POST['password'], $hash ) ){
# OK - set a session variable to be propagated throughout entire session.
$_SESSION['username']=$_POST['email'];
# redirect to a PHP page that maintains the session
exit( header( 'Location: index.php' ) );
}else{
# FAIL
exit( header( 'Location: login.php' ) );
}
}
?>
password_hash以及添加用戶時使用的示例。
/* to add the user and password - probably will have more columns/values in actual sql */
$sql='insert into `tbl_reg` ( `email`, `password` ) values ( ?, ? )';
$stmt=$conn->prepare( $sql );
$hash=password_hash( $_POST['password'], PASSWORD_DEFAULT );
$stmt->bind_param('ss', $_POST['email'], $hash );
$stmt->execute();
uj5u.com熱心網友回復:
對您的代碼進行一些更改并檢查您的代碼是否有效。
更新 Html 檔案中的代碼
洗掉以下行:
<button class="w-100 btn btn-lg btn-primary" type="submit"><a href="appDev Assignment/index.html">Sign in</a></button>
并在下面添加
<input type="submit" name="submit" value="Submit">
更新 Login.php 檔案中的代碼
if (isset($_POST['submit'])) {
$email=$_POST["email"];
$pwd=md5($_POST["password"]);
$query = mysql_query("SELECT * FROM tbl_reg where password='$pwd' AND email='$email'",$conn);
$rows = mysql_num_rows($query);
if(!$email|| !$pwd)
{
echo"<script>alert(\"please fill up fields\");window.location='sign-in.html'</script>";
}
elseif ($rows == 1)
{
echo"<script>alert(\"login Succes\");window.location='index2.html'</script>";
}
elseif ($rows == 0)
{
echo"<script>alert(\"Username or Password is Incorrect\");window.location='login.php'</script>";
}
else
{
echo $error = "Username or Password is invalid";
}
}
mysql_close($conn);
注意:如果它仍然顯示帶有訊息“請填寫欄位”的警報框。然后,當您從 html 檔案提交表單時,不知何故 login.php 沒有從 html 檔案中獲取電子郵件和密碼的輸入值。
如果不檢查所有這些東西,我無法通過寫在這里來解決這個問題..
如果有什么方法可以與您持續聊天,那么我可以幫助您解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/532010.html
標籤:phphtml
上一篇:當函式還沒有回傳值時,為什么代碼會繼續。(在xmlhttprequest中,呼叫php檔案。)是否與Sync/Async函式有關?
下一篇:onmousemove出了點問題
