因此,我有一个名为biblioteca.php
的后台办公室,在这里有一些请求,我可以通过一个名为“ Validar”的按钮来验证它们。该按钮将重定向到这样的页面:http://localhost/pap_16gpsi21/validacao.php?nproposta=87
,我可以在其中填写表单并提交。
我想要的是验证与该URL相关的请求。
示例:
我有一个请求,他的电话号码是90,单击“ Validar”,然后将我重定向到类似http://localhost/pap_16gpsi21/validacao.php?nproposta=90
的页面,我填写表格并单击“提交”。然后,它更新数据库($updateEstado = "UPDATE propostas SET validacao='Validado'";
)中的请求号90
biblioteca.php
$selectProp = "SELECT nproposta, prioridade,disponibilidade,validacao,
autorizacao,aquisicao,registo,biblioteca,docente
FROM propostas
ORDER BY nproposta DESC";
$resultado = mysqli_query($ligaBD, $selectProp);
if (mysqli_num_rows($resultado) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($resultado)) {
<td><a class="btn btn-default" href="./validacao.php?nproposta=<?= $row["nproposta"] ?>">Validar</a></td>
valida.php
// gets nproposta from propostas
$npropostaLinha = "SELECT nproposta FROM propostas";
$resultado=mysqli_query($ligaBD, $npropostaLinha);
$nproposta = "";
printf($npropostaLinha);
$row = mysqli_fetch_array($resultado,MYSQLI_NUM);
printf("==> ");
print_r($row[0]);
$nproposta = $row[0];
$insertValidacao = "INSERT INTO validacao
(nproposta,nome_validacao,nif_validacao,
email_validacao,preco_validacao)
VALUES ($nproposta,'$nome_validacao','$nif_validacao',
'$email_validacao','$preco_validacao')";
$updateEstado = "UPDATE propostas SET validacao='Validado'";
$resultado = mysqli_query($ligaBD, $insertValidacao);
$resultado = mysqli_query($ligaBD, $updateEstado);
问题是,如果我有3个请求(90,91,92),而我决定仅验证数字91,它将更新第一个数字90。
我也知道这不是最安全的方法,但这只是一个测试。
希望我已明确解释。抱歉,没有语法错误。谢谢
答案 0 :(得分:1)
您需要对代码进行一些更改,因为我想避免一些逻辑错误。
SELECT
中指定您想要特定的proposta
; 为此,请转到您的valida.php
并添加以下内容:
在最顶部,检查变量是否准备就绪
if (!isset($_POST['nproposta']) || empty($_POST['nproposta'])) {
//Do here what you desire to stop the script from running. Redirect back if you wish;
echo "No proposal id was found";
die;
}
$nPropostaID = $_POST['nproposta'];
一旦有了ID即可定位数据库中的行,请更新查询以考虑这一点;
UPDATE propostas SET validacao='Validado' WHERE nproposta = $nPropostaID
转到您的表单视图,然后在表单中添加以下行
<input type='hidden' value="<?php echo $_GET['nproposta']?>" name="nproposta">
注意:因为您提到您了解SQL注入,所以这是我不愿意进行的测试,但是始终要记住要谨慎对待它们:)我的建议这些查询只是为了帮助您,对于脚本绝对没有好处!