Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Передача переменной при PHP_SELF, Потерял логику, в связи с неопытностью
Marik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 4
Пользователь №: 41977
На форуме: 1 год, 5 месяцев, 14 дней
Карма:




Ребята, косяк с "самодельной капчой", помогите.
Фишка в том что я ввожу в поле для капчи результат мат. действия, нажимаю submit, Обработчик формы PHP_self, начинаю проверять робот или нет, но после submit капча генерирует уже новое число. а сравнивает его с введенным старым.

Начинаю изучать, где-то я потерял логику, подскажите, умные люди... wink.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3487
Пользователь №: 38635
На форуме: 3 года, 3 месяца, 3 дня
Карма: 184




ну так код-то покажи


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Marik  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 4
Пользователь №: 41977
На форуме: 1 год, 5 месяцев, 14 дней
Карма:





<div id="main" align="center">
<?php

$random_img = rand(1, 7);
$random= rand(1, 100);
$capcha_result = $random + $random_img;
if (isset($_POST['submit'])) {

$form = false;

$capcha = $_POST['capcha'];


if (($capcha != $capcha_result) or (empty($capcha))) {
echo '<p class="important">Похоже, что вы робот, попробуйте еще раз</p>';
echo $capcha;
echo '<p>'.$capcha_result. '</p>';
$form = true;
}

if (isset($order)) {
echo '<p class="important">Вы не согласились с правилами </p>';
$form = true;
}

if (!(($capcha != $random + $random_img) or (empty($capcha))) and (!isset($order)) ) {
$kategoria = $_POST['kategoria'];
$url = $_POST['url'];
$name = $_POST['name'];
$description = $_POST['description'];
$author = $_POST['author'];
$email = $_POST['email'];
echo 'Все получилось';
}
}


else {
$form = true;
}

if ($form) {
?>
<form
action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" class="add_site_form">
<p>
Выберите категорию сайта:</br>
<select
size="1" name="kategoria">
<option
value='0'>
<option
value='1'>Аппаратное обеспечение
<option value='2'>Программное обеспечение
<option value='3'>Интернет
<option value='4'>Мобильная связь
<option value='5'>Сети
<option value='6'>Безопасность
<option value='7'>Игры
<option value='8'>Ремонт и обслуживание
<option value='9'>Интернет-магазины
</select>
<p>
Адрес сайта (без http и www)</br><input name='url' type='text' value='<?php echo $url; ?>'></p>
<p>
Название сайта (не более 40 символов)<br><input name='name' type='text' value="<?php echo $name; ?>"></p>
<p>
Описание сайта (не более 500 символов)<br><textarea name='description' rows='4' value="<?php echo $description; ?>"></textarea>
<p>
Ваше имя<br><input name='author' type='text' value="<?php echo $author; ?>"></p>
<p>
Ваш email (не публикуется)<br><input name='email' type='text' value="<?php echo $email; ?>"></p>
<p>
Я согласен с <a href="order.php">правилами каталога</a> <input type="checkbox" name="order"></p>
<p>

Математический результат:
<?php echo $random; ?> + <img src="images/capcha/<?php echo $random_img; ?>.png">= <input name='capcha' type='text' class="capcha">
</p>
<p
style="text-align: center;"><input name='submit' type='submit' value='Добавить'></p>
</form>
<?php

}
?>


Это сообщение отредактировал Marik - 16.10.2015 - 14:49
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Marik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 4
Пользователь №: 41977
На форуме: 1 год, 5 месяцев, 14 дней
Карма:




Решил сам, при помощи скрытого input в котором передавал через S_POST математический результат tongue.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
123456  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 894
Пользователь №: 30352
На форуме: 5 лет, 4 месяца, 24 дня
Карма: 13




вместо $capcha_result используй сессию
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3487
Пользователь №: 38635
На форуме: 3 года, 3 месяца, 3 дня
Карма: 184




Цитата (Marik @ 16.10.2015 - 14:37)
при помощи скрытого input в котором передавал через S_POST математический результат

И толку от такой капчи?
123456 правильно сказал, всё в сессию.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5597
Пользователь №: 35718
На форуме: 4 года, 4 месяца, 10 дней
Карма: 171




Цитата (AllesKlar @ 16.10.2015 - 18:19)
И толку от такой капчи?

это называется "на зло кондуктору пойду пешком"


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Marik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 4
Пользователь №: 41977
На форуме: 1 год, 5 месяцев, 14 дней
Карма:




Со временем допилю ) Я рак еще в этом суровом деле ( Учусь на примере каталога
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 891
Пользователь №: 37872
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 29




Здесь нет ни чего сложного
Скрипт каптчи

session_start();
$_SESSION['code'] = $code;//ваш код в captcha - циферки

Скрипт обработчика каптчи.

session_start();
if($_POST['capthca'] == $_SESSION['code'])
{

}

else
{

echo "<H3>Введен неверный код с картинки!</H3>";


}


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8899
Пользователь №: 26630
На форуме: 6 лет, 28 дней
Карма: 603




Цитата (arbuzmaster @ 19.10.2015 - 10:05)
Скрипт обработчика каптчи.

session_start();
if($_POST['capthca'] == $_SESSION['code'])
{

}
else
{

  echo "<H3>Введен неверный код с картинки!</H3>";


}

уязвимый код, после проверки переменную в сессии нужно обнулять.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 891
Пользователь №: 37872
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 29




Цитата (killer8080 @ 19.10.2015 - 12:57)

уязвимый код, после проверки переменную в сессии нужно обнулять.

Что значит обнулять - Ставить в ноль или удалять переменную из сессии?


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11866
Пользователь №: 23195
На форуме: 6 лет, 8 месяцев, 6 дней
Карма: 433

Трезвый :
7 лет, 7 месяцев, 5 дней


Цитата (arbuzmaster @ 19.10.2015 - 16:38)
Цитата (killer8080 @ 19.10.2015 - 12:57)

уязвимый код, после проверки переменную в сессии нужно обнулять.

Что значит обнулять - Ставить в ноль или удалять переменную из сессии?

ну ты сам подумай, чем это грозит, и поймешь, как этого избежать wink.gif


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 891
Пользователь №: 37872
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 29




Цитата (Invis1ble @ 20.10.2015 - 03:46)

ну ты сам подумай, чем это грозит, и поймешь, как этого избежать ;)

Я подумал и сделал так
$_SESSION['code']=rand(100,999);

Но что значит обнулить, я так и не понял.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26279
Пользователь №: 21350
На форуме: 7 лет, 16 дней
Карма: 730




обнулить = перезаписать = удалить


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8899
Пользователь №: 26630
На форуме: 6 лет, 28 дней
Карма: 603




Цитата (arbuzmaster @ 20.10.2015 - 08:00)
Я подумал и сделал так
$_SESSION['code']=rand(100,999);

где именно уточни пожалуйста, в коде отдающем страницу, или в коде генерирующем капчу?

Цитата (arbuzmaster @ 20.10.2015 - 08:00)
Но что значит обнулить, я так и не понял.

некорректно выразился, я имел ввиду unset($_SESSION['code']);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса