aaadddminnn
@aaadddminnn
php it ubuntu debian

Проверка не правильная или регулярка?

Привет. Генерирую числа с помощью mt_rand и шлю их курлом обработчику.
Не работают регулярки проверки этих чисел... Думал проблема в пробелах. Использовано было trim() Код ниже
<?PHP
include('../../inc/funs.php');



$oplata = $_POST['oplata'];
$rnd    = $_POST['rnd'];
$summ   = $_POST['summ'];
$time   = $_POST['time'];
$id     = $_POST['id'];
$kl     = $_POST['kl'];
$magas  = $_POST['magas'];
$hash   = $_POST['hash'];

//фильтр
$oplata = $dbc->real_escape_string(trim($oplata));
$rnd    = $dbc->real_escape_string(trim($rnd));
$summ   = $dbc->real_escape_string(trim($summ));
$time   = $dbc->real_escape_string(trim($time));
$id     = $dbc->real_escape_string(trim($id));
$kl     = $dbc->real_escape_string(trim($kl));
$magas  = $dbc->real_escape_string(trim($magas));
$query  = "Select * from progekt where numbe = '$magas'";
if ($result = mysqli_query($dbc, $query)) {
    if ($m = mysqli_fetch_array($result)) {
        
        
        if (!preg_match("/[0-9]/i", $oplata)) {
            if (!preg_match("/[0-9]/i", $rnd)) {
                if (!preg_match("/[0-9]/i", $summ)) {
                    if (!preg_match("/[0-9]/i", $time)) {
                        if (!preg_match("/[0-9]/i", $kl)) {
                            if (!preg_match("/[0-9]/i", $id)) {
                                if (!preg_match("/[0-9]/i", $magas)) {
                                } else {
                                    $query       = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','Мало того что номер магазина не верный, так тру хакеры напихали ещё и букв... Пиздец кароче','$date')";
                                    $result_pist = mysqli_query($dbc, $query);
                                }
                            } else {
                                $query       = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','Это не id а сплошная хуйня','$date')";
                                $result_pist = mysqli_query($dbc, $query);
                            }
                        } else {
                            $query       = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','Открытый ключ вообще не ключ','$date')";
                            $result_pist = mysqli_query($dbc, $query);
                        }
                    } else {
                        $query       = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','В time бред','$date')";
                        $result_pist = mysqli_query($dbc, $query);
                    }
                } else {
                    $query       = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','В суме бред','$date')";
                    $result_pist = mysqli_query($dbc, $query);
                }
            } else {
                $query       = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','В рандоме бред','$date')";
                $result_pist = mysqli_query($dbc, $query);
            }
        } else {
            $query       = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','В номере платежа бред а не номер','$date')";
            $result_pist = mysqli_query($dbc, $query);
        }
        
        
        
        
        
        $query = "Select id from user where id = '$id'";
        if ($result = mysqli_query($dbc, $query)) {
            if ($u = mysqli_fetch_array($result)) {
                
                $salt  = $m['salt'];
                $xxtea = $m['xxtea'];
                $h     = md5(sha1(md5(md5($salt . $oplata . $rnd . $summ . $time . $id . $kl . $magas . $xxtea . $salt) . $salt . $time . $id . $magas . $rnd) . $salt . $time . $id . $magas . $rnd) . $salt . $kl . $kl);
                
                
                
                if ($h == $hash) {
                    if ($m['numbe'] == $magas) {
                        if ("$u[id]" == "$id") {
                            
							
							
                        } else {
                            $query = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','юзер не найден','$date')";
                            $result_pist = mysqli_query($dbc, $query) or die('ошибка записи ошибки в бд');
                        }
                    } else {
                        $query = "insert into ag_global_eror (`eror`,`date`) values ('Магазин не найден','$date')";
                        $result_pist = mysqli_query($dbc, $query) or die('ошибка записи ошибки в бд');
                    }
                } else {
                    $query = "insert into eror (`magas`,`eror`,`date`) values ('$m[info]','хеши не совпали.','$date')";
                    $result_pist = mysqli_query($dbc, $query) or die('ошибка записи ошибки в бд');
                }
                
            } else {
                $query = "insert into ag_global_eror (`eror`,`date`) values ('Не удалось получить инфу юзера с бд','$date')";
                $result_pist = mysqli_query($dbc, $query) or die('ошибка записи ошибки в бд');
            }
        } else {
            $query = "insert into ag_global_eror (`eror`,`date`) values ('Не удалось найти юзера  бд (по ходу трухакеры напали)','$date')";
            $result_pist = mysqli_query($dbc, $query) or die('ошибка записи ошибки в бд');
        }
    } else {
        $query = "insert into ag_global_eror (`eror`,`date`) values ('Не удалось получить масив магазина.','$date')";
        $result_pist = mysqli_query($dbc, $query) or die('ошибка записи ошибки в бд');
    }
} else {
    $query = "insert into ag_global_eror (`eror`,`date`) values ('Не удалось выполнить выборку магазина с бд (по ходу трухакеры напали)','$date')";
    $result_pist = mysqli_query($dbc, $query) or die('ошибка записи ошибки в бд');
}
?>
Зарание спс за помощь.
  • Вопрос задан
  • 332 просмотра
Решения вопроса 2
index0h
@index0h
PHP, Golang. https://github.com/index0h
Мда... Вы с govnokod.ru копи-пасту сделали?

1. Не используйте супер глобальные переменные $_GET/$_POST/...
Вместо этого - Request объект любого понравившегося вам фреймворка, например этот

2. Не пишите транслитом, никогда

3. Не пишите одно и тоже. Если вам нужна валидация - используйте либо самописную, либо возьмите готовую:
моя реализация, symfony validation, respect validation

4. Вместо того, что бы миллион раз писать вложенные, обверните в try/catch и бросайте исключение на то, что не нравится. Дальше логгируйте

5. "date"?? REALLY???? Данные - "data", дата(время) - "date"

6. Если хочешь проверить строку на цифры - есть ctype_digit

7. Открой для себя мир autoload вместе с composer. По хорошему в современном проекте require и его производные пишутся 1 раз, в index.php.

8. НЕ <?PHP, А <?php

9. Рано, или поздно все равно придешь к MVC - посему лучше начинай раньше. Конкретно сейчас у тебя работа с БД (модели) пересекаются с работой контроллера (обработка входящих данных).

10. Забудь за существование глобальных переменных, в смысле вообще.
Ответ написан
@Remdev
В данном случае вы можете использовать функцию ctype_digit() - она вернёт true, лишь в том случае, если все символы в строке это цифры
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
ОХРЕНЕТЬ О_О

childrens-fears.jpg
Ответ написан
YardalGedal
@YardalGedal
yeah boy
Товарищ! Это п**дец!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы