簡體   English   中英

基本的PHP語法或配置? 腳本不在WAMP服務器上執行

[英]Basic PHP syntax or config?; script doesn't execute on WAMP server

我正在嘗試編寫一個簡單的PHP腳本:

  1. 用戶訪問網頁並通過表格注冊其電子郵件地址和密碼(無需其他輸入)。
  2. 他們的電子郵件和密碼存儲在數據庫中,並生成隨機的唯一6位數密碼,並根據電子郵件進行存儲。 對照數據庫中現有的引腳檢查該引腳,以確保其唯一性。
  3. 然后,該圖釘將顯示在網頁上,並在確認其電子郵件和密碼提交后向用戶顯示。

TL; DR用戶注冊並獲得唯一的圖釘。

我有以下PHP代碼,但似乎未在WAMP服務器上執行。 它只是將.php頁面作為原始文本返回。 我是否缺少一些明顯的語法或配置?

<?
if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {
    $conn = mysql_connect('localhost','','');
    mysql_select_db("db_test",$conn);
    while(1) {
        $pin = rand(111111,999999);
        $sel = mysql_query("SELECT * FROM formusers WHERE pin = '$pin'");
        if(mysql_num_rows($sel) != 0) { continue; }

        mysql_query("INSERT INTO formusers(email,password,pin) VALUES('".$_POST['srEmail']."','".$_POST['srPass']."','".$pin."')");
        if(mysql_affected_rows()!=-1)  {
            echo "Pin:" . $pin;
            exit;
        } else {
            echo "Existing email, try again<br />";
        }
        break;
    }

}
?>
<form method="POST" action="">
<input type="email" name="srEmail" value="" placeholder="Email" /><br />
<input type="password" name="srPass" value="" placeholder="Password" /><br />
<input type="submit" name="srSubmit" value="Register" />
</form>

php的開始標記看起來不正確:

<?
if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {

應該:

<?php
if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {

短PHP標記( <? ?> )默認未啟用,這就是為什么您的代碼無法正常工作的原因。

更改您的代碼以使用完整的PHP標記(),以確保在不同開發環境中的一致性。

<?php // <-- notice the difference

if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {

但是,如果您仍想啟用短標簽,則可以通過修改php.ini文件中的short_open_tag指令來啟用,例如:

short_open_tag = on

出於兼容性考慮,但是建議無論如何都避免使用它。 閱讀答案以了解差異。

希望這可以幫助!

1)將“ php”放在“ <”和“?”之后 在開始時

問題仍然存在?

2)聽起來像是配置的事情,好像服務器沒有將您的php視為必須執行的php一樣,而是將其顯示為文本。 在我問您是否確定php模塊已加載之前,它是WAMP的新安裝嗎? 很久以前,這件事發生在我身上,我記得那是一件小事。 我也記得在網上某處找到答案;)

暫無
暫無

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

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