![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Гость_Игорь |
|
|||
|
Unregistered |
Я плохо понимаю в php только начинаю учится.
Пожалуйста помогите написать персанализацию. Пусть есть у меня база данных (msql) в ней хранится имена пользователей, пароли, …, и путь до файла. Как сделать что бы пользователь набрал свое имя, пароль и его направило на тот файл который указан в базе??? Делаю в 1 файл форму например: <form method="post" action="member.php"> <p>Имя <input type="text" name="customers_email_address "></p> <p>Пароль <input type="text" name="customers_password"></p> <p><input type="submit" name="Submit" value="Submit"></p> </form> В другом файле member.php <? Error_Reporting(E_ALL & ~E_NOTICE); $host = "localhost"; $user_db = "intepskat"; $pass_db = "admin"; $dbase = "intepskat"; $dtable = "customers"; mysql_connect ("$host", "$user_db", "$pass_db"); mysql_select_db("$dbase"); $check=$sql->prepare("SELECT path FROM $table WHERE login='$customers_name' AND password='$customers_password'"); $check->execute(); $user=$check->fetchrow_hashref(); print "Location: $customers_email_address->{customers_put}"; ?> Где customers_name – имя пользователя в ячейки БД, customers_password – пароль пользователя в ячейки БД, customers_put – файл на который надо перейти пользователю в ячейки БД. Так не работает. |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
А что конкретно не работает ?
Что такое $sql и $customers_email_address ? Что то тут напутано.... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
Проверь:
1) получает ли твой скрипт передаваемые параметры? 2) правильно ли ты формируешь строку запроса? 3) нет ли ошибок при общении с базой (открытии коннекта, таблицы, выполнении запроса)? 4) возвращаются ли тебе записи из БД или пустой рекордсет? 5) верно ли ты парсишь результат и формуешь хидер ХТМЛ? Потому как напахано... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Гость_Игорь |
|
|||
|
Unregistered |
да ошибся $customers_email_address этот $customers_name
а как все это проверить??? |
|||
|
||||
| skalex |
|
||||||||||||||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
1.
2.
3.
насколько я понимаю, ты используешь некий класс для работы с БД. Поскольку непонятно, что это за класс - пока сказать нечего.... попробуй так:
4.
выведи запрос в браузер (см. п.2) и выполни его непосредственно в mysql-мониторе (если есть возможность) Так что все таки не работает то ??? Это сообщение отредактировал(а) Mace - 4.8.2004, 14:03 |
||||||||||||||
|
|||||||||||||||
| Гость_Игорь |
|
|||
|
Unregistered |
Спасибо, буду пробывать.
а вообще выдает такую ошибку Parse error: parse error, unexpected T_CURLY_OPEN, expecting T_STRING в строоке: print "Location: $customers_email_address->{customers_put}"; |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Убери скобки "{" и "}" из этой строки
|
|||
|
||||
| Гость_Игорь |
|
|||
|
Unregistered |
теперь ошибка
Parse error: parse error, unexpected T_VARIABLE, expecting T_STRING в $check=$dbase->prepare("SELECT path FROM $table WHERE login='$customers_email_address' AND password='$customers_password'"); |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
сложно сказать...
попробуй так:
|
|||
|
||||
| Гость_Игорь |
|
|||
|
Unregistered |
все ровно ошибка вот такая
Fatal error: Call to a member function on a non-object |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
хе...
это - ошибка совсем другого рода! Говорит о том, что ты пытаешься вызвать метод несозданного экземпляра класса. Если, в качестве исходного варианта, использовать код из предыдущего поста, то можно сказать, что ты вызываешь метод prepare() экземпляра класса $dbase, который не был создан. Как правило, экземпляры класса создаются с помощью конструктора.... |
|||
|
||||
| Гость_Игорь |
|
|||
|
Unregistered |
вот как в тотчности состоят у меня файлы
index.html <form method="post" action="member.php"> <p>username <input type="text" name="customers_email_address "> </p> <p>password <input type="text" name="customers_password"> </p> <p> <input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"> </p> </form member.php <?php Error_Reporting(E_ALL & ~E_NOTICE); $host = "localhost"; $user_db = "intepskat"; $pass_db = "admin"; $dbase = "intepskat"; $dtable = "customers"; mysql_connect ("$host", "$user_db", "$pass_db"); mysql_select_db("$dbase"); $check=$dbase->prepare("SELECT path FROM ".$dtable." WHERE login='".$customers_email_address."' AND password='".$customers_password."'"); $check->execute(); $user=$check->fetchrow_hashref(); print "Location: $customers_email_address->customers_gender"; ?> И идет эта ошибка, как исправить? |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Скажи, ты сам писал этот код? Или выдрал откуда-нибудь?
Я же говорю, что ошибка в том, что:
Переменная $dbase в твоем случае - статическая. Надо создать экземпляр класса! |
|||
|
||||
| Гость_Игорь |
|
|||
|
Unregistered |
Да код выбрал из многих скриптов, склеиваю
Как мне кажется до работы скрипта осталось не много. |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Ну раз такое дело, то давай так:
У тебя кроме этих двух файлов, еще что-нибудь есть? Должно быть описание класса, экземпляр которого ты пытаешься "использовать". Сделай в файле member.php:
Что выводит браузер ? |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
выводит следущее:
Array ( [0] => stdClass [1] => __PHP_Incomplete_Class [2] => Directory [3] => COM [4] => VARIANT ) |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
А какие файлы у тебя есть кроме тех двух ?
|
|||
|
||||
| Гость_Игорь |
|
|||
|
Unregistered |
Все, только эти два файла и созданная таблица customers в БД
|
|||
|
||||
| skalex |
|
||||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
На:
Это сообщение отредактировал(а) Mace - 4.8.2004, 17:02 |
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
Спасибо!!!
Попрообывал ошибка Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource в $result = mysql_fetch_array(mysql_query($query)); Я писал выше у каждого пользователя в ячейке customers_send вбит имя файла на который должен он перейти после авторизации. Еще раз спасибо!!! что помагаешь |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Значит, что то с доступом к БД....
Либо что то с запросом...
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
пишет
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in в строке $result = mysql_fetch_array(mysql_query($query)); и выводит resource(2) of type (mysql link) SELECT path FROM customers WHERE login='' AND password='L7NR1' |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Может ты что-нибудь напутал с полями в БД ?
Какая структура таблицы ? |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
на данный момент БД такая
CREATE TABLE `customers` ( `customers_id` int(11) NOT NULL auto_increment, `customers_send` varchar(64) NOT NULL default 'int.php', `customers_firstname` varchar(32) NOT NULL default '', `customers_lastname` varchar(32) NOT NULL default '', `customers_dob` datetime NOT NULL default '0000-00-00 00:00:00', `customers_email_address` varchar(96) NOT NULL default '', `customers_default_address_id` int(11) NOT NULL default '0', `customers_telephone` varchar(32) NOT NULL default '', `customers_fax` varchar(32) default NULL, `customers_password` varchar(40) NOT NULL default '', `customers_newsletter` char(1) default NULL, `customers_selected_template` varchar(20) NOT NULL default '', PRIMARY KEY (`customers_id`) ) TYPE=MyISAM AUTO_INCREMENT=16 ; |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
В своем запросе ты используешь некие поля:
А где они у тебя в таблице ??? Это сообщение отредактировал(а) Mace - 5.8.2004, 09:08 |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
извени, понял ошибку
на данный момент код такой <?php Error_Reporting(E_ALL & ~E_NOTICE); $host = "localhost"; $user_db = "intepskat"; $pass_db = "admin"; $dbase = "intepskat"; $dtable = "customers"; $sql = mysql_connect($host, $user_db, $pass_db); mysql_select_db($dbase, $sql); $query = "SELECT path FROM ".$dtable." WHERE customers_email_address='".$_POST['customers_email_address']."' AND customers_password='".$_POST['customers_password']."'"; $result = mysql_fetch_array(mysql_query($query)); echo $result['customers_send']; ?> Вроде так все правильно!? но все ровно ошибка Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource в $result = mysql_fetch_array(mysql_query($query)); |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Ты что, издеваешься надо мной ???
Повторяешь свои ошибки!!! Выбираешь несуществующее поле path! А насколько я понимаю, выбирать надо поле customers_send. Т.е.
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Извени все правильно, спасибо теперь ошибок нет!!!
Вроде теперь я стал понимать что к чему. Только после вода имени, пароля открывается пустотй member.php И не происходит переход на файл указанный в customers_send. Такой вопрос файл указанный в customers_send должен быть в тойже директории где и member.php? |
|||
|
||||
| skalex |
|
||||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Чтобы происходил переход (редирект) на другую страницы, браузеру надо передать заголовок Location c помощью функции header().
Например:
или в твоем случае:
Ньюансы использование этой функции уже не раз обсуждались на этом форуме. См. например здесь: http://forum.vingrad.ru/index.php?showtopic=25475 |
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
Если не сложно можно дальше начать усовершенствовать
если имя или пароль не правильное то ошибка если правильно тот переход на customers_send |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Можно и дальше...
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
может опять что то не так делаю, но на header($result['customers_send']); не хочет переходить
|
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Извини, в предыдущем посте я неправильно написал.
Надо писать:
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
на данный момент код:
<?php Error_Reporting(E_ALL & ~E_NOTICE); $host = "localhost"; $user_db = "intepskat"; $pass_db = "admin"; $dbase = "intepskat"; $dtable = "customers"; $sql = mysql_connect($host, $user_db, $pass_db); mysql_select_db($dbase, $sql); $query = "SELECT customers_send FROM ".$dtable." WHERE customers_email_address='".$_POST['customers_email_address']."' AND customers_password='".$_POST['customers_password']."'"; $result = mysql_fetch_array(mysql_query($query)); if (!$result['customers_send']) { header('error.php'); } else { header('Location: '.$result['customers_send']); } ?> Но ни чего не происходит просто белый экран и ни каких ошибок. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Ладно с этим как нибудь справлюсь.
А можно теперь сделать так чтоо бы постотронний пользователь не мог попать на файл указанный в customers_send, а только тот которому он относится??? |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Можно. Тут придется использовать куки (cookies). Это сообщение отредактировал(а) Mace - 5.8.2004, 17:15 |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
мммда, не поможешь?
А ты вообще откуда??? с меня пиво!!! |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Меня уволят, если узнают, сколько я провожу времени в этом форуме... Может быть лучше по e-mail свяжемся?
|
|||
|
||||
| Гость_Игорь |
|
|||
|
Unregistered |
твой e-mail не просмотреть
|
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Пиши на [email protected]
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Mace у тебя изменился адрес? не подскажешь новый
|
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Пиши на [email protected]
|
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Хех... и не тебя одного -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Sufius |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 5.4.2004 Где: Питер Репутация: 1 Всего: 1 |
Меня уже гоняют на работе...
гады айтишники... закрыли доступ на все музыкальные порталы, едва-едва аську поставил... а тут еще во время обеденного перерыва в марьяж играл - думал убьют =))) повезло - не убили... только обрубили еще один адрес... сейчас на этот форум обрубят вход и усё... можно уходить с работы =))) P.S. Народ, а кем кто работает? Не все же в сфере программирования... |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Sufius
Это уже офф. Я Манагер коммерческого отдела -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 10 Всего: 73 |
IZ@TOP, нехило... А на кого ж ты учишься?
-------------------- Теперь при чем :P |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Пока ни на кого.
Предлагаю подобные обсуждения перенести в приват. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |