簡體   English   中英

找不到持續錯誤 - PHP

[英]Couldn't find constant error - PHP

嗨,有人可以在這里指出我的錯誤。 我有兩個 PHP 文件。 第一個view.php如下; 第二個作為 processor.php 我看到 if(constant('SELECTitem') == $i) 行沒有捕獲要與 $i 進行比較的所需輸入,因此直接進入'else'驗證。 請糾正我。 謝謝。

查看.php

<?php
$con=mysql_connect('localhost','root') or die ("Server connection failure!");
$db=mysql_select_db('regional_data',$con) or die ("Couldn't connect the database");
$SQL="SELECT sbstart, sbend FROM newchk";
$run=mysql_query($SQL,$con) or die ("SQL Error");
$nor=mysql_num_rows($run);

define("SELECTitem", form.options.value);
?>
<html>
<head><title></title>
<script type="text/javascript">
function ValidateData(form) 
{
var TextIn = document.getElementById('txtN');
if(form.txtN.value == "")
{
alert("Text field is empty"); 
return false;
}else{
alert ((form.options[form.options.selectedIndex].value) + (form.txtN.value));
}
}
</script>
</head>
<body>
<form onsubmit="return ValidateData(this)" method="POST" action="processor.php">
<select STYLE='width:90px' name="options"><?php
while ($rec = mysql_fetch_array($run))
{
    for($i=$rec['sbstart']; $i<=$rec['sbend']; $i++)
    {
    echo "<option id='options' value='$i'>$i<br></option>";
    }
}
?>
</select>
<input type="text" id="txtN">
<input type="submit" name="subN" value="Save">
</form>

</body>
</html> 

處理器.php

<?php
$con=mysql_connect('localhost','root') or die ("Server connection failure!");
$db=mysql_select_db('regional_data',$con) or die ("Couldn't connect the database");
$SQL="SELECT * FROM newchk";
$run=mysql_query($SQL,$con) or die ("SQL Error");
$nor=mysql_num_rows($run);

while ($rec = mysql_fetch_array($run))
{
for($i=$rec['sbstart']; $i<=$rec['sbend']; $i++)
    {
    if(constant('SELECTitem') == $i)
     {
        if($rec['totsb'] <= "0")
        {
        echo "You have already entred this cheque number."; 
        return false;
        } else {
        echo "You can proceed withi this entry"; 
        return false;
        }
     }
     else 
     { echo "Error: Cant find choosen in the databse"; 
      return false;
     }
    }
}
?>

當您提交到processor.php時,您在上一頁中創建的常量將不會被轉移。 此外,在定義常量時,無法在PHP中訪問JavaScript。 所以你創造的常數......

define("SELECTitem", form.options.value);
echo SELECTitem; // returns "formoptionsvalue" (form concatenated with options and value)

你應該做的是提交form.options.value並通過$ _POST訪問它。

 define("SELECTitem", form.options.value);

“form.options.value”是什么意思? 如果我理解正確,那就是你的JS代碼。 但它並不像那樣。

你也無法從其他進程訪問常量。

你需要先閱讀一些PHP書籍。

問題的標題很好而且很籠統: Could not find constant error - PHP but the body is very special

對於所有來到這里尋求一般答案的人,請注意,當您來到這里是因為一個非工作類常量,請檢查您是否使用了類的完全限定名稱,否則它將無法工作。

NOK: constant('MyClass::MY_CONST');

OK: constant(MyClass::class . '::MY_CONST');

暫無
暫無

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

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