Логин система за повече потребители и индивидуални страници

Lenor

Registered
Здравейте, използвам този готов урок.

Правим SQL заявка , чрез която създаваме таблица members :

Код:
View source

CREATE TABLE `members` (
`id` INT(4) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(65) NOT NULL DEFAULT '',
`password` VARCHAR(65) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

След това изпълняваме още една заявка за вмъкване на запис в тази таблица.

Код:
INSERT INTO `members` VALUES (1, 'john', '1234');

Чрез тази заявка ние направихме нов потребител - john , с парола - 1234

Сега следва и писането на php кода.

Първо създаваме страницата main_login.php

Код:
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Вход</strong></td>
</tr>
<tr>
<td width="78">Потребител</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Парола</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>

До тук всичко е ясно предполагам , продължаваме нататък.

Правим страницата checklogin.php

Ето и кода за нея:
Код:
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
 
// Mysql_num_row брои редовете на таблицата
$count=mysql_num_rows($result);
// Ако резултата съвпада с $myusername и $mypassword, реда на таблицата ще стане 1
 
if($count==1){
// Регистрира $myusername, $mypassword и пренасочва към "login_success.php"
session_register("myusername");
session_register("mypassword"); 
header("location:login_success.php");
}
else {
echo "Грешен потребител или парола";
}
?>

Следващата страница е login_success.php

Код:
// Проверява ако сесията не е регистрирана,пренасочва към главната страница.
// Сложете този код на първия ред на вашата страница
<? 
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
 
<html>
<body>
Login Successful
</body>
</html>

Ако искате да излизате , ще трябва да направим страницата logout.php

<?
session_start();
session_destroy();
?>

Въпроса ми е следният: Ако влезе john с парола 1234 влиза login_success.php ок, но как може ако влезе ivan с парола 1234 да влезе в страница ivan.php и всеки следващ потребител да си влиза в индивидуална страница, а не всеки потребител да стига до едно и също място. Благодаря предварително.
 
с htaccess и вместо да се появи тоя файл login_success.php ще се появи файла на потребителя, който htaccess ще укаже да се отвори login_success.php
 
Най-лесното и най-не(да не кажа изобщо) сигурното е да промениш този ред:

PHP:
header("location:login_success.php");
така:

PHP:
header("location: $username.php");

Файловете с имената на портебителите трябва да имат име

името_на_юзера.php
 
В случая обаче трябва още при регистрацията автоматично да създаваш пхп файл за всеки потребител със съответният код вътре в нея, иначе няма да ти се получат нещата които си замислил.
 
Защо просто не те пренасочва към дадената страница, след което там спрямо създадената сесия да си извеждаш потребителя и вече, чрез .htachess просто да променяш линка? Спестяваш си хиляди проблеми и най-вече се олесняваш.
 

Back
Горе