Moderator - Level 7 This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged. http://ru.php.net/manual/en/function.mysql-real-escape-string.php
По памяти пишу, не суть важно, так как в описании mysql_escape_string() в любом случае будет предложение использовать mysql_real_escape_string().
strip_tags() или htmlspecialchars() защитят от "остальных проблем" strip_tags() следует использовать, если в регистрационных данных не предполагается наличие тэгов. htmlspecialchars() использовать когда выводишь данные из БД, а не добавляешь.
Гениально, захочу я регнуть себе логин K<i>NG функция strip_tags() вернет TRUE в любом случае и рега пройдет, а потом когда буду логиниться окажется что пользователя K<i>NG нет, и в БД будет записан KNG.
я и не предлагаю при помощи strip_tags проверять валидность логина, тем более если логин может содержать тэги. Автор того сообщения писал про "форму регистрации" в которой как я понимаю могут и другие текстовые поля, и если в них запрещено использование тегов, то почему бы не удалить их. Проверка валидности логина/пароля естественно осуществляется по-другому, а для дополнительных полей формы регистрации подойдет и strip_tags
PHP: $query = 'INSERT INTO partners VALUES (NULL, '.$pass1.','.$_SERVER['REMOTE_ADDR'].', '.$conn.','.$wmr.')'; $q = mysql_query($query); if (!$q) { echo 'Не удалось добавить данные в БД'; } Возвращает всегда 'Не удалось добавить данные в БД', я неправильно формирую строку запроса с помощью операции конкатенации? Как тогда правильно сделать? постоянно с этим проблемы. ЗЫ Соединение с БД точно есть.
PHP: $query = "INSERT INTO partners VALUES (NULL,'". $pass1 ."','". $_SERVER['REMOTE_ADDR'] ."','". $conn ."','". $wmr ."')"; $q = mysql_query($query); if (!$q) { echo 'Не удалось добавить данные в БД'; } или попробуй указать порядок полей PHP: $query = "INSERT INTO partners (тут) VALUES (NULL,'". $pass1 ."','". $_SERVER['REMOTE_ADDR'] ."','". $conn ."','". $wmr ."')"; $q = mysql_query($query); if (!$q) { echo 'Не удалось добавить данные в БД'; }
как решить проблему,что при выполнении парсинга гугла запросом,например: Code: inurl:?id= ошибки нет,но появляется,если немного усложнить запрос,например: Code: inurl:index.php?id= Код: PHP: $search_string="inurl:index.php?id="; $url_search='http://www.google.ru/search?q='.$search_string.'&num=10';
PHP: $search_string=urlencode($search_string); Знаешь зачем? смотри, у тебя так: PHP: $search_string="inurl:index.php?id="; $url_search='http://www.google.ru/search?q='.$search_string.'&num=10'; Тоесть ссылка получается такая: Code: http://www.google.ru/search?q=inurl:index.php?id=&num=10 Браузер ее не поймет, потому что такие символы как "?" and "=" его запутают. Они так сказать, "зарезервированы". И не должны присутствовать в значениях переменных гет . Ссылка должна выглядеть вот так: Code: http://www.google.ru/search?q=inurl%3Aindex.php%3Fid%3D&num=10 Для этого воспользуйся функцией urlencode();
Доброе утро всем! А как можно с помощью такой HTML формы выводить все записи с базы где категория = 1; PHP: <div class="post"> <div class="post_title"><h2><a href=""><?=$row['title'];?></a></h2></div> <div class="post_date">Posted on <?=$row['date'];?> by <a href="#"><?=$row['author'];?></a></div> <div class="post_body"> <p> <?=$row['description'];?> </p> <p>Погнали!</p> </div> <div class="post_meta"> <a href="#">5 comments</a> | Прсмотров: <?=$row['view'];?> </div> </div> PHP: <?php $res = mysql_query("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'"); if(!$res) die('Ошибка базы данных' .mysql_error()); $row = mysql_fetch_assoc($res); ?> Таким способом выводит 1 запись, а мне нужно все. Спасибо.
PHP: <?php $res = mysql_query ("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'"); if (!$res) die ('Ошибка базы данных' .mysql_error()); while ($row = mysql_fetch_assoc($res)) { // что-то сделать } ?>
krypt3r спасибо, но не так то просто в while { } загнать весь этот HTML код: PHP: <div class="post"> <div class="post_title"><h2><a href=""><?=$row['title'];?></a></h2></div> <div class="post_date">Posted on <?=$row['date'];?> by <a href="#"><?=$row['author'];?></a></div> <div class="post_body"> <p> <?=$row['description'];?> </p> <p>Погнали!</p> </div> <div class="post_meta"> <a href="#">5 comments</a> | Прсмотров: <?=$row['view'];?> </div> </div> Я уже нашел способ как через PHP: print(""); выводить, но может есть еще варианты....
Если я вас правильно понял, то вам нужен альтернативный синтаксис, что-то типа PHP: <?php $res = mysql_query ("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'"); if (!$res) die ('Ошибка базы данных' .mysql_error()); while ($row = mysql_fetch_assoc($res)): ?> <div class="post"> <div class="post_title"><h2><a href=""><?=$row['title'];?></a></h2></div> <div class="post_date">Posted on <?=$row['date'];?> by <a href="#"><?=$row['author'];?></a></div> <div class="post_body"> <p><?=$row['description'];?></p> <p>Погнали!</p> </div> <div class="post_meta"> <a href="#">5 comments</a> | Просмотров: <?=$row['view'];?> </div> </div> <?php endwhile; ?> http://ru2.php.net/manual/en/control-structures.alternative-syntax.php http://ru2.php.net/manual/en/control-structures.while.php Либо вот такой вариант: PHP: <?php $res = mysql_query ("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'"); if (!$res) die ('Ошибка базы данных' .mysql_error()); $div_post = ''; while ($row = mysql_fetch_assoc($res)) { $div_post .= "<div class=\"post\"> <div class=\"post_title\"><h2><a href=\"\">{$row['title']}</a></h2></div> <div class=\"post_date\">Posted on {$row['date']} by <a href=\"#\">{$row['author']}</a></div> <div class=\"post_body\"> <p>{$row['description']}</p> <p>Погнали!</p> </div> <div class=\"post_meta\"> <a href=\"#\">5 comments</a> | Просмотров: {$row['view']} </div> </div>"; } echo $div_post; ?>
krypt3r Оно самое, то что доктор прописал +10, а то я целое утро мозг ломал как это можно было решить.