2015-08-17 5 views
1

Я пытаюсь выполнить простой 'получить' форму в плавающем фрейме, как так:Форма внутри 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'])) возвращается ложью и даже не работает код, поэтому проблема должна быть в прохождении переменного $ ид.

+0

Во-первых, вам следует избегать функций mysql_ *, поскольку он устарел и помечен для удаления. Рассмотрите возможность использования Mysqli или, что еще лучше, PHP Data Objects (PDO). Способ представления вашего кода уязвим для атак SQL-инъекций. –

+0

Я использую сайт веб-хостинга, который поддерживает PHP5.3 и ничего нового. Каким образом мой код уязвим (я до сих пор не понимаю полностью sql-безопасность) – Oliver

+0

Mysqli был реализован в версии 5.3.0. Читайте об этом здесь: http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php –

ответ

0

Я считаю, что проблема была вызвана незакрытым iframe. Мне нужно было добавить </iframe> после объявления . Все, что находится между ними, - это текст, отображаемый, если iframe не загружается.

Смежные вопросы