亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php重定向到另一個頁面顯示錯誤的結果

php重定向到另一個頁面顯示錯誤的結果

PHP
侃侃爾雅 2023-10-15 10:44:35
我一直在嘗試使用 php.ini 使用存儲在 xml 文件中的數據來驗證登錄信息。如果電子郵件 ID 和密碼不匹配,它應該回顯一條錯誤消息,指出“抱歉,它們不匹配”。如果它們匹配,則用戶應該被重定向到index.html。即使我嘗試使用正確的電子郵件和密碼登錄,我的代碼仍然顯示錯誤消息。我的 html 表單:<form method="post" action="login.php"><input id='email1' type="email" name="email" placeholder="Email Adress" required="required" class="input-txt" onchange="checkuser();"  /> &nbsp;<input id='pass1' type="password" name="password" placeholder="Password" required="required" class="input-txt" /><button type="submit" class="btn" name="ok" id="b1" >Sign in </button> <br> <br>我的 xml 文件(storedata.xml):<document><data><fname>Group</fname><lname>Project</lname><email2>[email protected]</email2><pass2>teamproject55</pass2></data><data><fname>Sam</fname><lname>Kim</lname><email2>[email protected]</email2><pass2>abcd1234</pass2></data><data><fname>Harold</fname><lname>Pain</lname><email2>[email protected]</email2><pass2>abcd</pass2></data><data><fname>Ryan</fname><lname>Reynold</lname><email2>[email protected]</email2><pass2>123456</pass2></data><data><fname>Reece</fname><lname>Simpson</lname><email2>[email protected]</email2><pass2>onlinestore</pass2></data><data><fname>Stefani</fname><lname>Germanotta</lname><email2>[email protected]</email2><pass2>bbbcccddd</pass2></data></document>我的 php 代碼(login.php):<?php $emailid= $_POST["email"];$pass= $_POST["password"];if(isset($_REQUEST['ok'])) {$xml2 = simplexml_load_file('storedata.xml');foreach($xml2->data as $user) { // for every user node    if($user->email2 == $emailid && $user->pass2 == $pass) {       header("Location: index.html", true, 301);       exit();    }    else {        echo 'Sorry, email and passwords dont match.<br>        <p>Please go back to the login page and enter correct information.</p>';        break;    }}if (($_POST["email"]== "[email protected]") && ($_POST["password"]== "teamproject55")){header("Location: backstore_inventory_ben.html", true, 301);exit();}}?>
查看完整描述

1 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

在 foreach 循環中,您僅檢查 XML 數據中的第一個條目,如果不匹配則退出。你需要做這樣的事情:


<?php

$emailid = $_POST["email"];

$pass? ? = $_POST["password"];

if (isset($_REQUEST['ok']))

{

? ? $xml2 = simplexml_load_file('storedata.xml');

? ? $validLogin = false;

? ? foreach ($xml2->data as $user)

? ? {

? ? ? ? // for every user node

? ? ? ? if ($user->email2 == $emailid && $user->pass2 == $pass)

? ? ? ? {

? ? ? ? ? ? $validLogin = true;

? ? ? ? ? ? break;

? ? ? ? }

? ? }


? ? if ($validLogin)

? ? {

? ? ? ? header("Location: index.html", true, 301);

? ? ? ? exit();

? ? }

? ? else

? ? {

? ? ? ? echo 'Sorry, email and passwords dont match.<br><p>Please go back to the login page and enter correct information.</p>';

? ? }

? ??

? ? if (($_POST["email"] == "[email protected]") && ($_POST["password"] == "teamproject55"))

? ? {

? ? ? ? header("Location: backstore_inventory_ben.html", true, 301);

? ? ? ? exit();

? ? }

}

另外,如果您的 XML 文件中有多個條目,您可能需要檢查DOM,特別是DOMXpath,這樣您就可以搜索匹配項,而不必遍歷整個 ist 并進行字符串匹配。



查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號