За последние 24 часа нас посетили 17690 программистов и 1723 робота. Сейчас ищут 882 программиста ...

как разрешить использовать только целые числа?

Тема в разделе "PHP для новичков", создана пользователем Invision, 22 дек 2010.

  1. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    запрос переменной $stavka к примеру = 452fdk31kваы как из нее достать только 45231 символы и поместить в другую переменную?
     
  2. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
  3. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Эм, это точно то? Мне хотя бы просто значения принимать только 0-9
     
  4. Devzirom

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

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    PHP:
    1. <?php
    2. echo preg_replace('/[^0-9]++/u', '', '452fdk31kваы');
    3. ?>
     
  5. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Спасибо разобрался
     
  6. Devzirom

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

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Дак разобрался или мы тебе помогли? =)
     
  7. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Короче вот мой кусок кода


    Код (Text):
    1. // Сколько поинтов у игрока
    2. $mypoint = $this->user_points;
    3.  
    4. // Если поступил запрос то продолжим
    5. if (isset($_POST['point'])) {
    6.  
    7. // Добавляем в переменную значение из post point
    8. $stavka1 = $_POST['point'];
    9.  
    10. // Замена на целое число
    11. $stavka = preg_replace("/[^0-9]/", "", $stavka1);
    12.  
    13. // Проверяем на целые числа, если есть отрицательные или другие значения приостанавливаем...
    14. if ($stavka <= 0) {
    15. header("Location:../");
    16. }
    17.  
    18. // Проверяем хватает ли игроку поинтов....
    19. if (($_POST['point']) >= $mypoint) {
    20. header("Location:../");
    21. }
    22.  
    23. // Максимум ставка....
    24. if (($_POST['point']) >= 151) {
    25. header("Location:../");
    26. }
    27.  
    28. // Если значение = 0 то выйграл (вероятность 50%)
    29. if (mt_rand(0, 1) == 0) {
    30. $rezultat = $stavka*2;
    31.  
    32. $sql2 = mysql_query("UPDATE  `engine4_semods_userpoints` SET  userpoints_count=userpoints_count+'$rezultat', userpoints_totalearned=userpoints_totalearned+'$rezultat', win=win+'1' WHERE `userpoints_user_id`='$userpointid' LIMIT 1 ;");
    33.  
    34. echo "<div class='win'><b>Получено $rezultat поинтов!</b></div>";
    35. // Если нет то отнимаем столько сколько поставил присвоив переменную результат
    36. } else {
    37. $rezultat = $stavka*2;
    38. $sql2 = mysql_query("UPDATE  `engine4_semods_userpoints` SET  userpoints_count=userpoints_count-'$rezultat', userpoints_totalearned=userpoints_totalearned-'$rezultat', fuu=fuu+'1' WHERE `userpoints_user_id`='$userpointid' LIMIT 1 ;");
    39. echo "<div class='fu'><b>Проиграно $rezultat поинтов.</b></div>";
    40. }}
    41. // Форма отправки значения
    42. echo "
    43. <b>Ваша ставка:</b><br>
    44. <form name=\"game\" method=\"post\">
    45. <input type=\"text\" value=\"Осталось $mypoint поинтов\" name=\"point\" onclick=\"this.value='';\">
    46. <input type=\"submit\" value=\"Мне повезет!\" class=\"butwite\" >
    47. </form><br>
    48. <font style=\"font-size:11px;\"><font color=\"red\">*</font> Максимум ставка 150 поинтов</font><br>
    49. <font style=\"font-size:11px;\"><font color=\"red\">*</font> Шанс 50% - X2</font>
    50. ";
    51.  
    52. ?>
    53. <br>
    54. <i>Побед: <? echo $rowstat['win']; ?></i> <font color="grey"> | </font>  
    55. <i>Поражений: <? echo $rowstat['fuu']; ?></i>
    56. </div><br>
    57.  
    58. <div id="popular" style='display: none;'>
    59. <center><b>Список самых везучих</b></center><hr style='padding-top: 7px;border-bottom:dashed 1px #CECECE;'>
    60. <table width="100%">
    61.  
    62. <tbody>
    63. <tr>
    64. <td style='border-bottom:dashed 1px #CECECE;'><b>Имя</b></td>
    65. <td width='5'></td>
    66. <td style='color: green; border-bottom:dashed 1px #CECECE;' align='right'><b>В</b></td>
    67. <td width='5'></td>
    68. <td style='color: red; border-bottom:dashed 1px #CECECE;' align='right'><b>П</b></td>
    69. </tr>
    70. </tbody>
    71.  
    72. <?
    73. $query = "SELECT userpoints_user_id, win, fuu FROM `engine4_semods_userpoints` ORDER BY win DESC LIMIT 10";
    74. $res = mysql_query($query);
    75. while($row = mysql_fetch_array($res))
    76.  
    77. {
    78. $named = mysql_query ("SELECT user_id, username, displayname FROM `engine4_users` WHERE user_id='".$row['userpoints_user_id']."'");
    79. $rownamed = mysql_fetch_array($named);
    80.  
    81. echo "
    82. <tbody>
    83. <tr>
    84. <td style='border-bottom:dashed 1px #CECECE;'><a href='http://live.tomsk.ru/profile/".$rownamed['username']."' title='".$rownamed['displayname']."'>".$rownamed['displayname']."</a></td>
    85. <td width='5'></td>
    86. <td style='border-bottom:dashed 1px #CECECE;' align='right'><b>".$row['win']."</b></td>
    87. <td width='5'></td>
    88. <td style='border-bottom:dashed 1px #CECECE;' align='right'><b>".$row['fuu']."</b></td>
    89. </tr>
    90. </tbody>\n
    91.  
    92. ";
    93. }
    94. ?>
    95. </table>
    96. <font style='font-size:11px;'><b style='color: green;'>В</b> - выигрыш</font><br>
    97. <font style='font-size:11px;'><b style='color: red;'>П</b> - проигрыш</font>
    98. <hr style='padding-top: 7px;border-bottom:dashed 1px #CECECE;'>
    99. </div>
    ествественно говрявый и не правильный но пока что на большее не способен. проблема в следующем. Не работает
    // Максимум ставка....
    if (($_POST['point']) >= 151) {
    header("Location:../");
    }

    не работает

    // если есть отрицательные выкидываем
    if ($stavka <= 0) {
    header("Location:../");
    }

    итд.

    Ввожу значение 5553 к примеру а у меня поинтов 200, то ему пофиг могу и в минус уходить)уже который час и так и так бьюсь не срабатывает. проверил данные получаю из 2-х переменных.. жесть оО