Я создаю простой интерфейс 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>';
}
Ошибка 500 означает проверку журналов ошибок или включение 'display_errors'.' Ini_set ('display_errors', 1); error_reporting (E_ALL); 'Но похоже, проблема заключается в том, что 'if ($ _POST ['sql'])', который незаконно соединен с предыдущей строкой. –
Вместо этого используйте тернар: '' ... введите SQL commend ... '. (isset ($ _ POST ['sql'])? $ _POST ['sql']: ''). '' ' –
Ничего себе, спасибо тонне! Вот и все. – user2309446