- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть такой код:
$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'
Есть такой код:
$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'
ТС ..... Я бы Вам советовал почитать что-нибудь про безопасное программирование =))
Кто же так пишет код ? Вам инклудов не хватает ? .... Кто же вставляет в запрос нефильтрованные переменные ????
Есть такой код:
$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'
$db->query = 'научись задавать вопросы!';
BigBoard добавил 19.11.2009 в 22:45
ТС ..... Я бы Вам советовал почитать что-нибудь про безопасное программирование =))
Кто же так пишет код ? Вам инклудов не хватает ? .... Кто же вставляет в запрос нефильтрованные переменные ????
А вы телепат? Откуда увереность, что переменная не проверена?
А вы телепат? Откуда увереность, что переменная не проверена?
А где проверка ?
По теме:
Если $_GET['name'] нет в базе, то запрос вернет ошибку. Т.е. переменная $query станет FALSE. Номер Ошибки можно узнать функцией mysql_error().
Но в принципе, если у Вас нет других ошибок, можно по этому параметру и выдавать текст. Т.е. следует добавить:
$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"') or die ('Такого имени в базе нет');Тоесть если такого name в базе нету, то писалось 'извините, такого в базе нет'
Кто же вставляет в запрос нефильтрованные переменные ????
Кто же вам сказал что это весь код????
А где проверка ?
а откуда я знаю? я не могу по одной строчке кода сказать это - это раз, во-вторых я не телепат - соответственно это два, и в третьих - я не утверждал, что она есть.
BigBoard добавил 19.11.2009 в 22:55
Тоесть если такого name в базе нету, то писалось 'извините, такого в базе нет'
я же тебе сказал, научись задавать вопросы, я незнаю твоего класса и немогу знать, что там возращается, ты хоть скажи чего ожидаешь?
Кто же вам сказал что это весь код????
$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');
Ну из данного участка скрипта видно что в классе дб определенна функция.. query, но вот что она возвращает отсюда не понятно (массив, или просто какое то число), соответственно сложно сказать где использовать иф, этого участка кода мало
Ок
function make_names_array(){
global $host, $user, $password, $db, $database_encoding, $pl_array;
$i=0;
$au_db = new DBLayer($host, $user, $password, $db);
$au_db->query("SET NAMES $database_encoding");
$query = $au_db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');
while($result = $au_db->fetch_assoc($query))
{
$char_data = explode(' ',$result['data']);
$char_gender = dechex($char_data[36]);
$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);
$char_gender = $char_gender{3};
$res_pol = $def['character_race'][$pol];
$pl_array[$i] = Array($result['name'], $result['race'], $result['gender'], $result['world_id'], $char_gender, $result['opit'], $result['admin']);
$i++;
}
$au_db->close();
unset($au_db);
return $i;
}
Кто же вам сказал что это весь код????
Пардоньте .... если Вы пишете $_GET["переменная"], то Вы берете эту переменную из строки. Я так и не понимаю .. в какой момент Вы ее фильтруете ??
Пардоньте .... если Вы пишете $_GET["переменная"], то Вы берете эту переменную из строки. Я так и не понимаю .. в какой момент Вы ее фильтруете ??
Не тупи, также проверит как и любую другую.
BigBoard добавил 19.11.2009 в 23:10
Есть такой код:
$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'
if ($query)
{
тут while
}
else
{
echo 'А нету таблицы, автор класса не подумал о том, что таблица может и быть, но MySql мог упасть в момент запроса';
}
Ок
function make_names_array(){
global $host, $user, $password, $db, $database_encoding, $pl_array;
$i=0;
$au_db = new DBLayer($host, $user, $password, $db);
$au_db->query("SET NAMES $database_encoding");
$query = $au_db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');
while($result = $au_db->fetch_assoc($query))
{
$char_data = explode(' ',$result['data']);
$char_gender = dechex($char_data[36]);
$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);
$char_gender = $char_gender{3};
$res_pol = $def['character_race'][$pol];
$pl_array[$i] = Array($result['name'], $result['race'], $result['gender'], $result['world_id'], $char_gender, $result['opit'], $result['admin']);
$i++;
}
$au_db->close();
unset($au_db);
return $i;
}
Можно было бы if(!$result) {echo "Такого пользователя нет в Базе";) НО
только вот сама функция make_names_array() возвращает если есть пользователь в базе число 1 ($i) если два три четыре и т.д числа ( 2, 3, 4 и т.д). А если нет пользователя .. то число 0
т. е где она используется if (make_names_array() == 0 ) {echo "Такого пользователя нет в базе ";}