Показать полную графическую версию : [решено] Как связать PHP и MYSQL
Хочу сделать гостевую, скрипты на PHP есть, но у меня маленькая проблемка:
надо чтобы запросы из PHP обращались к MYSQL
Обьясните пожалуйста, что надо делать: каких пользователей создать в MYSQL , как задать пароль, чтобы его не могли прочитать из файла .php
$dblocation="localhost";
$dbname="name1";
$dbuser="root";
$dbpasswd="";
$dbcnx=@mysql_connect($location, $user, $passwd);
я имею полный доступ к серверу и в принципе могу создать новую БД и новых пользователей для MYSQL, но какие права дать для пользователей - не знаю. Что надо написать вместо локалхоста, рута и пароля?
Извините за такие простые вопросы, но я только новичок
Что надо написать вместо локалхоста, рута и пароля?
Если тестируется на домашнем компе, то так и оставляй. Потом, когда будешь переносить на хостинг (платный или бесплатный), они дадут данные. Подправишь в конфиге и всё будет работать.
как задать пароль, чтобы его не могли прочитать из файла .php
Можно просто так:
<?php
$dblocation="localhost";
$dbname="name1";
$dbuser="root";
$dbpasswd="";
?>
Его никто не сможет прочитать. При вызове этого скрипта на исполнение ничего не произойдёт - переменные проинициализируются, но вместе со скриптом уйдут в никуда. На вывод не пойдут.
Можно ещё так сделать (файл с настройками, скажем, config.php):
<?php
if ($_SERVER["SCRIPT_NAME"] == 'config.php')
{
exit ("Ишь чего захотел, нехороший человек! Сюда тебе нельзя, однако.");
}
else
{
$dblocation="localhost";
$dbname="name1";
$dbuser="root";
$dbpasswd="";
}
?>
Если теперь этот скрипт вызвать на исполнение, то он возругается. Если подключается к основному скрипту, то всё будет нормально.
Есть, конечно, и другие способы извращений... Но достаточно первого.
vadimiron
08-08-2007, 12:16
Wasilij,
начните здесь (http://www.softtime.ru/article/index.php?id_article=98)
Вопросы, которые остались после прочтения - задавайте здесь
Coutty
к сожалению никто мне не даст данные: сайт расположен на собственном сервере фирмы и все надо делать мне самому
vadimiron
Спасибо я почитаю, а для FreeBSD, что нибудь есть? Большая ли разница в настройках php.ini для Windows и для FreeBSD?
Выдает такую ошибку в логах:
PHP Fatal error: Call to undefined function mysql_connect() in /usr/home/name/site/index.php on line 15
Как я понял, не установлено расширение php для работы с MySQL,
но какое расширение я не знаю.
из того что прочитал, имею следующее:
Есть настройки для Windows а надо для FreeBSD:
Директива extension_dir указывает директорию, в которой располагаются библиотеки расширений php
extension_dir = "c:/php/ext"
3. Подключите расширение для работы с MySQL
Для этого найдите в php.ini строчку:
;extension=php_mysql.dll
У кого сайт работает на FreeBSD, подскажите какие должны быть настройки в php.ini или еще дополнительные настройки
vadimiron
09-08-2007, 14:08
Wasilij,
Так вы проставили настройки extension_dir и extension=php_mysql.so ???
Wasilij
Как я понял, не установлено расширение php для работы с MySQL,
но какое расширение я не знаю.
сделайте файлик с единственной функцией phpinfo(); и посмотрите, что у Вас установлено, что не установлено и заодно все пути (включая место располажения extension_dir)
Прописал extension_dir=/usr/local/lib/php/... и extension=php_mysql.so
но все равно не работает ошибка та же:
PHP Fatal error: Call to undefined function mysql_connect() in /usr/home/name/site/index.php on line ...
смотрел файл с функцией phpinfo() там про БД даже и не упоминается
Уже такая версия напрашывается: может у меня неполная установка php, потому что MySQL сама по себе работает.
Поможет ли переустановка php? и как сделать, чтобы ничего не потерять
vadimiron
09-08-2007, 20:36
а php_mysql.so в папке /usr/local/lib/php/ присутствует???
Нету его там, только какая-то папка, файлов нету
искал этот файл еще в других папках, но не нашел.
Тогда вопрос: где взять файл php_mysql.so
и соответсвенно нужен еще файл для библиотеки или нет?
потому, что по указанному пути extension_dir=/usr/local/lib/php/... смотрел а такого файла для библиотеки нет
vadimiron
10-08-2007, 11:55
Wasilij,
Конечно файл модуля нужен, иначе функции модулей не будут работать
Поищите в интернете файл модуля для вашей системы (файл кстати не называется libmysql.so ???)
нашел файл: libmysqlclient.so.14 но только в папке usr/..../mysql/.. , может с него убрать расширение .14 ?
у меня в phpinfo(): extension_dir=/usr/local/lib/php/набор цифр - может это неправильно?
а php_mysql.so в папке /usr/local/lib/php/ отсутствует... может где то его найду
vadimiron
10-08-2007, 18:27
Wasilij,
Я не знаток линукса - может в форум Линукса перенести??
Есть такая ссылка - посмотрите (http://www.freebsdmadeeasy.com/tutorials/web-server/install-php-5-for-web-hosting.php)
Wasilij,
я правильно понимаю, что у Вас сервер на FreeBSD?
Кто его администрирует? Вы?
php_mysql.so
только mysql.so, если ничего в этом мире не изменилось
find / -name "mysql.so" -print
и посмотреть:
ls -l /usr/local/lib/php/Ваш_набор_цифр
FreeBSD5.4 Администрирую сервер я, но сервер достался мне в "наследство", начальную настройку делал не я, пришлось прочитать хендбук, чтобы немножко понять что к чему.
набор_цифр - как я понял это дата выхода данной версии PHP
причем папки "/usr/local/lib/php/набор_цифр" не существует вообще
а почему в phpinfo(): extension_dir=/usr/local/lib/php/набор_цифр не знаю
из всего выше изложенного я понял что мне надо нормально переустановить php, то есть включить модули, которые нужны для работы с MySQL
Скиньте мне пожалуйста ссылку на установку связки Apache2, PHP5, MySQL для FreeBSD на русском языке. В английском я не очень.
Заранее благодарен.
vadimiron
13-08-2007, 13:17
link (http://www.opennet.ru/base/sys/apache_tune_bsd.txt.html)
link2 (http://www.php5.ru/study/install)
link3 (http://dedic.ru/node/36)
Далее по Google-у
только mysql.so
Вопрос решен, почитал хендбук по FreeBSD раздел Apache
и все стало ясно: у меня не было расширения php для работы mysql
с помощью портов это расширение поставилось меньше чем за 1 минуту.
Включил, проверочный скрипт - все работает.
Также поставил пароль на базу данных, чтобы никто не лез в базу данных.
(Помню один случай как кто-то пытался более часа взломать сервер, увидел это в логах)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.