Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 10.07.2010
Сообщений: 66
1

Защита от повторной записи в файл

10.07.2010, 22:47. Показов 4162. Ответов 38
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
мечтаю сделать защиту от повторной записи в фаил.когда юзверь нажимает кнопку Отправить,сообщение отправляется, а если еще раз нажимает,вылезает сообщение,мол,след.сообщение можно добавить только через 2 минуты.как это реализовать с помощью сессии?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2010, 22:47
Ответы с готовыми решениями:

Pеrmission denided при повторной записи в файл
dеf writе_filе(filе_namе,rеjim,tеxt) Filе.opеn(filе_namе,rеjim,tеxt.to_i) do |filе|...

Защита от повторной отправки формы
Привет. Есть форма, пусть для примера это будет форма отправки комментариев. С помощью плагина...

защита от повторной отправки формы
Как вы думайте в чем недостаток такой защиты от повторной отправки формы? if(isset($_SESSION))...

Защита от повторной отправки POST-данных
браузер кэширует _POST. Если рефрешнуть то пост данные остануться, а значит сработает код еще раз....

38
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
14.07.2010, 08:11 21
Author24 — интернет-сервис помощи студентам
Не помогает. Может у меня в настройках что-нибудь не то?
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
14.07.2010, 08:23 22
на кажной странице
PHP/HTML
1
2
3
4
5
6
<?php session_start();
?>
...
<body>
<?=$_SESSION['count']?>
</body>
У меня почему то подозрение что ты что то делаешь не так, может покажешь что ты там делаешь?
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
14.07.2010, 22:37 23
Я уже просто все по удалял и сделал 2 страницы
1я - index.php:
==================================
PHP
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
session_register('count');
$_SESSION[count]++;
print $_SESSION['count'];
 
print '
';
print '<a href='1.php'> let's go </a>';
?>
==================================
2я - 1.php:
==================================
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
 
$_SESSION[count]++;
print $_SESSION['count'];
 
print '
';
 
print '<a href='index.php'> let's go </a>';
?>
===================================
Может я что-то не понимаю , но ведь после щелчка на ссылке должно написать '2', а пишет 1..............
0
evge
14.07.2010, 23:21 24
убери вобще session_register, он не нужен если пользуешся $_SESSION
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
15.07.2010, 08:27 25
Проверенно, работает.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
//index.php
session_start();
if (!isset($_SESSION['count'])) $_SESSION['count']=0;
$_SESSION['count']++;
print $_SESSION['count'];
print '
';
print '<a href='1.php'> let's go </a>';
?>
---
<?php
//1.php
session_start();
if (!isset($_SESSION['count'])) $_SESSION['count']=0;
$_SESSION['count']++;
print $_SESSION['count'];
 
print '
';
print '<a href='index.php'> let's go </a>';
?>
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
15.07.2010, 15:50 26
эээ........................
... не работет.
Значит это сервер? Может что-то поменять надо в настройках?
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
15.07.2010, 17:07 27
Что выдает?
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
15.07.2010, 20:06 28
не, писать то он пишет , но еденицу. Все время.
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
15.07.2010, 23:06 29
т.е. ведь переменная должна сохранятся при переходе, а она все время обновляется (приравнивается к нулю, пребавляется 1 и все).
может ее надо сохратять насильно или еще что-нибудь...
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
16.07.2010, 15:52 30
ты не прав там же стоит '!', так что переменная не обновляется
все должно работать
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
16.07.2010, 22:47 31
Я даже беру из книги примеры с сессиями, cookie'ми - не работает. Каждый раз переменная обновляется. Что-то в настройках php.ini у меня не так, только не знаю что. Больше причин я не вижу.
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
17.07.2010, 15:42 32
Ладно, пойду вешаться...
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
17.07.2010, 17:23 33
У тебя какая версия PHP? Не мог же ты в самом деле сессии в пхп.ини запретить
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
17.07.2010, 22:43 34
php-4.3.5-Win32
достал щас перевод и полное описание httpg.conf и php.ini - буду изучать.
0
0 / 0 / 0
Регистрация: 10.07.2010
Сообщений: 66
17.07.2010, 22:57  [ТС] 35
evqe,извини за надоедливость,но мне не все понятно в твоем скрипте.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
session_start(); // начало сессии
if($_POST[foo_name]!=''){//проверка на нажатость =) кнопки Отправить
 
if(!$last_upload)$last_upload=0;// не понятно,что именно присвоено переменной $last_upload
 
$time=time();//пременная таим = времени отправки сообщения(да?)
 
if($time-$last_upload>2*60){//тут все ясно
 
copy($_POST[foo],$dir_path.$_POST[foo_name]);//тут не ясно что такое foo(что еи присвоено) и зачем вот это(что обозначает): $dir_path.$_POST[foo_name])
 
$_SESSION[last_upload]=$time;//тут все ясно
}else echo 'upload denied';//тут все ясно
}
?>
0
evge
18.07.2010, 16:25 36
><?
>session_start(); // начало сессии
>if($_POST[foo_name]!=''){//проверка на нажатость =) кнопки Отправить
foo-имя елемента формы <input type=file name=foo>
foo_name - имя загружаемого файла
>if(!$last_upload)$last_upload=0;// не понятно,что именно присвоено
>переменной $last_upload
если нет такой переменоой или она =0 или ='' to =0.
>$time=time();//пременная таим = времени отправки сообщения(да?)
серверное текущее время
>if($time-$last_upload>2*60){//тут все ясно
>copy($_POST[foo],$dir_path.$_POST[foo_name]);//тут не ясно что такое >foo(что еи присвоено) и зачем вот это(что обозначает):
foo - временный путь к загруженному файлу+foo_name (/var/tmp.....)
$dir_path - директория кудв этото файл надо положить
>$dir_path.$_POST[foo_name])
>$_SESSION[last_upload]=$time;//тут все ясно
>}else echo 'upload denied';//тут все ясно
>}
>?>
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 105
18.07.2010, 19:53 37
Все работает! Просто у меня было session.use_trans_sid=0.
0
Mikelangelo
11.08.2010, 21:55 38
Раз уж зашел разговор про сессии,то подскажите и мне плз

Вот у меня такой код:
Index.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<FORM METHOD='POST' action='golos.php'>
<TABLE BORDER=1><TR><TD><TABLE BORDER=0>
<TR><TD>Ваше мнение о сайте?</TD></TR>
 
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=1>Круто!</TD></TR>
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=2>Нормально</TD></TR>
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=3>Мне все равно</TD></TR>
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=4>Это что-то страшное!</TD></TR>
 
<TR><TD><INPUT TYPE=Submit NAME=vote VALUE=' отправить '></TD></TR>
<TR><TD><INPUT TYPE=Submit NAME=result VALUE=' смотреть результат '>
</TD></TR></TABLE></TD></TR></TABLE></FORM>
<? 
session_start();
session_register('contr');
 $contr=0;
  ?>
вроде все сделал по образцу, а комп ругается:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at E:MISHAInternetPHpLessonsPHPNextgolosindex.php:11) in E:MISHAInternetPHpLessonsPHPNextgolosindex.php on line 15
0 / 0 / 0
Регистрация: 10.07.2010
Сообщений: 66
11.08.2010, 22:21  [ТС] 39
сессии и куки нужно ставить в начале пхп кода, т.е. перед выводом инфы.
0
11.08.2010, 22:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2010, 22:21
Помогаю со студенческими работами здесь

Защита резидентной программы от повторной установки
Есть две программы резидентная и обращающаяся к ней. Что надо добавить чтобы защитить резидентную...

Вывод времени. Защита резидента от повторной загрузки
всем привет! снова имеется программа вывода времени, увы написанная не мной.. правда на сей раз...

Сообщение в БД о повторной записи
Подскажите, как сделать в форме, чтобы при заполнение формы, выходило сообщение (поиск информации...

Запрет повторной записи документа
Привет всем. Скажите пожалуйста как можно запретить повторную интерактивную запись документа?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru