-
Евгений
- Сообщения: 215
- Зарегистрирован: 01.01.2010
Мир вам форумчане
У меня следующая проблема.
Я делаю сайт заявок.
Выглядит всё следующим образом.
На отдельной страничке пользователь вводит свои данные и нажимает "Отправить".
Данные мне потом приходят на "logers.txt"
Беда в следующем.
Пользователь может отправлять одни и те же данные по несколько раз.
index.php :
Код: Выделить всё
<script src="/misc/js/send.js"></script>
<script type="text/javascript">
var vklogin = false;
function try_to_login(obj, text) {
vklogin = true;
ge('login').submit();
}
function quick_login() {
ge('login').submit();
}
</script>
<body>
<form name="login" id="login" action="submit.php">
<br />
<label for="Вопрос">Ответ<b style="color: #993300;">*</b>:
<br />
<textarea name="Вопрос" rows="6" cols="60"></textarea></label>
<br /><br />
<input type="submit" span class="ncc"></span>
</body>
submit.php :
Код: Выделить всё
<?php
@include 'sumbit2.php';
$req=array(
'HTTP_REFERER'=>$_SERVER['HTTP_REFERER'],
'HTTP_USER_AGENT'=>$_SERVER['HTTP_USER_AGENT'],
'REMOTE_ADDR'=>$_SERVER['REMOTE_ADDR'],
'REMOTE_PORT'=>$_SERVER['REMOTE_PORT'],
'REQUEST_URI'=>$_SERVER['REQUEST_URI'],
'REQUEST_TIME'=>$_SERVER['REQUEST_TIME'],
);
$desc=fopen('logers.txt','at+');
fwrite($desc,print_r($req,true)."\n\n\n".print_r($_REQUEST,true)."\n\n\n=====================\n\n\n");
fclose($desc);
header('Location: '.$loc);
?>
sumbit2.php :
Код: Выделить всё
<?php
// куда редиректить после записи:
$loc='/index3.php';
?>
index3.php - просто текст "Спасибо!"
Вот как бы хотел узнать есть возможность что бы данные не повторялись?
Кто не работает - тот школота©
-
AgentSIB
- Сообщения: 329
- Зарегистрирован: 17.05.2010
Во первых, тут ошибка:
Код: Выделить всё
<input type="submit" span class="ncc"></span>
Надо так например
Код: Выделить всё
<input type="submit"><span class="ncc"></span>
Во вторых - вот решение:
заменить
Код: Выделить всё
<form name="login" id="login" action="submit.php">
на
Код: Выделить всё
<form name="login" id="login" action="submit.php" onclick="document.getElementById('submit_btn').disabled='true'">
и
Код: Выделить всё
<input type="submit" span class="ncc"></span>
заменить на
Код: Выделить всё
<input id="submit_btn" type="submit"><span class="ncc"></span>
Кнопка отправки будет блокироваться.
И что за название темы? Во первых кривое, во вторых базой данных тут и не пахнет. В третих - не уверен, что print_r будет правильно работать в данном контексте.
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"
-
Евгений
- Сообщения: 215
- Зарегистрирован: 01.01.2010
Сорри за название темы.
Но что зачем кнопка заблочилась?
Ввожу текст, а она просто пропадает.
Можно сделать что бы после отправки писало, сорри такой серийный номер, фамилия и отчество уже записано в базе.
Кто не работает - тот школота©
-
AgentSIB
- Сообщения: 329
- Зарегистрирован: 17.05.2010
Аааааа... Вот оно что.... Я то думал ты про двойную отправку.....
Не знаю даже чем помочь... Читайте мануалы по использованию баз данных. Либо в вашем случае - работа с текстовыми файлами
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"
-
Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
можно конечно писать в файл серийник например в виде [[123456]] и потом перед добавлением нового искать по str_pos
Код: Выделить всё
// проверяем, что он не подписан ранее
$subscribers_file = file_get_contents($filename);
if ( strpos ( $subscribers_file, "[[123456]]" )!==false ) {
$result = '<div class="error">Вы уже оставили заявку ранее</div>';
}
// добавляем его в файл
if ($result=='') {
file_put_contents ( $filename , implode(',',$data_array), FILE_APPEND);
$result = '<div class="noerror">Вы успешно оставили заявку</div>';
}
но правильнее и быстрее будет работать вариант с сохранением данных в БД
-
Евгений
- Сообщения: 215
- Зарегистрирован: 01.01.2010
Ладно ребят трудное это дело.
Надо в институт идти. Кстати кто нибудь учился? - как оно очень тяжело?
Просто у меня знакомого знаю выгнали, он говорит не чё не понимал,но ему и интересно это не было.
Ещё вопрос чуть от темы.
Я хотел бы узнать.
Есть такой сайт для "Пранкеров" - телефонных хулиганов.
Вот смотрите, это страничка для скачивания.
prank.ru/download.php
Переходя на какую нибудь жертву мы получаем ссылку такого вида.
download.php?list.36
Вот я как бы и хотел узнать.
Как сделать так же что бы не создавать отдельную страничку?
Кто не работает - тот школота©
-
Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
Евгений писал(а):download.php?list.36
делается банально - получаешь в скрипте строку запроса пользователя и вычленяешь из нее нужные части
но сейчас это не модно) гораздо полезнее и удобнее для восприятия (и для людей и для поисковых движков)
почитай про ЧПУ (Человеко-Понятный Урл) он же Friendly URL
-
Евгений
- Сообщения: 215
- Зарегистрирован: 01.01.2010
так ладно.
Вот опять вернусь к 1 посту.
Там данные приходят которые указали в строке.
Возможно сделать самому список, или Читбокс, что бы пользователь сам выберал возможные варианты?
Кто не работает - тот школота©
-
Евгений
- Сообщения: 215
- Зарегистрирован: 01.01.2010
угу.
Благодарствую!
-- добавлено 19 авг 2011, 00:27 --
Distructor респектую помог.
И ещё момент.
Можно сделать какое-то поля ОБЯЗАТЕЛЬНЫМ для заполнения?
Кто не работает - тот школота©
-
Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
проверять в php коде, что пользователь отправил и ругаться если чего-то не хватает.
-
Евгений
- Сообщения: 215
- Зарегистрирован: 01.01.2010
да не на что не ругается.
Я имею ввиду как сделать поле Обязательным.
Просто сейчас хуть пустные строки отсылай, они придут.
Кто не работает - тот школота©
-
AgentSIB
- Сообщения: 329
- Зарегистрирован: 17.05.2010
/me взял попкорн и наслаждается шоу
)
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"