Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Mysql
Форум программистов > Интернет и сети > Web-программирование > PHP программирование
Snake
Вобщем стала такая задача! Нужно узнать какие базы MySQL есть на сервере, потом узнать какие таблицы есть в каждой базе и название полей ну а потом естественно вывести! Возможно ли вообще такое написать на РНР и если да то подскажите как! smile.gif
Спасибо!
Acorn
Посмотри исходный код phpMyAdmin smile.gif
Gisma
посмотри базу данных MySQL smile.gif "mysql" там в таблицах все что тебе нужноwink.gif
Snake
Понимаю что немного не по теме! Я долго долбался почему же у меня phpMyAdmin не работает! Оказалось интепритатор старый! smile.gif Вобщем я обновился и теперь у меня некоторые скрипты не работаеют!! У меня файл для рабты с MySQL. Вобщем система такая:

//Это все один файл

<?php
if($sub == "1")
{
//тут соединение с базой(все пароли, адреса задаются в else)
}

else
{

<form action=/index.php method="post">
<input type="hidden" name=sub value=1>
<input type="submit" value=Submit>

}

?>


Т.е. получается что при подтверждении данные else'а передаются в первую часть программы и начинается работа с базой. Но когда я запускаю скрипт, т.е. идет работа с else'ом, выдается вот такое вот "Notice: Undefined variable: sub in F:\Server\www\index.php on line 6", а дальше все таблицы и т.д.(весь else) На старом интепритаторе все работало, а поставил 5-й и начало выдавать. Т.е. нажимаю на submit, а данные даже не посылаются, возвращает на начальный уровень sad.gif Кстати я поставил в php.ini что выводило все ошибки кроме замечаний и надпись исчезла! Но скрипт все равно не работает! Может знает в чем дело!?
Acorn
Поставь в php.ini register_globals в On.
Snake
Programmer, неа! не помогает...
Acorn
Кажется, я понял в чем твоя ошибка.
Поставь перед $sub знак @ т.е:
if(@$sub == "1")

Еще вариант: проверять существует ли перменная перед if-ом:
if(IsSet($sub))
//...а тут уже второй if
_serg_
to Snake
в пхп-ини убери вывод нотисов
Acorn
Для: _serg_
Лучше пусть будут...
_serg_
Цитата
Лучше пусть будут...

так у него именно из-за этого вылазят косяки в хтмл-представлениях
да и вообще на боевом сайте надо прятать такие дела
а если он сам какой код разрабатывает, пусть поднимает для этого девелоперский сервер. вот там, как раз, все нотисы, ворнинги, ерроры - включать в обязательном порядке
Acorn
Мне кажется, что лучше просто временно отключить, т.е. поставить @ - хотя, смотря что там и как там.. трудно сказать, когда не знаешь что там конкретно.
_serg_
Цитата
трудно сказать, когда не знаешь что там конкретно

я насмотрелся на коды этих движков - и пхпББ, и этот же ИПБ и не только форумы - мамбы (это ваще продкт-загадка), битриксы (один из самых нормальных по сравнению с остальными)...
и у всех одна и та же проблема - народ абсолютно не следит ни за ворнингами, ни за нотисами
такое впечатление, что их просто отключают, как ненужное.
бесит просто. как можно предлагать пусть и бесплатный, но все-таки глючный продукт.
на боевом сайте вообще ничего выводиться не должно - все в лог

а то будет примерно так:

имеем - сайт MoneyNews
]]>http://www.moneynews.ru/]]>
открываем любой материал (наугад):
]]>http://www.moneynews.ru/article.asp?view=4908]]>
пробуем на прочность
]]>http://www.moneynews.ru/article.asp?view='4908]]>
на лицо стандартная sql-инъекция
что-бы проэксплуатировать ее - надо узнать структуру таблицы:
]]>http://www.moneynews.ru/article.asp?view=4...999999999999999]]>
итого:
MS-SQL -сервер, система, вероятно, масдай (причем никакого сканирования еще не производилось - все видно на экране)
дальше я ничего делать, конечно, не буду, но даже лапух сразу попробует заюзать мс-скуэльную процедуру выполнения консольных команд. если удастся, сразу зальет веб-шелл, качнет, например, пинча, запустит эту заразу, убирется за собой и пойдет смотреть почту - что там нам прислал пинч.

з.ы. несколько минут, что бы найти в поисковике уязвимый сайт! офигеть...
Acorn
Для: _serg_
Круто biggrin.gif
sergushkin
Цитата
Вобщем стала такая задача! Нужно узнать какие базы MySQL есть на сервере, потом узнать какие таблицы есть в каждой базе и название полей ну а потом естественно вывести! Возможно ли вообще такое написать на РНР и если да то подскажите как!


Всё это можно получить с помощью SQL-запросов

1) Запрос
show databases;

возвращает таблицу из одного столбца с названиями баз данных на сервере MySQL

2) Запрос
show tables;

возвращает таблицу из одного столбца с названиями таблиц в активной в данный момент базе данных

3) Запрос
describe <table_name>;

возвращает таблицу с полной информацией о структуре таблицы с название <table_name> в активной в данный момент базе данных
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.