Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Персанализация пользователя 
:(
    Опции темы
Гость_Игорь
Дата 4.8.2004, 11:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 4.8.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



А что конкретно не работает ?

Что такое $sql и $customers_email_address ? Что то тут напутано....
PM   Вверх
Akina
Дата 4.8.2004, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 5
Всего: 454



Проверь:

1) получает ли твой скрипт передаваемые параметры?
2) правильно ли ты формируешь строку запроса?
3) нет ли ошибок при общении с базой (открытии коннекта, таблицы, выполнении запроса)?
4) возвращаются ли тебе записи из БД или пустой рекордсет?
5) верно ли ты парсишь результат и формуешь хидер ХТМЛ?

Потому как напахано...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Гость_Игорь
Дата 4.8.2004, 13:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











да ошибся $customers_email_address этот $customers_name


Цитата(Akina @ 4.8.2004, 12:47)
Проверь:

1) получает ли твой скрипт передаваемые параметры?
2) правильно ли ты формируешь строку запроса?
3) нет ли ошибок при общении с базой (открытии коннекта, таблицы, выполнении запроса)?
4) возвращаются ли тебе записи из БД или пустой рекордсет?
5) верно ли ты парсишь результат и формуешь хидер ХТМЛ?

Потому как напахано...



а как все это проверить???
  Вверх
skalex
Дата 4.8.2004, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



1.
Цитата
получает ли твой скрипт передаваемые параметры?

Код
print_r($_POST);

2.
Цитата
правильно ли ты формируешь строку запроса?

Код
echo "SELECT path FROM $table WHERE login='$customers_name' AND  password='$customers_password'"

3.
Цитата
нет ли ошибок при общении с базой (открытии коннекта, таблицы, выполнении запроса)?

насколько я понимаю, ты используешь некий класс для работы с БД. Поскольку непонятно, что это за класс - пока сказать нечего....
попробуй так:
Код
$my_sql =  mysql_connect ("$host", "$user_db", "$pass_db");
var_dump($my_sql);

4.
Цитата
возвращаются ли тебе записи из БД или пустой рекордсет?

выведи запрос в браузер (см. п.2) и выполни его непосредственно в mysql-мониторе (если есть возможность)

Так что все таки не работает то ???

Это сообщение отредактировал(а) Mace - 4.8.2004, 14:03
PM   Вверх
Гость_Игорь
Дата 4.8.2004, 14:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо, буду пробывать.


а вообще выдает такую ошибку
Parse error: parse error, unexpected T_CURLY_OPEN, expecting T_STRING

в строоке:
print "Location: $customers_email_address->{customers_put}";


  Вверх
skalex
Дата 4.8.2004, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Убери скобки "{" и "}" из этой строки


PM   Вверх
Гость_Игорь
Дата 4.8.2004, 15:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 4.8.2004, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



сложно сказать...
попробуй так:
Код
$check=$dbase->prepare("SELECT path FROM ".$table." WHERE login='".$customers_email_address."' AND password='".$customers_password."'");

PM   Вверх
Гость_Игорь
Дата 4.8.2004, 15:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











все ровно ошибка вот такая
Fatal error: Call to a member function on a non-object
  Вверх
skalex
Дата 4.8.2004, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



хе...
это - ошибка совсем другого рода!
Говорит о том, что ты пытаешься вызвать метод несозданного экземпляра класса.
Если, в качестве исходного варианта, использовать код из предыдущего поста, то можно сказать, что ты вызываешь метод prepare() экземпляра класса $dbase, который не был создан.
Как правило, экземпляры класса создаются с помощью конструктора....
PM   Вверх
Гость_Игорь
Дата 4.8.2004, 16:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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";
?>

И идет эта ошибка, как исправить? sad.gif
  Вверх
skalex
Дата 4.8.2004, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Скажи, ты сам писал этот код? Или выдрал откуда-нибудь?

Я же говорю, что ошибка в том, что:
Цитата
вызываешь метод prepare() экземпляра класса $dbase, который не был создан.


Переменная $dbase в твоем случае - статическая.

Надо создать экземпляр класса!
PM   Вверх
Гость_Игорь
Дата 4.8.2004, 16:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да код выбрал из многих скриптов, склеиваю

Как мне кажется до работы скрипта осталось не много.
  Вверх
skalex
Дата 4.8.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Ну раз такое дело, то давай так:
У тебя кроме этих двух файлов, еще что-нибудь есть?
Должно быть описание класса, экземпляр которого ты пытаешься "использовать".
Сделай в файле member.php:
Код
echo '<pre>';
print_r(get_declared_classes());
die();

Что выводит браузер ?
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0713 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.