Я пытаюсь выполнить простой 'получить' форму в плавающем фрейме, как так:Форма внутри IFRAME не работает должным образом
<iframe width = 60% height= 100% id="dynamic-content" src="imageViewing.php" />
Это imageViewing.php:
<html>
<meta http-equiv="refresh" content="8">
<?php
//*database conncetion settings*
$query = "SELECT team_name,id,content FROM upload WHERE display='1'";
$result = mysql_query($query) or die('Error, query failed'.mysql_error());
while ($row = mysql_fetch_assoc($result))
{
\t $id = $row['id'];
\t echo $row['id']. '<img width="200" height = "200" src="data:image/png;base64,' . base64_encode($row['content']) . ' " />'. $row['team_name']."<form method='get' action='imgApproved.php?id='$id'><input type='submit' value='Approve'/></form><br>";
}
exit;
mysql_close();
?>
</html>
Нажатие кнопки запускает imgApprove.php, который изменяет параметр «display» для определенного изображения, так что он не отображается при следующем обновлении iframe.
<?php
if (isset($_GET['id']))
{
\t $id = $_GET['id'];
\t //*Connect to database stuff*
\t $query = "UPDATE upload SET display='0' WHERE id='$id'";
\t $result = mysql_query($query) or die('Error, query failed'.mysql_error());
\t header("location:imageViewing.php");
}
?>
Однако, когда я нажимаю на одобряю, IFrame не останавливает освежающим и больше не показывает ничего. Однако, если я обновляю страницу, все изображения все еще отображаются (поэтому я предполагаю, что imgApprove.php не изменил значение отображения). Я что-то пропустил здесь?
EDIT Я делал некоторые дальнейшие испытания и, как выясняется: if (isset($_GET['id']))
возвращается ложью и даже не работает код, поэтому проблема должна быть в прохождении переменного $ ид.
Во-первых, вам следует избегать функций mysql_ *, поскольку он устарел и помечен для удаления. Рассмотрите возможность использования Mysqli или, что еще лучше, PHP Data Objects (PDO). Способ представления вашего кода уязвим для атак SQL-инъекций. –
Я использую сайт веб-хостинга, который поддерживает PHP5.3 и ничего нового. Каким образом мой код уязвим (я до сих пор не понимаю полностью sql-безопасность) – Oliver
Mysqli был реализован в версии 5.3.0. Читайте об этом здесь: http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php –