- Автор темы
- #21
тогда получишь sql-инъекцию
В данный момент в моём скрипте после нажатия кнопки обновления страници данные повторно добавляются в БД.
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
тогда получишь sql-инъекцию
Еще раз почитать, что тебе насоветовали и сделатьВ данный момент в моём скрипте после нажатия кнопки обновления страници данные повторно добавляются в БД.
if (!($_POST))
{
Форма для ввода данных
}
else
{
if($_SERVER['REQUEST_METHOD']=='POST'){
Скрипт добавления данных в БД ;
header("Location: urpage.php");
;}
}
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\beauty\guest_book.php:12) in Z:\home\localhost\www\beauty\guest_book.php on line 205
для начала не много научись отделять вывод HTML и PHP иначе функция header не будет корректно работать (кроме случая использования ob_*())
Обычно это так (простейший вариант
В твоем случае после добавления записи лучше сделать чуть иначе:PHP:$str = ''; $str.= 'here text'; $sql = 'here sql query'; $str.= 'here another text'; // и тогда уже в конце кода echo $str;// выведет все собранное
и далее в начале кода обрабатываем переменную $_GET['err']PHP:$err = 1; $result = mysql_query ("INSERT INTO guest (date,time,dat,status,name,text) VALUES ('$date','$time','$dat','$status','$name','$text')"); if ($result == 'true') { $err = 0; }else { $err = 2; } header("Location:index.php?err=".$err."&time=".time()); exit;
PHP:switch(intval($_GET['err']) { case 0: echo 'ok'; break; case 1: echo 'error other'; break; case 2: echo 'error Insert'; break; default: echo 'other error'; break; }
switch(intval($_GET['err']) {
case 0:
echo 'ok';
break;
case 1:
echo 'error other';
break;
case 2:
echo 'error Insert';
break;
default:
echo 'other error';
break;
<?php
switch($n) {
case"sav":
if (empty($_POST['name']) && empty($_POST['status']) && empty($_POST['text']))
{
}else{
header("Location: urpage.php");
exit;
}
// обрабатывае пришедшие данные перед вставкой в таблицу БД
$date = date ("Y-m-d");
$dat = date ("d.m.Y");
$time = date("H:i:s");
if (isset($_POST['name'])){$name = $_POST['name'];}
if (isset($_POST['status'])){$status = $_POST['status'];}
if (isset($_POST['text'])){$text = $_POST['text'];}
#удаляем из текста различные слеши, скобки, кавычки;
$name = stripslashes($name);
#Защищаем от ввода различных тегов и скриптов;
$name = htmlspecialchars($name);
// проверяем на наличие ошибок (например, длина имени)
$error = false;
$errort = '';
if (strlen($name) == '')
{
$error = true;
$errort .= 'Вы не ввели своё имя.<br>';
}
if (strlen($status) == '')
{
$error = true;
$errort .= 'Вы не выбрали кем вы являетесь.<br>';
}
if (strlen($text) == '')
{
$error = true;
$errort .= 'Вы не ввели текст отзыва.<br>';
}
// если ошибок нет, то добавляем данные о юзере в таблицу
if(!$error)
{
$result = mysql_query ("INSERT INTO guest (date,time,dat,status,name,text) VALUES ('$date','$time','$dat','$status','$name','$text')");
if ($result == 'true')
{
header("Location: urpage.php");
echo "<p align='center'><h2 align='center'>Ваш отзыв успешо добывлен!</h2></p>";
}
else {echo "<table bgcolor='#666666' width='700' align='center'><tr><td><p><h3 align='center' style='color:red;'>Ваш отзыв не добавлен, по техническим причинам, попробуйте позже!</h3></p></td></tr></table>
<br>
";}
}
else
{
print '<h3 style="color:#FF0000" align="center">Возникли следующие ошибки:</h3><p style="color:#FF0000" align="center">' . $errort.'</p><br>';
// Проверяем статус выбранный пользователем, определяем его и автоматом выводим
if($status == '')
{
$stat = selected;
}
else
{
if($status == '1')
{
$stat1 = selected;
}
else
{
if($status == '2')
{
$stat2 = selected;
}
else
{
if($status == '3')
{
$stat3 = selected;
}
}
}
}
?>
<table width="730" align="center"><tr><td>
<form name="form1" method="post" action="guest_book.php" >
<table><tr><td align="right">
<p class="text"><span style="color:#FF0000">*</span>Ваше имя:</p>
</td>
<td>
<label>
<input type="text" name="name" class="form_text" style="width:250px" value="<?php echo $name; ?>">
</label>
</td></tr>
<tr><td></td><td></td></tr><tr><td></td><td></td></tr>
<tr><td align="right">
<p class="text"><span style="color:#FF0000">*</span>Кем вы являетесь:</p>
</td>
<td>
<label>
<select name="status" class="form_text" style="width:250px">
<option <?php echo $stat; ?>></option>
<option <?php echo $stat1; ?> value="1">Гость</option>
<option <?php echo $stat2; ?> value="2">Клиент</option>
<option <?php echo $stat3; ?> value="3">Постоянный клиент</option>
</select>
</label>
</td></tr>
<tr><td></td><td></td></tr><tr><td></td><td></td></tr>
<tr><td align="right" valign="top">
<p class="text"><span style="color:#FF0000">*</span>Текст отзыва:</p>
</td>
<td>
<textarea type="text" name="text" class="form_text" style=" width:500px; height:150px"><?php echo $text; ?></textarea>
</td></tr>
<tr>
<td></td><td>
<label>
<input type="submit" name="submit" class="button" id="submit" style=" width:75px;" value="Отправить" >
</label>
<p class="text" style="margin-left:0">Поля, помеченные <strong><span style="color:#FF0000">*</span></strong>, обязательные для заполнения!</p>
</td></tr>
</table>
</form>
</td></tr></table>
<?php
}
break;
default;
?>
<p align="center"><strong class="style_header_text" style="font-size:18px;">Форма для добавления отзыва:</strong></p>
<table width="730" align="center"><tr><td>
<form name="form1" method="post" action="?n=sav">
<table><tr><td align="right">
<p class="text"><span style="color:#FF0000">*</span>Ваше имя:</p>
</td>
<td>
<label>
<input type="text" name="name" class="form_text" style="width:250px">
</label>
</td></tr>
<tr><td></td><td></td></tr><tr><td></td><td></td></tr>
<tr><td align="right">
<p class="text"><span style="color:#FF0000">*</span>Кем вы являетесь:</p>
</td>
<td>
<label>
<select name="status" class="form_text" style="width:250px">
<option></option>
<option value="1">Гость</option>
<option value="2">Клиент</option>
<option value="3">Постоянный клиент</option>
</select>
</label>
</td></tr>
<tr><td></td><td></td></tr><tr><td></td><td></td></tr>
<tr><td align="right" valign="top">
<p class="text"><span style="color:#FF0000">*</span>Текст отзыва:</p>
</td>
<td>
<textarea type="text" name="text" class="form_text" style=" width:500px; height:150px"></textarea>
</td></tr>
<tr>
<td></td><td>
<label>
<input type="submit" name="submit" class="button" id="submit" style=" width:75px;" value="Отправить" >
</label>
<p class="text" style="margin-left:0">Поля, помеченные <strong><span style="color:#FF0000">*</span></strong>, обязательные для заполнения!</p>
</td></tr>
</table>
</form>
</td></tr></table>
<?
break;
}
?>
Я ему в самом начале говорил!!Ели осилил.
И форма и её обработка в одном файле - это бред и быдлокод.
Разнеси её по разным файлам и твоя проблема исчезнет.
Ели осилил.
И форма и её обработка в одном файле - это бред и быдлокод.
Разнеси её по разным файлам и твоя проблема исчезнет.