2013-04-23 4 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'])', который незаконно соединен с предыдущей строкой. –

+0

Вместо этого используйте тернар: '' ... введите SQL commend ... '. (isset ($ _ POST ['sql'])? $ _POST ['sql']: ''). '' ' –

+0

Ничего себе, спасибо тонне! Вот и все. – user2309446

ответ

0

У вас также есть ошибка в вашем echo заявлении

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

Не могу поверить, что я забыл эту часть эхо-заявления. Спасибо! – user2309446

Смежные вопросы