0
我到處尋找,但沒有找到答案。我的代碼是這樣的:如何在if語句中更改php中的var?
<form method="post" action="">
<input type="radio" name="ans" value="test">1
<input type="radio" name="ans" value="test2">2<br />
<select name="number">
<option value="one" selected="selected">1</option>
<option value="two">2</option>
</select>
<input type="submit" name="Write" value="Next" />
</form>
$ans = "BD";
if(isset($_POST['ans']))
{
$ans = $_POST['ans'];
echo "<hr /><form method='post' action=''>";
switch($_POST['number'])
{
case "one" :
echo "<textarea name='txt' rows='10' cols='150'>This is first test textarea</textarea>";
break;
case "two" :
echo "<textarea name='txt' rows='10' cols='150'>This is second test textarea</textarea>";
break;
}
echo "<br /><input type='submit' value='Send' /></form>";
}
if(isset($_POST['txt']))
{
mysql_query("INSERT INTO `MyPrivate`.`TestPage` (`ans`, `number`, `text`) VALUES ('$ans', '$number', '" . $_POST['txt'] . "');");
}
我想創造寄存器(或somethink這樣),但是在這個代碼中,我有一個問題。我想將這些東西保存到數據庫中,但'ans'每次都是「BD」。我只是想:$ ans = $ _POST ['ans'];但它不起作用。你能告訴我我做錯了什麼嗎?如果你能寫我回答這個問題。 對不起,但我不是英文翻譯:)
如果您提交的第二種形式,從第一種形式的POST值不再存在。您需要將它們(例如)保存在SESSION變量中。此外,您的代碼易受[SQL注入](http://stackoverflow.com/q/60174/4193263)的影響。要修復這個嚴重的安全漏洞,請使用「準備好的語句」。 – ByteHamster
也可以將第一個傳遞的'POST'值放入第二個表單的隱藏字段中,以便第二個表單在第二次提交時傳遞。應該使用準備好的語句並從'mysql_'切換到'mysqli_'或'PDO'。 – chris85
非常感謝!它爲我工作。我會將我的代碼更改爲SQL Injection的無懈可擊。 – Mahok