За последние 24 часа нас посетили 22702 программиста и 1281 робот. Сейчас ищут 904 программиста ...

Форма обратной связи отпраляет сообщение со второго раза

Тема в разделе "Сделайте за меня", создана пользователем vadsim, 28 фев 2017.

  1. vadsim

    vadsim Новичок

    С нами с:
    28 фев 2017
    Сообщения:
    3
    Симпатии:
    0
    Доброе утро Уважаемые!
    Решите пожалуйста проблему..
    На сайте (на htm) есть форма обратной связи (обработчик на php, сама форма и страницы: ошибка, сообщение отправлено - на htm).
    Когда все поля формы заполнены, вводится код в окно капчи и с первого раза сообщение не отправляется, если снова вернуться в форму и ввести новую капчу (старая обновилась), то все нормально, сообщение уходит и теперь пока на сайте, то сообщения со всех страниц отправляются сразу и сколько хочешь.
    Но при первом заходе на сайт или после его закрытия, а потом снова открытия, то все повторяется снова.
    Т.е. форма отправляет сообщение только со второго раза.
    Где-то нашел, что надо в .htaccess добавить строку для автостарта сессии php:
    php_value session.auto_start 1
    Но это ни чего не дало - отправляет только со второго раза.
    Отключил капчу и все стало работать нормально. Значит скорее всего проблема в файле index.php, который отвечает за капчу и расположен в папке captcha
    Сам сайт fаnаtgusyаtnik.ru
    Помогите (исправьте) пожалуйста эту проблему.
    Если надо, то скажите какие еще файлы выложить.
    Сам index.php:
    PHP:
    1. <?php
    2.  
    3.  
    4. /* Using:
    5.  
    6. <?php
    7. session_start();
    8. ?>
    9. <form action="./" method="post">
    10. <p>Enter text shown below:</p>
    11. <p><img src="PATH-TO-THIS-SCRIPT?<?php echo session_name()?>=<?php echo session_id()?>"></p>
    12. <p><input type="text" name="keystring"></p>
    13. <p><input type="submit" value="Check"></p>
    14. </form>
    15. <?php
    16. if(count($_POST)>0){
    17. if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
    18. echo "Correct";
    19. }else{
    20. echo "Wrong";
    21. }
    22. }
    23. unset($_SESSION['captcha_keystring']);
    24. ?>
    25.  
    26. */
    27.  
    28. include('kcaptcha.php');
    29.  
    30. if(isset($_REQUEST[session_name()])){
    31. }
    32.  
    33. $captcha = new KCAPTCHA();
    34.  
    35. if($_REQUEST[session_name()]){
    36. $_SESSION['captcha_keystring'] = $captcha->getKeyString();
    37. }
    38.  
    39. ?>
     
    #1 vadsim, 28 фев 2017
    Последнее редактирование модератором: 28 фев 2017
  2. vadsim

    vadsim Новичок

    С нами с:
    28 фев 2017
    Сообщения:
    3
    Симпатии:
    0
    Забыл
    Если при первом заходе обновить страницу формы (Ctrl+F5), то все нормально, сообщение уходит сразу.
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    о боже... о боже (666 раз) неужели это тот самый код "Скаченный от Попова" с которым мне пришлось возиться и переделывать всю структуру сайта

    lib/kcaptcha/index.php:
    PHP:
    1. <?php
    2.  
    3.  
    4. require ( 'kcaptcha.php' );
    5.  
    6. $captcha = new KCAPTCHA();
    7. $_SESSION['captcha_keystring'] = $captcha->getKeyString();
    --- Добавлено ---
    Не стоит скачивать УГ, а после прибегать на форум и просить переделать этот бред
     
    denis01 нравится это.
  4. vadsim

    vadsim Новичок

    С нами с:
    28 фев 2017
    Сообщения:
    3
    Симпатии:
    0
    Все. Проблема решилась.
    На одном из форумов написали мне код для этого index.php:

    PHP:
    1. <?php
    2. include('kcaptcha.php');
    3. $captcha = new KCAPTCHA();
    4. $_SESSION['captcha_keystring'] = $captcha->getKeyString();
    5. ?>
    Заменил и все стало нормально.
    Всем спасибо.
     
  5. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток

    Удали лучше это хомно. И ребята не смотрите вы видеоуроки Попова. Это же бред сивой кабылы. Рукожопый самоучка возамнил себя мегакодером и учит народ писать говнокоды.
     
    denis01 нравится это.
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    Кто не рискует, тот не кодит (с)