За последние 24 часа нас посетили 15789 программистов и 1635 роботов. Сейчас ищут 926 программистов ...

Запрет прямого ввода

Тема в разделе "PHP для новичков", создана пользователем Squoll, 8 окт 2009.

  1. Squoll

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

    С нами с:
    20 сен 2009
    Сообщения:
    10
    Симпатии:
    0
    Добрый день незнал как правильно назвать тему вообшем у меня есть скрипт
    PHP:
    1. <?php
    2. include 'header.php';
    3. include 'antisql.php';
    4.  
    5. $error = ($user_class->jail > 0) ? "Вы неможете совершать преступления находясь в тюрьме." : $error;
    6. $error = ($user_class->hospital > 0) ? "Вы неможете совершать преступления находясь в больнице." : $error;
    7.  
    8. if (isset($error)){
    9.     echo Message($error);
    10.     include 'footer.php';
    11.     die();
    12. }
    13.  
    14. $crime = $_GET['id'];
    15.  
    16. if ($crime != ""){
    17.  
    18.     $result = mysql_query("SELECT * FROM `crimes` WHERE `id`='".$crime."'");
    19.     $worked = mysql_fetch_array($result);
    20.     $nerve = $worked['nerve'];
    21.     $name = $worked['name'];
    22.     $stext = '[[К сожалению я ещё непридумал сообшение!]]';
    23.     $ctext = '[[К сожалению я ещё непридумал сообшение!]]';
    24.     $ftext = '[[К сожалению я ещё непридумал сообшение!]]';
    25.     $stexta = explode("^",$worked['stext']);
    26.     $stext = ($stexta[0] != "") ? $stexta[array_rand($stexta)] : $stext;
    27.     $ctexta = explode("^",$worked['ctext']);
    28.     $ctext = ($ctexta[0] != "") ? $ctexta[array_rand($ctexta)] : $ctext;
    29.     $ftexta = explode("^",$worked['ftext']);
    30.     $ftext = ($ftexta[0] != "") ? $ftexta[array_rand($ftexta)] : $ftext;
    31.    
    32.     $chance = rand(1,(100 * $nerve - ($user_class->speed / 35)));
    33.     // get the crimes here
    34.  
    35.     $money = (25 * $nerve) + 15 * ($nerve - 1);
    36.     $exp = $money;
    37.  
    38.     if ($user_class->nerve >= $nerve) {
    39.         if($chance <= 75) {
    40.             echo Message($stext."<br><br><font color='green'>Успех! Вы получили ".$exp." опыта и $".$money.".</font><br><a href='crime.php?id=".$crime."'>Повторить</a> | <a href='crime.php'>Назад</a>");
    41.             $exp = $exp + $user_class->exp;
    42.             $crimesucceeded = 1 + $user_class->crimesucceeded;
    43.             $crimemoney = $money + $user_class->crimemoney;
    44.             $money = $money + $user_class->money;
    45.             $nerve = $user_class->nerve - $nerve;
    46.             $result = mysql_query("UPDATE `grpgusers` SET `exp` = '".$exp."', `crimesucceeded` = '".$crimesucceeded."', `crimemoney` = '".$crimemoney."', `money` = '".$money."', `nerve` = '".$nerve."' WHERE `id`='".$_SESSION['id']."'");
    47.         }elseif ($chance >= 150) {
    48.             echo Message($ctext."<br><br><font color='red'>Вас поймали.</font> Вас посадили в тюрьму на " . $crime * 10 * 5 / 60 . " минут.");
    49.             $crimefailed = 1 + $user_class->crimefailed;
    50.             $jail = $crime * 10 * 5;
    51.             $nerve = $user_class->nerve - $nerve;
    52.             $result = mysql_query("UPDATE `grpgusers` SET `crimefailed` = '".$crimefailed."', `jail` = '".$jail."', `nerve` = '".$nerve."' WHERE `id`='".$_SESSION['id']."'");
    53.         }else{
    54.             echo Message($ftext."<br><br><font color='red'>Вы провалили задание.</font><br><a href='crime.php?id=".$crime."'>Повторить</a> | <a href='crime.php'>Назад</a>");
    55.             $crimefailed = 1 + $user_class->crimefailed;
    56.             $nerve = $user_class->nerve - $nerve;
    57.             $result = mysql_query("UPDATE `grpgusers` SET `crimefailed` = '".$crimefailed."', `nerve` = '".$nerve."' WHERE `id`='".$_SESSION['id']."'");
    58.         }
    59.     } else {
    60.         echo Message("У вас недостаточно смелости для этого задания.");
    61.     }
    62.     include 'footer.php';
    63.     die();
    64. }
    65. ?>
    66.  
    67. <tr><td class="contenthead">Преступления</td></tr>
    68.  
    69. <tr><td class="contentcontent">
    70.     <table width='100%'>
    71.         <tr>
    72.             <td width='50%'><b>Название</b></td>
    73.             <td width='25%'><b>Смелость</b></td>
    74.             <td width='25%'><b>Действие</b></td>
    75.         </tr>
    76. <?
    77. $result = mysql_query("SELECT * FROM `crimes` ORDER BY `nerve` ASC");
    78. while($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    79.     echo "<tr><td width='50%'>".$line['name']."</td><td width='25%'>".$line['nerve']."</td><td width='25%'>[<a href='crime.php?id=".$line['id']."'>Выполнить</a>]</td></tr>";
    80. }
    81. ?>
    82.     </table>
    83. </td></tr>
    84. <?php
    85. include 'footer.php';
    86. ?>
    Поле ID преступления берётся из mysql если поставить в адресной строке номер id несуществующего преступление то оно тоже считается только в минус. Посоветуйте что надо сделать чтобы при вводе несуществующего номера id ничего непроисходило или же выдавалось сообшение об ошибке. Заранее благодарен.
     
  2. LuckyScrat

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

    С нами с:
    16 июн 2009
    Сообщения:
    176
    Симпатии:
    0
    Адрес:
    Москва
    проверять сколько строк возвращает mysql, если 0 то с таким ID записи нет, соответственно выдавать ошибку/сообщение
     
  3. Squoll

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

    С нами с:
    20 сен 2009
    Сообщения:
    10
    Симпатии:
    0
    а можно выложить линк где подробней можно прочитать об этом в php
     
  4. Phantik

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

    С нами с:
    2 июл 2009
    Сообщения:
    163
    Симпатии:
    0
  5. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1