|
|
|
| Уже создавал наподобие темку так и точного ответа никто не дал. Пишу один сайтик ("для себя") на PHP никак не могу разобраться с cookies и с session. Мне хочется написать код, который стоит на всех форумах, интернет-магазинах и др. Код связан с куками и сессиями. Нужно, чтобы при заходете нна сайт было: 1)Если посетитель зашел на сайт первый раз, то "существует надпись привет гость"; если посетитель уже зарегистрирован, то должна происходить проверка как какому типу относится данный пользователь user или moder или admin. Мне уже писали на подобный вопрос как с этим поступить, но что-то не идет.
Ну расклад такой: 1) Нов.посетитель нажимает кнопку(ссылку) Приступить к регистрация, заполняет все графы нажимает кнопку Зарегистрироваться. открывается главная страница и написано Привет $user Ваш статус $status
Мой пробный код с которым я химичу
<?
include("config.php");
if (isset($_COOKIE['name'])) {
setcookie("name");
$cook = $_COOKIE['name'];
$statususer=array(0=>"гость", 1=>"юзер", 2=>"админ");
mysql_connect($hostname,$login,$password, $db) or die("No connect");
mysql_select_db("$db") or die("No select DB");
$query="select * from authors where name like '$cook' AND statususer like '$statususer'";
$result=mysql_query($query);
$i=0;
/* Присвоение переменным значений полей user_name, phone, img для i-й
строки */
$user_name=mysql_result($result,$i,"name");
$phone=mysql_result($result,$i,"statususer");
echo $user_name;
echo $phone;
if ($user_name == $cook and $phone == "admin") {
echo("Ваш статус админ"); } else { echo("Ваш статус пользователь"); }
} else
{
error_reporting(E_ALL);
if(isset($_POST['fname'])) {
setcookie("name",$_POST['fname'],time()+3600,"/"); # Запомнили куки на час
}
if(!isset($_COOKIE['name']) || !isset($_POST['fname']))
{
echo("<HTML>
<BODY>
Привет Гость
<form action=\"\" method=\"post\">
<input type=text name=\"fname\">
<input type=submit value=\"send\">
</form>
</BODY>
</HTML>");
}
else
{
echo "Привет <b>".$_COOKIE['name']."</b>";
}
}
?>
|
Он что-то не работает. Но с базой данных соединение есть
вот код таблицы БД
CREATE TABLE authors (
id_author int(6) NOT NULL auto_increment,
name text,
passw text,
email text,
url text,
icq text,
about text,
photo text,
time datetime default NULL,
last_time datetime default NULL,
themes text,
statususer text,
PRIMARY KEY (id_author)
) TYPE=MyISAM;
|
Кто-нить знает как поступить в данной ситуации. Может у кого есть готовый код. Или тема существует наподобие моей решенная. Я PHP изучаю полгода. прогресс есть. В многом уже разобрался, а в этом никак, неделю уже сижу. Подскажите пожалуста. Заранее спасибо. | |
|
|
|
|
|
|
|
для: tokmak
(15.02.2007 в 13:34)
| | Не рациональная трата времени, зачем изобретать велосипед?
Для этого Вам необходима всего-лишь навсего CMS, можно OpenSourse, что нить типа Joomla.
Там все есть, что для вашего счастья необходимо. Т.к. это OpenSourse, то оч лего ее подогать, практически под любые задачи.
P.S.: Конечно, может это Вам не подойдет, если вы решили писать все с "нуля" принципиально:) | |
|
|
|
|
|
|
|
для: bestel
(15.02.2007 в 14:14)
| | Я не хочу использовать чужой CMS я пишу свой сайт. решил писать с нуля. Основное написал, а с этим ни как не разберусь. И поэтому прошу помощи у знатоков. Т.е у вас. | |
|
|
|
|
|
|
|
для: tokmak
(15.02.2007 в 15:03)
| | Ну что, никто не отвечает. Что же это очень тяжелая задача. Подалуста помогите с данным кодом. | |
|
|
|
|
|
|
|
для: bestel
(15.02.2007 в 14:14)
| | >Не рациональная трата времени, зачем изобретать велосипед?
Еще один... Вы в школе учились? А зачем? Все это уже изучили до вас! Зачем еще один умник, когда на погрузочно-разгрузочных работах рук не хватает?
Чтобы такие как вы скачали "OpenSourse, что нить типа Joomla", надо чтобы этот "OpenSourse, что нить типа Joomla" кто-то написал. И желательно чтобы он умел это делать. Вопреки распространенному заблуждению, эти умения даются не от рождения, а получаются в процессе работы. | |
|
|
|
|
|
|
|
для: tokmak
(15.02.2007 в 13:34)
| | В чём выражается "не работа" скрипта? | |
|
|
|
|
|
|
|
для: cheops
(15.02.2007 в 16:22)
| | Скрипт не распознает к какому классу относится посетитель, хотя в БД есть строки.
сделал так
<?php
error_reporting(E_ALL);
include("config.php");
$cook = $_COOKIE['name'];
$stat=array(0=>"гость", 1=>"юзер", 2=>"админ");
mysql_connect($hostname,$login,$password, $db) or die("No connect");
mysql_select_db("$db") or die("No select DB");
$status = mysql_query("SELECT * FROM `authors` WHERE `statususer`");
$who = mysql_result($status);
if(mysql_num_rows($status) > 0) {
if ($who != 0) {
if ($who == "admin") {
echo "Ваш статус<b>".$stat[2]."</b>"; }
if ($who == "user") {
echo "Ваш статус<b>".$stat[1]."</b>"; }
if ($who == "0") {
echo "Ваш статус <b>".$stat[0]."</b>"; }
}
}
?>
<?php
|
тоже самое. Можно узнать какой нужно написать код. Вот исходя из этого кода
$status = mysql_query("SELECT * FROM `authors` WHERE `statususer`");
$who = mysql_result($status);
|
если например у меня в колонки есть строка admin
и я пишу
if ($who == "admin") {
код }
|
Тоже не работает. В чем проблема? Как можно считать строку из столбца и сравнить с любой строкой? | |
|
|
|
|
|
|
|
для: tokmak
(15.02.2007 в 16:28)
| | Что-то опять ответов нет. ЛЮДИ ХЕЛП МИ ПЛИИЗ. Я чайник по данной тематике. | |
|
|
|
|
|
|
|
для: tokmak
(15.02.2007 в 16:58)
| | Если не секрет OpenSourse что это такое? Если это CMS система, зачем она мне нужно. Я хочу составить сам скрипт, а заодно и понять как он работает. | |
|
|
|
|
|
|
|
для: tokmak
(15.02.2007 в 16:28)
| | Вы неправильно используете mysql_result(). В данном случае должно быть что-то вроде
$who = mysql_result($sql, 0, 'who'); | |
|
|
|
|
|
|
|
для: Unkind
(15.02.2007 в 17:11)
| | Кто-нибудь может помочь мне найти ответ. Я в PHP почти ноль, но не совсем так как изучаю всего полгода. Выучил и разобрался у же во многом. Помогите. Есть тут кто? Знает ли кто нибудь? Помогите написать код по моей тематике. Очень нужно. | |
|
|
|
|
|
|
|
для: tokmak
(15.02.2007 в 17:21)
| | Блин. Люди помогите. Как это делается никак не вьеду. У же две темы создал никто не отвечает. Если вопрос мой не понятен или слишком сложный для вас та напишите хотя бы, а то я целый день в инете сижу, а толку нет. Жду ответа, Минут через десять вернусь. | |
|
|
|