Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Как связать PHP и MYSQL (http://forum.oszone.net/showthread.php?t=88291)

Wasilij 08-08-2007 11:43 624528

Как связать PHP и MYSQL
 
Хочу сделать гостевую, скрипты на PHP есть, но у меня маленькая проблемка:

надо чтобы запросы из PHP обращались к MYSQL
Обьясните пожалуйста, что надо делать: каких пользователей создать в MYSQL , как задать пароль, чтобы его не могли прочитать из файла .php
$dblocation="localhost";
$dbname="name1";
$dbuser="root";
$dbpasswd="";

$dbcnx=@mysql_connect($location, $user, $passwd);

я имею полный доступ к серверу и в принципе могу создать новую БД и новых пользователей для MYSQL, но какие права дать для пользователей - не знаю. Что надо написать вместо локалхоста, рута и пароля?

Извините за такие простые вопросы, но я только новичок

Coutty 08-08-2007 12:13 624555

Цитата:

Цитата Wasilij
Что надо написать вместо локалхоста, рута и пароля?

Если тестируется на домашнем компе, то так и оставляй. Потом, когда будешь переносить на хостинг (платный или бесплатный), они дадут данные. Подправишь в конфиге и всё будет работать.

Цитата:

Цитата Wasilij
как задать пароль, чтобы его не могли прочитать из файла .php

Можно просто так:
PHP код:

<?php 
$dblocation
="localhost";
$dbname="name1";
$dbuser="root";
$dbpasswd="";
?>

Его никто не сможет прочитать. При вызове этого скрипта на исполнение ничего не произойдёт - переменные проинициализируются, но вместе со скриптом уйдут в никуда. На вывод не пойдут.

Можно ещё так сделать (файл с настройками, скажем, config.php):
PHP код:

<?php
if ($_SERVER["SCRIPT_NAME"] == 'config.php')
  {
  exit (
"Ишь чего захотел, нехороший человек! Сюда тебе нельзя, однако.");
  }
else 
  {
  
$dblocation="localhost";
  
$dbname="name1";
  
$dbuser="root";
  
$dbpasswd="";
  }
?>

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

vadimiron 08-08-2007 12:16 624557

Wasilij,
начните здесь

Вопросы, которые остались после прочтения - задавайте здесь

Wasilij 08-08-2007 12:57 624606

Coutty

к сожалению никто мне не даст данные: сайт расположен на собственном сервере фирмы и все надо делать мне самому

vadimiron
Спасибо я почитаю, а для FreeBSD, что нибудь есть? Большая ли разница в настройках php.ini для Windows и для FreeBSD?

Wasilij 08-08-2007 13:56 624658

Выдает такую ошибку в логах:

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 625302

Wasilij,
Так вы проставили настройки extension_dir и extension=php_mysql.so ???

mar 09-08-2007 14:56 625352

Wasilij
Цитата:

Цитата Wasilij
Как я понял, не установлено расширение php для работы с MySQL,
но какое расширение я не знаю.

сделайте файлик с единственной функцией phpinfo(); и посмотрите, что у Вас установлено, что не установлено и заодно все пути (включая место располажения extension_dir)

Wasilij 09-08-2007 19:49 625483

Прописал 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 625504

а php_mysql.so в папке /usr/local/lib/php/ присутствует???

Wasilij 10-08-2007 10:09 625716

Нету его там, только какая-то папка, файлов нету
искал этот файл еще в других папках, но не нашел.
Тогда вопрос: где взять файл php_mysql.so
и соответсвенно нужен еще файл для библиотеки или нет?
потому, что по указанному пути extension_dir=/usr/local/lib/php/... смотрел а такого файла для библиотеки нет

vadimiron 10-08-2007 11:55 625790

Wasilij,
Конечно файл модуля нужен, иначе функции модулей не будут работать
Поищите в интернете файл модуля для вашей системы (файл кстати не называется libmysql.so ???)

Wasilij 10-08-2007 15:40 625922

нашел файл: 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 626021

Wasilij,
Я не знаток линукса - может в форум Линукса перенести??

Есть такая ссылка - посмотрите

mar 11-08-2007 19:00 626330

Wasilij,
я правильно понимаю, что у Вас сервер на FreeBSD?
Кто его администрирует? Вы?

Цитата:

php_mysql.so
только mysql.so, если ничего в этом мире не изменилось
find / -name "mysql.so" -print

и посмотреть:
ls -l /usr/local/lib/php/Ваш_набор_цифр

Wasilij 13-08-2007 12:10 626874

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 626897

link
link2
link3

Далее по Google-у

Wasilij 15-08-2007 10:37 627843

Цитата:

Цитата mar
только mysql.so

Вопрос решен, почитал хендбук по FreeBSD раздел Apache
и все стало ясно: у меня не было расширения php для работы mysql
с помощью портов это расширение поставилось меньше чем за 1 минуту.
Включил, проверочный скрипт - все работает.
Также поставил пароль на базу данных, чтобы никто не лез в базу данных.
(Помню один случай как кто-то пытался более часа взломать сервер, увидел это в логах)


Время: 20:57.

Время: 20:57.
© OSzone.net 2001-