簡體   English   中英

PHP找不到變量

[英]PHP can't find variable

因此,Im從ASP到PHP相對較新。 在將大量ASP代碼轉換為PHP之后,我遇到了一個問題,即我的PHP代碼似乎找不到我設置的隱藏變量。 它在ASP中運行良好,只是想知道解決此問題的最佳方法。

表格開始:

<form name="LogIn" action="login.php" method="post">
                    <td bgColor=#ffffff>
                        <table align="center" cellSpacing="2" cellPadding="2" border="0">
                            <tr>
                                <td>&nbsp;</td>
                                <td align="right"><font color="#4d71a1">User name:</font>&nbsp;</td>
                                <td><input name="UserName" size="25" type="Text" autocomplete="OFF"></td>
                                <td>&nbsp;</td>
                            </tr>
                            <tr>
                                <td>&nbsp;</td>
                                <td align="right"><font color="#4d71a1">Password:</font>&nbsp;</td>
                                <td><input name="Password" size="25" type="Password" autocomplete="OFF"></td>
                                <td>&nbsp;</td>
                            </tr>

PHP腳本:

<? 
if ($_POST["BtnPress"]=="Pressed")
{

if ($_POST["Username"]=="*****" && $_POST["password"]=="*********")
{

$_SESSION['AdminID']="1";
header("Location: "."index.php");
}
  else
{

print "<font color=#ff0000>Sorry you cannot access this part of the site.</font>";
} 

} 
?> 

然后剩下的表格:

<tr>
                                <td align="center" colspan="4">
                                    <input type="hidden" name="BtnPress" value="Pressed">
                                    <input type="Submit" value="Log In" class="mybutton" onclick="return CheckForm();">
                                </td>   
                            </tr>
                        </table>


                    </td>
                </form>

PHP似乎無法找到變量BtnPress,這在我將ASP轉換為PHP腳本的整個過程中都是類似的問題。 抱歉,如果這是一個簡單的解決方案,但是誰能告訴我我要去哪里錯了?

您有name="Password"$_POST["password"]

Password != password

小心點


<form name="LogIn" action="login.php" method="post">
                    <td bgColor=#ffffff>

那是無效的HTML。 <td>元素不能是<form>的子元素。 瀏覽器很可能會以破壞HTML的方式來恢復錯誤(例如,通過將表格而不是表格的內容移到表外)。 使用驗證器


可能不是問題原因的東西,而可能是其他問題的原因。

  • 不要使用布局表
  • 不要使用標簽元素
  • 一定要使用CSS進行演示(您可以設置標簽元素的樣式,而不必使用過時的font元素

不要使用隱藏的輸入來測試是否提交了表單。

采用:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  // processing of $_POST
}

提交按鈕的名稱應為“ BtnPressed”,而不是隱藏字段。 我要做的是將表單操作設置為?id = submit或類似的內容,然后檢查“如果$ _GET ['id'] ==” submit”,然后處理數據。

<form action="login.php?do=submit">

....  <input ..... 

</form>
<?php
if($_GET['do'] == "submit"){

//process data

} ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM