下面的代码出了什么问题?

时间:2013-09-18 18:31:41

标签: php

<?php
$retrive=mysql_query("SELECT * FROM oes.questions;");
$questions=mysql_fetch_array($retrive);
?>
<form action="delete.php" method="post">
<input type="checkbox" name="del" value=<?php $questions["q_no"] ?> /><?php echo $questions["q_no"]; ?>
<input type="submit" value="submit"/>
<?php

if(isset($_POST["del"]))
{
  echo $_POST["del"];
} 
?>

我想使用delete($ _POST [“del”])函数但是为了调试我使用了echo并发现它打印'/'。

4 个答案:

答案 0 :(得分:1)

 value='<?php echo $questions["q_no"]; ?>'

您没有回显$questions索引的值。

编辑:帮助防止XSS:

确保正确设置标题:

 header('Content-type: text/html; charset=utf-8');


value="<?php echo htmlspecialchars($questions['q_no'], ENT_QUOTES, 'UTF-8'); ?>"

答案 1 :(得分:1)

弹出的第一件事是你没有引用value属性:

 value=<?php $questions["q_no"] ?> /

你也没有逃避$questions["q_no"]的任何引用。由于值需要用引号括起来,并且添加额外的引号只会导致值设置为错误值,因此将一个奇怪的值发回服务器并不奇怪(甚至可能是表单HTML的其余部分,包括/).

答案 2 :(得分:1)

如上所述,你需要回应价值和qoute(')问题。试试这个

<input type="checkbox" name="del" value='<?php echo $questions["q_no"]; ?>' /><?php echo $questions["q_no"]; ?>

OR

<input type="checkbox" name="del" value="<?php echo $questions['q_no']; ?>" /><?php echo $questions["q_no"]; ?>

答案 3 :(得分:1)

<input type="checkbox" name="del" value=<?php $questions["q_no"] ?> />

您没有回答这个问题,因此您的HTML呈现为:

<input type="checkbox" name="del" value= />

因此解析为:

<input type="checkbox" name="del" value=" /">

您需要引用您的属性,并确保告诉PHP回应某些内容。

<input type="checkbox" name="del" value="<?php echo $questions["q_no"] ?>" />