За последние 24 часа нас посетил 17831 программист и 1704 робота. Сейчас ищут 994 программиста ...

синхронизация форм и случайных чисел(подскажите что делать)

Тема в разделе "Прочие вопросы по PHP", создана пользователем wwwwwwwia, 31 янв 2014.

  1. wwwwwwwia

    wwwwwwwia Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    7
    Симпатии:
    0
    Есть такой код(файл "x.php")



    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Untitled Document</title>
    </head>

    <body>

    <form action="x.php" method="post" name="q">
    <input name="w" type="text" size="20" maxlength="20">
    <input name="e" type="submit" value="enter"></form>
    <?php
    $r=rand(0,9);
    echo $r;
    if ($r==$_POST[w]) echo "OOOOOOOOOOOOOOOOOOOOOOOk"; else echo "HREN";
    ?>
    </body>
    </html>


    Показывается случайная цифра.Нужно чтоб при введении такой же в форму и нажатии ентер,выводилось ОООООООООООООк , а не хрен.Очень нужен принцип.Желательно что куда переставить или подставить или вставить.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: синхронизация форм и случайных чисел(подскажите что дела

    или гет или пост

    соотв, генеришь и сравниваешь.

    Добавлено спустя 2 минуты 11 секунд:
    Re: синхронизация форм и случайных чисел(подскажите что делать)
    Должно работать
     
  3. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Re: синхронизация форм и случайных чисел(подскажите что дела

    а в чем проблема? вроде все работает.
    Вам нужно чтобы сгенерированое вами число появилось в input?

    Добавлено спустя 45 минут 21 секунду:
    Re: синхронизация форм и случайных чисел(подскажите что делать)
    или это
    Код (Text):
    1.  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf8">
    6. <title>Untitled Document</title>
    7. </head>
    8.  
    9. <body>
    10.  
    11. <form action="x.php" method="post" name="q">
    12. <input name="w" type="text" size="20" maxlength="20">
    13. <input name="e" type="submit" value="enter"></form>
    14. </body>
    15. </html>
    16.  
    17. <?php
    18. session_start();
    19.     if ($_SESSION['temp_r'] == $_POST['w']) {
    20.         echo "OOOOOOOOOOOOOOOOOOOOOOOk<br>";
    21.     } else {
    22.         echo "HREN<br>";
    23.        
    24.     }
    25.    
    26. $r = rand(0, 9);
    27. $_SESSION['temp_r']= $r;
    28. echo "Случайное число".$r."<br>";
    29. ?>
     
  4. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Re: синхронизация форм и случайных чисел(подскажите что дела

    Наверное вы смысл не понимаете как скрипт срабатывает.Смотрите.
    Когда вы первый раз обращаетесь к скрипту
    то бишь http://php.ru/x.php
    у вас ничего не сработает так как вы не передали параметров.
    а попробуйте вот так http://php.ru/x.php?w=514232
    но у вас опять не сработает, а всё очень просто потому что
    генерация случайного числа происходит каждый раз по новому когда вы обращаетесь к скрипту.
    А так как вы ввести число можете только обратившись к скрипту, но вы увидите уже старое число.
    Ваш ввод не поспевает за генерацией rand(0,9);Когда вы нажимаете сабмит, всё скрипт по новой перегружается.Точнее происходит его вызов.
    Попробуйте так обратится http://ваш_сайт/x.php?w=1213123123

    Код (Text):
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <html>
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    5. <title>Untitled Document</title>
    6. </head>
    7.  
    8. <body>
    9.  
    10. <form action="x.php" method="post" name="q">
    11. <input name="w" type="text" size="20" maxlength="20">
    12. <input name="e" type="submit" value="enter"></form>
    13. <?php
    14. $r=rand(0,9);
    15. echo $r;
    16. if (1213123123==$_POST[w]) echo "OOOOOOOOOOOOOOOOOOOOOOOk"; else echo "HREN";
    17. ?>
    18. </body>
    19. </html>
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Re: синхронизация форм и случайных чисел(подскажите что дела

    Зайдя на страницу у вас появится форма и ниже с генерируется число, далее вы жмете сабмит формы у вас обновляется страница и генерируется опять число, только уже новое, а теперь главный момент, каким образом вы хотите получить соответствие, если у вас с каждым разом генерируется новое число?
    Заходим на страницу:
    Форма
    генерация: 34635
    Отправляем форму
    опять генерация: 65435
    34635 == 65435
    То есть с каждым разом когда вы отправляете форму у вас генерируется новое число ниже.
     
  6. Evgenij404

    Evgenij404 Новичок

    С нами с:
    3 янв 2014
    Сообщения:
    20
    Симпатии:
    0
    Re: синхронизация форм и случайных чисел(подскажите что дела

    Сделайте два файла, первый html с формой, второй php со скриптом и ваш код будет работать.
     
  7. Серджио

    Серджио Новичок

    С нами с:
    10 окт 2014
    Сообщения:
    1
    Симпатии:
    0
    Re: синхронизация форм и случайных чисел(подскажите что дела

    Тоже возникла точно такая же проблема.

    Хотел создать небольшое приложение по угадыванию слов.

    1. Нажимаем на кнопочку и в поле посредством rand выпадает слово (иностранное).
    2. Отмечаем в списке русский эвивалент и нажимаем уже другую кнопочку чтоб сравнить.

    Но ничего не выходит потому что rand срабатывает и соотвтественно меняет своё значение при любой обновке странички независимо каким образом её обновили - хоть через submit хоть чз F5.
    Нажал на submit, в а переменной rand значение изменилось и в результате сравнение с переменной из списка будет ложным хотя изначально визуально в submit'е и в rand'е всё совпадало.

    Неужели это неразрешимая для php задача? Выходит придётся этот алгоритм использовать только на javascript?
    Как думаете с помощью сессии в php такое приложение можно записать?
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: синхронизация форм и случайных чисел(подскажите что дела

    скорее всего именно с ними. хранить в куке или в форме - можно подменить. хранить в сессии - браузер не знает что там на стороне сервера. и все ок.