|
|
|
| Здравствуйте,я недавно приобрел вашу книгу,решил изучить PHP,Apache,MysQl,php 5-все скачал,установил давно,все работает,но вот сейчас возникла проблема... я пытаюсь реализовать регистрацию пользователя(в книге стр.185-189),написал код для всех трех файлов,но в файле auth.php,после заполнения мной форм имя и пароль,появляется ошибка:"Fatal error: Call to undefined function mysql_connect() in c:\www\Apache\htdocs\auth\auth.php on line 14" насколько я понял,мой пхп не хочет определить функцию mysql_connect(); подскажите ,пожалуйста,что мне делать,ведь это очень важный нювнс,еще у меня есть подозрения,что мои пхп таким же образом воспримет либо остальные функции,связанные с мускулом,либо конкретно в данном примере,он наверное не воспримет mysql_query и другие... | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 22:21)
| | Одной из особенностей текущих версий PHP 5 является то, что все расширения (в том числе и работа с СУБД MySQL) по умолчанию отключены. Для того чтобы включить поддержку MySQL необходимо в конфигурационном файле php.ini расскомментировать строку
extension=php_mysql.dll
а php_mysql.dll расположенную в папке C:/php/ext скопировать в С:/Windows/system32. После перезагрузки Web-сервера Apache функции для работы с MySQL станут доступными.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=194&page=1 | |
|
|
|
|
|
|
|
для: cheops
(09.08.2004 в 22:44)
| | раскомментировал я эту строку(она среди множества других,похожих на нее строк находится-так?),скопировал php_mysql.dll в system32 ,там еще вроде в php.ini надо extension_dir="c:\php\ext",такбвсе правильно???но только после перезагрузки он мне зразу warning-сообщение по этому поводу выдал,мол немогу че-то открыть или че-то у него не получается с c:\php\ext\php_mysql.dll как мне быть дальше(скрипт все-еще не работает) | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 23:06)
| | Так как php_mysql.dll скопирована в директорию C:/WINDOWS/system32, значение директивы extension_dir лучше оставить по умолчанию:
PS Если это не поможет скопируйте php_mysql.dll в C:/PHP, там где у вас расположен php-cgi.exe | |
|
|
|
|
|
|
|
для: cheops
(09.08.2004 в 23:21)
| | Вот даже какая ошибка точно при этом возникает(при перезагрузке аппача) "Unable to load dynamic libriary 'c:\php\ext\php_mysql.dll'-Не найдена указанная процедура" хотя файл находится в этой директории,наверное процедура mysql_connect(); просто как-то может не описана в моем php_mysql.dll??? ну,изменил я extension_dir,но от этого только в выдаваемой ошибке поменялось "c:\php\ext" на "./" вот и все,может вы что-то сможете сделать,если я вам его по почте вышлю???или так знаете,что делать... | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 23:23)
| | Лучше не зацикливайтесь на этой проблеме, может ему не нравится прямой слеш \ и стоит попробовать обратный /. Но если вы установите директиву
и скопируете php_mysql.dl в С:/php, PHP подцепит динамическую библиотеку 100%. | |
|
|
|
|
|
|
|
для: cheops
(09.08.2004 в 23:30)
| | так,значит надо раскомментировать строку(просто убрать перед ней ; -так ведь?),затем скопировать этот файл в c:\php ,ну там этот extension_dir поменять и все,работает,говорите...,а тот php_mysql.dll,который в system32 скопировал,удалить или как? | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 23:43)
| | Можете удалить, но даже если вы его оставите, на работоспособность это не повлияет - так как PHP будет загружать библиотеку из C:/PHP и дальше искать уже не будет. | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 23:23)
| | да нет все-равно,я все сделал точно,как вы сказали,но только выдаваемая при перезапуске аппача ошибка немного изменилась "Unable to load dynamic libriary
>'./php_mysql.dll'-Не найдена указанный модуль" ... | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 23:53)
| | Посмотрите пожалуйста размеры файлов:
php_mysql.dll - 49152
php-cgi.exe - 53248
Дистрибутив - php-5.0.0-Win32.zip | |
|
|
|
|
|
|
|
для: cheops
(09.08.2004 в 23:59)
| | да,у меня точно такие-же размеры...обоих файлов | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 00:02)
| | Хм... а вы не могли бы мне прислать ваш php.ini на cheops@softtime.ru или simdyanov@softtime.ru, чтобы я смог воспроизвести ситуацию у себя на машине? | |
|
|
|
|
|
|
|
для: cheops
(10.08.2004 в 00:38)
| | да,я выслал вам его на simdyanov@softtime.ru | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 09:44)
| | Отослал php.ini обратно. Ему действительно не нравятся прямые слеши в стиле Windows \, после замены слешей на обратные / на моей машине всё заработало
doc_root = "c:/www/Apache/htdocs"
extension_dir = "C:/php/ext"
PS Если что не получится пишите - будем разбираться дальше. | |
|
|
|
|
|
|
|
для: cheops
(10.08.2004 в 10:32)
| | опять не получилось,скопировал я этот файл себе в каталог windows,послеперезагрузки аппача он мне опять ошибку выдал,я вам принтскрин на мыло отправил... | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 15:31)
| | /*Задумчиво так...*/ При этом php_mysql.dll в C:/PHP/ext имеется? | |
|
|
|
|
|
|
|
для: cheops
(10.08.2004 в 21:44)
| | канэшна,но в ошибке-то он пишет,что не найден модули или не найдена процедура,значит сам-то файл он видит...еще,пришли-ка мне,пожалуйста свой пхп.ини я попробую своий твоим заменить... | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 21:52)
| | Отослал на почту... | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 15:31)
| | Не могли бы вы так же сообщить версию Apache? | |
|
|
|
|
|
|
|
для: cheops
(10.08.2004 в 22:13)
| | вот : apache_1.3.31-win32-x86-no_src | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 22:17)
| | А.... а я на 2.0.50 тестирую, сейчас на 1.3 по-экспериментирую - напишу о результатах... | |
|
|
|
|
|
|
|
для: cheops
(10.08.2004 в 22:26)
| | жду с нетерпением результата...кстати,у мя есть 2.0.50... | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 22:28)
| | я думаю,ну его кчертям,этого аппача 1.3 .поставлю 2,0,50 и не буду мучиться... | |
|
|
|
|
|
|
|
для: LimP
(10.08.2004 в 23:30)
| | Может и правильно... Apache 2 много менее капризен. | |
|
|
|
|
|
|
|
для: cheops
(10.08.2004 в 23:52)
| | Хм... хотя вот снёс Apache 2, поставил apache_1.3.27-win32-x86-no_src.exe - всё работает.... Попробуйте переставить Apache.
http://www.softtime.ru/info/articlephp.php?id_article=24 | |
|
|
|
|
|
|
|
для: cheops
(11.08.2004 в 00:30)
| | Возможно, вы не скопировали в дирректорию ОС (C://windows)
библиотеку "libmysql.dll", что храниться в корневом каталоге php
(C://php) | |
|
|
|
|
|
|
|
для: Kirill
(11.08.2004 в 10:45)
| | Да, действительно, попробуйте поискать её, но мне кажется она туда должна попадать при установке MySQL... | |
|
|
|
|
|
|
|
для: cheops
(11.08.2004 в 10:55)
| | ага,только подскажи мне пожалуйста,какой текст надо добавить в httpd.conf на апаче 2,чтобы подключить php5... | |
|
|
|
|
|
|
|
для: LimP
(11.08.2004 в 12:09)
| | да все,не надо,поставил я аппачь,скачал указанный файл в windows,угадайте что???правильно-при рестаре аппача вылазеет знакомая нам ошибка...и опять нихрена не работает... | |
|
|
|
|
|
|
|
для: LimP
(11.08.2004 в 12:48)
| | А MySQL какой версии? И запущен ли сам сервер MySQL, и если запущен, то какой (имя процесса в диспетчере задач, например, mysql-max-nt.exe)? | |
|
|
|
|
|
|
|
для: cheops
(11.08.2004 в 13:02)
| | спасибо,все.я все настроил,похоже,что он видит мускул,к нему подклюсается,но пишет регистрация невозможна,это я наверное не создал базу данных auth,кстати,расскажите,если вот я создал новую базу данных через sql-запрос в досе,то где мне ее можно просмотреть,она должна появиться в мускуладмине???кстати вот еще код файла auth.php,может я в нем че-то напортачил...
<?php
$dblocation = "127.0.0.1";
$dbname = "local";
$dbuser = "root";
$dbpasswd = "";
session_start();
if (isset($HTTP_POST_VARS['userid']) &&
isset($HTTP_POST_VARS['password']))
{
$userid = $HTTP_POST_VARS['userid'];
$password = $HTTP_POST_VARS['password'];
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('auth',$db_connect);
$query = "select * from auth where name='".$userid."'
and pass=password('$password')";
$result = mysql_query($query,$db_connect);
if ($result)
{
$HTTP_SESSIoN_VARS['valid_user'] = $userid;
}
}
?>
<html>
<body>
<h1>Страница Регистрации</h1>
<?
if (isset($HTTP_SESSION_VARS['valid_user']))
{
echo 'Вы зарегестрированы как '.$HTTP_SESSION_VARS['valid_user'].'<br />';
echo '<a href="destroy.php">Exit</a><br />';
}
else
{
if(isset($userid))
{
echo ("Регистрация невозможна!");
}
?>
<form method="post" action="auth.php">
<table>
<tr><td>Имя:</td>
<td><input type="text" name="userid"></td></tr>
<tr><td>Пароль:</td>
<td><input type="password" name="password"></td></tr>
<td><td colspan=2><input type=submit value='Зарегестрировать'>
</td></tr>
</table></form>
<?
}
?>
<a href="members_only.php">Только для зарегестрированных пользователей</a>
</body>
</html>
?>
|
| |
|
|
|
|
|
|
|
для: LimP
(11.08.2004 в 13:21)
| | >она должна появиться в мускуладмине???
Должна, но по моему не сразу... Лучше проверить это командой
в клиенте mysql. Если вас раздражает командная строка - вы можете воспользоваться Web-интерфейсом к MySQL - phpMyAdmin.
>кстати вот еще код файла auth.php
Когда устанавливается соединение с сервером и выбирается база данных - лучше проверять дескрипторы явно:
<?php
$dblocation = "127.0.0.1";
$dbname = "local";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P>В настоящий момент сервер
базы данных не доступен, поэтому
корректное отображение страницы
невозможно.</P>" );
mysql_error();
exit();
}
if (!mysql_select_db($dbname,$dbcnx) )
{
echo( "<P>В настоящий момент база
данных не доступна, поэтому
корректное отображение страницы
невозможно.</P>" );
mysql_error();
exit();
}
?>
|
PS Кстати, давайте новую тему заведём для дальшейшего обсуждения, а то это уже слишком длинная :))) и с ней не очень удобно работать...
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=189&page=1 | |
|
|
|
|
|
|
|
для: cheops
(11.08.2004 в 13:30)
| | Есть еще неплохая програмка MySQL Manager, несколько минут,чтобы разобраться с ней - и дальше уже никаких проблем. Хотя я вот привык к ком.строке :) Кстати, из скрипта я сделал вывод, что у вас пользователь root заходит просто без пароля. Это не опасно? | |
|
|
|
|
|
|
|
для: Lonely_Wolf
(16.08.2004 в 09:41)
| | На локальной машине никакой опасности нет, так как сервер не виден из сети... (в этом случае даже TCP/IP не задействуется - клиент и сервер общаются через сокет). | |
|
|
|
|
автор: marin.ru (05.12.2004 в 02:04) |
|
|
для: LimP
(09.08.2004 в 23:23)
| | Надо еще в папку c:\windows\system32 закинуть дополнительную библиотеку под названием libmysql.dll. Должно сработать. | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 22:21)
| | возникла таже проблема ... перепробывал все советы данные в этой ветке но ничего не помогло все равно выдает ошибку о обращении к неизвестной функции может быть что-нибудь посоветуете??
p.s. Apache2.0.50+PHP5.0.0+MySQL4.0.20d
p.s.s а есть функциональные различия между ПХП установленого в качестве модуля Апача и CGI??
p.s.s.s прикрепил свой конфиг | |
|
|
|
|
|
|
|
для: Chavez
(26.08.2004 в 19:27)
| | А сколько мегабайт весит ваш MySQL??? | |
|
|
|
|
|
|
|
для: Адоп Акробат
(26.08.2004 в 19:54)
| | архив-20.7 мб | |
|
|
|
|
|
|
|
для: Chavez
(26.08.2004 в 19:27)
| | Я бы не советовал использовать дистрибутивы с буквой d на конце. Лучше использовать просто MySQL4.0.20. Ваш php.ini - чист и после замены и перезагрузки web-сервера Apache - прекрасно прижился на моей машине. Если вам не трудно, сообщите пожалуйста выдаётся вам сообщение о невозможности загрузить динамическую библиотеку php_mcrypt.dll или нет.
PS Функциональные различия при использовании PHP в качестве модуля и внешней CGI-программы довольно существенные. Модуль исполняется гораздо быстрее (нет надобности запускать его в качестве отдельного потока при выполнении каждого скрипта), но он менее гибок в настройках и необходима его перекомпиляция при внесении или исключении дополнительных возможностей (например библиотеки расширений). Обычно модуль используют на боевых серверах, в то время как CGI-скрипт при написании и отладке Web-приложений... | |
|
|
|
|
|
|
|
для: cheops
(26.08.2004 в 23:31)
| | в том то вся и проблема что он ничего не пишет при загрузке сервер...просто загружается как если бы все было бы
в порядке | |
|
|
|
|
|
|
|
для: Chavez
(27.08.2004 в 08:50)
| | Хм... странно - так бывает, если модуль скомпилен без поддержки MySQL или не подключена динамическая библиотека в php.ini, в случае CGI-варианта... | |
|
|
|
|
автор: Unmerciful (23.03.2005 в 18:47) |
|
|
для: cheops
(27.08.2004 в 14:49)
| | Короче.. я все прочитал, что вы написали выше...
У меня такая же ошибка...
И так.. начнем с того, что я сделал..
1. скопировал libmysql.dll и в c:\windows\ и в c:\windows\system32
2. скопировал php_mysql.dll и в c:\windows\ и в c:\windows\system32
3. скопировал php_mysql.dll в c:\php
4. в php.ini изменял и на
extension_dir = "c:/php/ext"
extension_dir = "./"
и
extension_dir = "c:\php\ext"
extension_dir = ".\"
Короче ничего не хочет..
у меня стоит
1. Apache 2.0.52
2. PHP 5.0.3
3. MySQL 4.0.20 (кста пробовал ставить и 4.1 и еще пару версий... короч все равно..)
Помогите плиз... | |
|
|
|
|
автор: TXT (26.03.2005 в 15:55) |
|
|
для: Unmerciful
(23.03.2005 в 18:47)
| | Ех... Те же самые версии, те же самые попытки и те же самые результаты :( | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 22:21)
| | Если кому интересно:
поборол такую проблему путем перенастройки PHP, как CGI-приложения..
правда появились новые :) | |
|
|
|
|
|
|
|
для: LimP
(09.08.2004 в 22:21)
| | У меня была такаяже проблема!!!! Вобщем расказываю: Я с копировал php_mysql.dll в C:\WINNT , C:\WINNT\SISTEM32 , C:\WINNT\SISTEM и скопировал php.ini в C:\WINNT и в обоих ини я открыл тег загрузки етого длл Так же я скопировал все dll bp C:\PHP\EXT в C:\PHP\ И перезагрузил комп и красота все работает так что удачи :) | |
|
|
|