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>';
}
500错误意味着检查错误日志,或者启用display_errors。ini_set('display_errors',1); error_reporting(E_ALL);'但是它看起来像问题是'if($ _POST ['sql'])'非法连接到前一个字符串。 – 2013-04-23 01:48:21
相反,使用三元组:'...'输入一个SQL表示...'。 (isset($ _ POST ['sql'])?$ _POST ['sql']:'')。 ''' – 2013-04-23 01:50:19
哇,谢谢!就是这样。 – user2309446 2013-04-23 02:04:40