Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите мне написать регистрацию с куки

35K
13 февраля 2008 года
GnoMuK
7 / / 13.02.2008
Всем привет,

Вот я хочу написать маленький портал. Я уже прочитал очень много статей в инете, много книг (то есть быстренько пробежался глазами), но вот у меня возникла проблемма и уже не хватает нервов её решить. :)

Значит, с чего я решил начать - это сделать регистрацию пользователей на сайте. У меня всё получается, делал через сессии, но я теперь понимаю, что это мне не очень удобно.
Например когда пользователь опять заходит на страничку, которую гости не могут читать (у меня в файле это account.php), то пользователи её не видят, потому что сессия их истекла. Поэтому я думаю мне нужно куки.

Я пытался вставить куки в checklogin.php и login_success.php, но почему-то не получается (при входе на страницу main_login.php там внизу должна появляться надпись, что я уже вошёл). В комментариях вы там сможете это увидеть.
Я убирал session_start() и вместо $_SESSION или session_register писал $_COOKIE и ставил setcookie, но результат был жирный ноль. Может даже быть, что я написал что-то не так в скриптах.

Вообщем, надеюсь, что мне кто-нибудь сможет помочь написать этот куки или придумать какой-нибудь другой вариант решения. :confused:
Кстати, для новичков этот пример очень будет полезен!

Я так же пытался сделать регистрацию, вход и персональную страницу в виде index.php?page=login через switch или модули, но не выходило. С функциями типа myfunction() таже ситуация.
Я такую статью видел здесь: http://www.codenet.ru/webmast/php/modules.php

А, чуть не забыл, как сделать инфо о пользователе в таком виде index.php?id=XoxMa ?

Может быть для кого-нибудь это будет интересно сделать. :rolleyes:

В файле находится:
account.php - страница, которую могут просматривать только зарегистрированные пользователи.
checklogin.php - скрипт для входа на сайт.
config.php - конфиг базы данных.
login_success.php - страничка об успешном входе на сайт.
logout.php - выход.
main_login.php - форма для входа на сайт.
register.html - форма регистрации.
register.php - скрипт регистрации + в конце сообщение об успешной регистрации.
db.sql - сама база данных (из одной таблицы).

Скачать здесь: http://sushko.net/register.zip
:)
244
14 февраля 2008 года
UAS
2.0K / / 19.07.2006
Цитата: GnoMuK
Например когда пользователь опять заходит на страничку, которую гости не могут читать (у меня в файле это account.php), то пользователи её не видят, потому что сессия их истекла. Поэтому я думаю мне нужно куки.


а на чем, по вашему, основаны сессии? Тут вам от этого никак не избежать.. Или ставьте бесконечно большое время жизни сессии


Цитата: GnoMuK
Я так же пытался сделать регистрацию, вход и персональную страницу в виде index.php?page=login через switch или модули, но не выходило.


Эммм я так и не понял чего там не работает?) Че сложного-то..
Делаете запрос к БД, используя WHERE `login` = login (ну типа этого) и сверяете пароль. и если верно, то редирект на панель управления.

Цитата: GnoMuK
А, чуть не забыл, как сделать инфо о пользователе в таком виде index.php?id=XoxMa ?

о_0 это про че?

35K
14 февраля 2008 года
GnoMuK
7 / / 13.02.2008
Ок, сейчас попробую что-нибудь ещё сделать.
Я только не знаю, как сделать бесконечное время действия сессии?
1.8K
14 февраля 2008 года
Валериус
190 / / 14.07.2006
Цитата: GnoMuK
Я только не знаю, как сделать бесконечное время действия сессии


Извини, что без точных указаний, но поcмотри здесь на возможности сессий и попробуй после открытия сессии "ручками" подрпавить срок годности сессионного печенья.

А по поводу инфы. Выдели переменную, которую больше нигде не будешь использовать и через switch проверяй её. Потом select * from users where login=$uid

35K
15 февраля 2008 года
GnoMuK
7 / / 13.02.2008
Ха, помогите мне найти ошибку! Когда я загружаю index.php, то страница долго загружается и пишет, что её невозможно отобразить.
Думаю, тут будет понятно, что в config.php хранится только несколько переменных о бд.

Код:
<?php

switch(page)
{
    case true:
    true();
    break;

    case check:
    check();
    break;

    case account:
    account();
    break;

    case logout:
    logout();
    break;

    default:
    login();
}

    function login()
    {
    session_start();

if (isset($_SESSION['myusername']))
    {
    header ("Location: index.php?page=account");
    }
else {
    echo "

<html><body>
<table width='300' border='0' align='center' cellpadding='0' cellspacing='1' bgcolor='#CCCCCC'>
<tr>
<form name='form1' method='post' action='index.php?page=check'>
<td>
<table width='100%' border='0' cellpadding='3' cellspacing='1' bgcolor='#FFFFFF'>
<tr>
<td colspan='3'><strong>Member Login</strong>
</td>
</tr>
<tr>
<td width='78'>Username</td>
<td width='6'>:</td>
<td width='294'><input name='myusername' type='text' id='myusername'></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name='mypassword' type='text' id='mypassword'></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type='submit' name='Submit' value='Login'></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</body></html>

"
;
}
    }

    function true()
    {
    session_start();

// if(!session_is_registered(myusername)) {

if (!isset($_SESSION['myusername'])) {
header("location:index.php");
}
    else {
    echo 'вы успешно зашли как '.$_SESSION['myusername'];
//  $usercookie = $_SESSION['myusername'];
//  setcookie("myusername", $usercookie, time() + 600);
}
    }

    function check()
    {
require_once ("config.php");

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");

session_start();

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from signup form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

$sql="SELECT * FROM $table WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if ($count == 1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
// session_register("myusername");
// session_register("mypassword");
$_SESSION['myusername'] = "$myusername";
$_SESSION['mypassword'] = "$mypassword";
header("location:index.php?page=true");
}
else {
echo "неправильный юзер или пароль";
}
    }

    function account()
    {
    session_start();

if (isset($_SESSION['myusername']))
    {
    echo 'эта инфа только для зарегиных пользователей. привет, '.$_SESSION['myusername'];
}
else {
    echo "вы не зарегины";
}
    }

    function logout()
    {
    session_start();
    session_destroy();
    echo "вы вышли";
    }
?>
1.8K
18 февраля 2008 года
Валериус
190 / / 14.07.2006
У тебя в первых же строка ошибка: switch всегда выбирает первый вариант. Возьми все переключатели в кавычки.
353
18 февраля 2008 года
Nixus
840 / / 04.01.2007
1)
 
Код:
switch([COLOR="Red"]$[/COLOR]page)

2) Не используй ключевые слова в качестве имен.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог