2013-04-23 89 views
0

我創建了一個簡單的MySQL接口,通過PHP作業作業。用戶輸入他們的名字,密碼和sql查詢,並回吐響應。當我有用戶每次輸入名稱和密碼時,一切正常,但我試圖讓它如此,如果用戶已經登錄,它會顯示他們的用戶名和註銷按鈕,而不是讓他們選擇登錄。當我使用基本的html表單並讓用戶每次輸入名稱和密碼時,都沒有問題。當我嘗試使用表單的php版本時,出現500錯誤,頁面無法加載。我哪裏錯了?形式的錯誤500,不知道是什麼導致它

HTML版本:

 <form action="?" method="post"> 
      <input type="text" name="user" placeholder="username" autofocus="auotfocus" <?php if(isset($_POST['user'])) echo 'value="'.$_POST['user'].'" '; ?> /> 
      <input type="password" name="pass" placeholder="password" <?php if(isset($_POST['pass'])) echo 'value="'.$_POST['pass'].'" '; ?>/> 
      <input type="submit" value="Submit Query" /> 
      <br /> 
      <textarea name="sql" rows="10" cols="50" wrap="soft" placeholder="enter an SQL command..."><?php if(isset($_POST['sql'])) echo $_POST['sql']; ?></textarea> 
     </form> 

形式的PHP版本(PHP括號省略:

 if(isset($_SESSION["user"])) { 
      echo '<form action="?" method="post"'>; 
      echo '<h1>Welcome back'.$_SESSION["user"]; 
      echo '</h1><button type="submit" value="Logout">< br/>'; 
      echo '<input type="submit" value="Submit Query" /> <br />'; 
      echo '<textarea name="sql" rows="10" cols="50" wrap="soft" placeholder="enter an SQL command...">'. if(isset($_POST['sql'])) echo $_POST['sql'].'</textarea>'; 
      echo '</form>'; 
     } 

     else { 
      echo '<form action="?" method="post"'>; 
      echo '<input type="text" name="user" placeholder="username" />'; 
      echo '<input type="password" name="pass" placeholder="password"/>'; 
      echo '<input type="submit" value="Submit Query" />'.' <br />'; 
      echo '<textarea name="sql" rows="10" cols="50" wrap="soft" placeholder="enter an SQL command...">'. if(isset($_POST['sql'])) echo $_POST['sql'].'</textarea>'; 
      echo '</form>'; 
      } 
+2

500錯誤意味着檢查錯誤日誌,或者啓用display_errors。ini_set('display_errors',1); error_reporting(E_ALL);'但是它看起來像問題是'if($ _POST ['sql'])'非法連接到前一個字符串。 – 2013-04-23 01:48:21

+0

相反,使用三元組:'...'輸入一個SQL表示...'。 (isset($ _ POST ['sql'])?$ _POST ['sql']:'')。 ''' – 2013-04-23 01:50:19

+0

哇,謝謝!就是這樣。 – user2309446 2013-04-23 02:04:40

回答

0

您也有一個錯誤在你echo聲明

echo '<form action="?" method="post"'>; 
+0

我不敢相信我忽略了echo聲明的那部分內容。謝謝! – user2309446 2013-04-23 02:05:03

相關問題