Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите вывести содержимое БД на страницу
 
 автор: ZHUR   (23.11.2007 в 22:39)   письмо автору
 
 

<?php
@mysql_connect("localhost", "root", "");
@mysql_select_db("zadachi");
$q=@mysql_query("select * from news");
if(!$q) die();
echo "<html><head><title>Test page</title></head>
<body>
<center><h1> WELCOME TO THE HOMEPAGE";
echo "<p><a href=Registration.php>РЕГИСТРАЦИЯ</a>
<a href=http://localhost/8115/index.html>PHP</a>
<hr>

<p><b> SITE NEWS</b><body>";

while($r=mysql_fetch_object($q))
{
echo "<body textcolor=#C0F0F0>
<a href=news.php?id=$r->id>$r->title</a><br><br>
</body>";
}
echo ("
</html>
<p><hr>
<center><i> WASHINGTON 2006 </i></center>
<body bgcolor=#C0C0C0>
</body>
<html>");


?>




<?php
$id=addslashes($_GET['id']);
@mysql_connect("localhost", "root", "");
@mysql_select_db("zadachi");
$q=@mysql_query("select * from news where ($id=$GET_id)");
if(!$q) die();

if($r=mysql_fetch_object($q))
{
echo "
<html><head><title>$r->title</title></head>
<body>
<b>$r->title</b><br><br>
$r->body
</body>
</html>
";

}



?>

   
 
 автор: ddhvvn   (23.11.2007 в 22:57)   письмо автору
 
   для: ZHUR   (23.11.2007 в 22:39)
 

И ???

   
 
 автор: ZHUR   (23.11.2007 в 23:02)   письмо автору
 
   для: ddhvvn   (23.11.2007 в 22:57)
 

На страницу добавляются новости из базы данных News. Вижу, что вывод происходит(Washington смещается вниз), но новостей самих не видно!

   
 
 автор: Trianon   (23.11.2007 в 22:59)   письмо автору
 
   для: ZHUR   (23.11.2007 в 22:39)
 

тег BODY не выводят в цикле.

   
 
 автор: ZHUR   (23.11.2007 в 23:06)   письмо автору
 
   для: Trianon   (23.11.2007 в 22:59)
 

Да и без <body> в цикле не фурычит.

   
 
 автор: morkovkin   (23.11.2007 в 23:15)   письмо автору
 
   для: ZHUR   (23.11.2007 в 23:06)
 


$q=@mysql_query("select * from news where ($id=$GET_id)");


А здесь всё правильно?

   
 
 автор: ZHUR   (23.11.2007 в 23:19)   письмо автору
 
   для: morkovkin   (23.11.2007 в 23:15)
 

Ну вроде да.

   
 
 автор: Trianon   (23.11.2007 в 23:21)   письмо автору
 
   для: ZHUR   (23.11.2007 в 23:19)
 

ну если да, то где у Вас хоть что-нибудь присваивается переменной $GET_id ?

   
 
 автор: morkovkin   (23.11.2007 в 23:24)   письмо автору
 
   для: ZHUR   (23.11.2007 в 23:19)
 


$q=@mysql_query("select * from news where id=$id");


может Вы хотели, что-то типо этого?

   
 
 автор: ZHUR   (23.11.2007 в 23:36)   письмо автору
 
   для: morkovkin   (23.11.2007 в 23:24)
 

Скрипт должен принимать и обрабатывать Get- параметр id для реализации sql-inj.

   
 
 автор: afdm   (23.11.2007 в 23:31)   письмо автору
 
   для: morkovkin   (23.11.2007 в 23:15)
 

where id=".$_GET['id'] А вообще не понятно зачем открывать два раза одно соединение?!!! :)

   
 
 автор: morkovkin   (23.11.2007 в 23:42)   письмо автору
 
   для: afdm   (23.11.2007 в 23:31)
 

А я что написал? Там же чуть выше он обработал гет-параметр:

$id=addslashes($_GET['id']);

   
 
 автор: ZHUR   (23.11.2007 в 23:49)   письмо автору
 
   для: morkovkin   (23.11.2007 в 23:42)
 

1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0

   
 
 автор: morkovkin   (23.11.2007 в 23:55)   письмо автору
 
   для: ZHUR   (23.11.2007 в 23:49)
 

Добавьте в конец:

mysql_free_result ( $q );

Но проблема врятли в этом..

Посмотрите в php.ini параметр:
mysql.trace_mode = off

   
 
 автор: ZHUR   (24.11.2007 в 00:02)   письмо автору
 
   для: morkovkin   (23.11.2007 в 23:55)
 

Ты был прав, но проблема не исчерпана. Попрежнему пусто.

   
 
 автор: morkovkin   (24.11.2007 в 00:05)   письмо автору
 
   для: ZHUR   (24.11.2007 в 00:02)
 

Блин, мой минус, что я не "учебник", а всё делаю методом тыка, и здесь трудно потыкать... но попробуй:


$q=@mysql_query("select * from news where (id = $id)");


А вообще, может какая то не совместимость мускула с пхп...

   
 
 автор: ZHUR   (24.11.2007 в 00:12)   письмо автору
 
   для: morkovkin   (24.11.2007 в 00:05)
 

И так и так уже пробовал. Ничего пока не получается!

   
 
 автор: Trianon   (24.11.2007 в 00:14)   письмо автору
 
   для: ZHUR   (24.11.2007 в 00:12)
 

может имеет смысл @ убрать?

   
 
 автор: morkovkin   (24.11.2007 в 00:18)   письмо автору
 
   для: ZHUR   (24.11.2007 в 00:12)
 


<?php
mysql_connect
("localhost""root""");
mysql_select_db("zadachi");
$id=addslashes($_GET['id']);
$q=mysql_query("select * from `news` where `id` = ".$id."");

if(
$r=mysql_fetch_array($q))
{
echo 
"<html><head><title>".$r['title']."</title></head><b>".$r['title']."</b><br><br>".$r['body']."</html>";
}
?>

   
 
 автор: Unkind   (24.11.2007 в 00:31)   письмо автору
 
   для: morkovkin   (24.11.2007 в 00:18)
 

$id=addslashes($_GET['id']);
$q=mysql_query("select * from `news` where `id` = ".$id."");


Ваш код содержит уязвимость, поскольку само значение, которое Вы обработали addslashes() не обрамлено кавычками/апострофами. А вообще для числовых значений как тут лучше принудительно приводить к integer или float.

   
 
 автор: morkovkin   (24.11.2007 в 00:33)   письмо автору
 
   для: Unkind   (24.11.2007 в 00:31)
 

Согласен :) Для начала хотелось бы услышать ответ автора о работоспособности у него кода... а про только числовое значение, хотел позже ему сказать..

   
 
 автор: ZHUR   (24.11.2007 в 00:41)   письмо автору
 
   для: morkovkin   (24.11.2007 в 00:33)
 

я немножко облегчил себе задачу, вместо fetch_object использовал fetch_array и всё получилось

   
 
 автор: morkovkin   (24.11.2007 в 00:50)   письмо автору
 
   для: ZHUR   (24.11.2007 в 00:41)
 

Ну я тож в приведенном выше коде использовал Аррэй..
А по поводу защиты запроса, т.к. используются только числовые значения, можно обезопасить себя примерно так:


<?php
mysql_connect
("localhost""root""");
mysql_select_db("zadachi");
if(
preg_match("/[0-9]/",$_GET['id']))  // Разрешаем только числа
{
$q=mysql_query("select * from `news` where `id` = ".$id."");

if(
$r=mysql_fetch_array($q))
{
echo 
"<html><head><title>".$r['title']."</title></head><b>".$r['title']."</b><br><br>".$r['body']."</html>";
}
}
else

echo 
"Не балуй!"
}
?>

   
 
 автор: Unkind   (24.11.2007 в 00:59)   письмо автору
 
   для: morkovkin   (24.11.2007 в 00:50)
 

> preg_match("/[0-9]/",$_GET['id'])

Опять же уязвимость. Взломщику достаточно употребить хоть одну цифру в injection, чтобы это обойти. Нужно выделять начало и конец в паттерне: "/^\d+$/".

   
 
 автор: ZHUR   (24.11.2007 в 01:01)   письмо автору
 
   для: Unkind   (24.11.2007 в 00:59)
 

Согласен.

   
 
 автор: Unkind   (24.11.2007 в 01:04)   письмо автору
 
   для: ZHUR   (24.11.2007 в 01:01)
 

ZHUR, а Вы кто?

   
 
 автор: ZHUR   (24.11.2007 в 01:11)   письмо автору
 
   для: Unkind   (24.11.2007 в 01:04)
 

Я курсант военного института. Сейчас ищу тему на диплом. Постоветовали углубиться в web-технологии, а именно реализовать программно автоматический поиск и эксплуатацию уязвимости SQL-injection. Как вы, наверное, поняли, я-начинающий web-программист. Буду рад дружескому совету!

   
 
 автор: morkovkin   (24.11.2007 в 01:05)   письмо автору
 
   для: Unkind   (24.11.2007 в 00:59)
 

Забодали :))) Мы же не яндекс пишем.. Хотя спасибо, что подправляете :)

   
 
 автор: Unkind   (24.11.2007 в 01:07)   письмо автору
 
   для: morkovkin   (24.11.2007 в 01:05)
 

Не Вы ли говорили, что работаете на mamba.ru, или я что-то путаю? :)

   
 
 автор: morkovkin   (24.11.2007 в 01:10)   письмо автору
 
   для: Unkind   (24.11.2007 в 01:07)
 

Я пошутил, что там работаю :) Мне просто предложили :) Но я преуспевающий эколог, на данный момент мне это более интересно :) И более оплачиваемее, чем программист :)
p.s. А мамбовцы, что не люди чтоли? Они ж не ходячие словари..

   
 
 автор: Unkind   (24.11.2007 в 01:16)   письмо автору
 
   для: morkovkin   (24.11.2007 в 01:10)
 

> А мамбовцы, что не люди чтоли? Они ж не ходячие словари

Ммм. Не понял. При чем тут словари? :)

   
 
 автор: morkovkin   (24.11.2007 в 01:17)   письмо автору
 
   для: Unkind   (24.11.2007 в 01:16)
 

Ну как бы выражение :) Словари, буквари, книжки, учебники, мануалы :)))
Типо тоже ошибаются :)

   
 
 автор: Unkind   (24.11.2007 в 01:19)   письмо автору
 
   для: morkovkin   (24.11.2007 в 01:17)
 

Ну http://mamba.ru/, кажется, один из самых популярных систем знакомств в СНГ. Допустить там ошибку может дорогого стоить...

   
 
 автор: ZHUR   (24.11.2007 в 01:26)   письмо автору
 
   для: Unkind   (24.11.2007 в 01:19)
 

А вы чем занимаетесь?

   
 
 автор: Unkind   (24.11.2007 в 01:34)   письмо автору
 
   для: ZHUR   (24.11.2007 в 01:26)
 

ZHUR, я Вас с кое кем перепутал. :) Поэтому спросил.

   
 
 автор: morkovkin   (24.11.2007 в 01:29)   письмо автору
 
   для: Unkind   (24.11.2007 в 01:19)
 

Безусловно, но я не вижу там ничего революционного, чтобы чем-то рисковать. Всё, что там реализовано, проверено "веками". А за 5 лет существования можно залатать любые дыры...
p.s. Блин, не могу выразить мысль, мозг заснул уже :) Работают только пальцы и глаза...

   
 
 автор: ZHUR   (24.11.2007 в 01:38)   письмо автору
 
   для: morkovkin   (24.11.2007 в 01:29)
 

НУ Что ВСЕМ сПАСИБО И ДО ЗАВТрА. Новый день - новые проблемы!!

   
 
 автор: morkovkin   (24.11.2007 в 01:39)   письмо автору
 
   для: ZHUR   (24.11.2007 в 01:38)
 

И тебе удачи :)

   
 
 автор: Unkind   (24.11.2007 в 01:39)   письмо автору
 
   для: morkovkin   (24.11.2007 в 01:29)
 

Ну раз им нужны PHP-программисты, то, возможно, но и создают что-то новое.

   
 
 автор: Unkind   (24.11.2007 в 01:39)   письмо автору
 
   для: morkovkin   (24.11.2007 в 01:29)
 

Антифлад добавлять так и не хотят...

   
 
 автор: morkovkin   (24.11.2007 в 01:42)   письмо автору
 
   для: Unkind   (24.11.2007 в 01:39)
 

Если и создают что-то новое, то я бы посчитал это бесполезным. Да, не спорю, это будет пользоваться популярностью, может даже бешенной, но если ВКонтакте будет существовать и развиваться в том же темпе, то никакие сайты знакомст не нужны. ВКонтакте намного всё удобнее и просто приятнее. А сайты знакомств для "бедных" людей, которым трудно подойти к девушке\парню на улице.. никогда их не понимал...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования