Хубава система за регистрация
Здравейте, написъх първата си система за регистрация. Според мен стана много добре!
Започваме с урока 🙂
members.sql
CREATE TABLE `members` (
`id` INT(8) NOT NULL auto_increment,
`user` VARCHAR(255) NOT NULL,
`pass` VARCHAR(255) NOT NULL,
`pass2` VARCHAR(255) NOT NULL,
`mail` VARCHAR(255) NOT NULL,
PRIMARY KEY(`id`)
);pmessages.sql
CREATE TABLE `pmessages` (
`title` varchar(255) NOT NULL default 'Untitled Message',
`message` text NOT NULL,
`touser` varchar(255) NOT NULL default '',
`from` varchar(255) NOT NULL default '',
`unread` varchar(255) NOT NULL default 'unread',
`date` date NOT NULL default '0000-00-00',
`id` int(15) NOT NULL auto_increment,
`reply` varchar(15) NOT NULL default 'no',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;
connect.php
<?php
DEFINE ('DB_USER', 'db potrebitel'); // Insert your database username into the quotes.
DEFINE ('DB_PASSWORD', 'db parola'); // Insert your database password into the quotes.
DEFINE ('DB_HOST', 'db host'); // This will most likely stay the same.
DEFINE ('DB_NAME', 'db ime'); //Insert your actual database name in the quotes.
$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error());
@mysql_select_db (DB_NAME) OR die('Could not select the database: ' . mysql_error() );
?>index.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="login.php">
<td>
<table width="100%" border="0" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong><center>Потребителски Вход</center></strong></td>
</tr>
<tr>
<td width="78"><center>Потребител:</center></td>
<tr><td width="294"><center><input name="user" type="text" id="user"></center></td>
</tr>
<tr>
<td><center>Парола:</center></td>
<tr><td><center><input name="pass" type="text" id="pass"></center></td>
</tr>
<tr>
<td><center><input type="submit" name="submit" value="Влез"></center></td>
</tr>
<br />
<tr>
<td><center><a href="reguser.html">Регистрирай се</a> | <a href="lostpass.php">Забравена парола</a></center></td>
</tr>
</table>
</td>
</form>
</tr>
<tr><td>
<center>Статистика:
<hr>
<?php
$db_host = 'db host';
$db_user = 'db user';
$db_password = 'db pass';
$db_name = 'db name';
mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());
$our = mysql_query("SELECT id, user FROM members ORDER BY id DESC LIMIT 1");
while($r=mysql_fetch_array($our)){
echo "Най-новия: <b><a href=\"profile.php?id=".$r['id']."\">".$r['user']."</a></b><br>";
}
$our = mysql_query("SELECT count(id) as user_total FROM members");
while($r=mysql_fetch_array($our)){
echo "Имаме <b>" .$r['user_total']. "</b> потребители!";
}
?>
</center>
</td></tr>
</table>login.php
<?php
$host="db host"; // Host name
$username="db user"; // Mysql username
$password="db pass"; // Mysql password
$db_name="db name"; // Database name
$tbl_name="members"; // Table name
// 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
$user=$_POST['user'];
$pass=$_POST['pass'];
$sql="SELECT * FROM $tbl_name WHERE user='$user' and pass='$pass'";
$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 $user, $pass and redirect to file "loginpro.php"
session_register("user");
session_register("pass");
header("location:loginpro.php");
}
else {
echo "Грешен Потребител или Парола!";
}
?>loginpro.php
<?
session_start();
if(!session_is_registered(user)){
header("location:index.php");
}
?>
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
Здравей!
<br />
<a href="messages.php">Лични съобщения</a>
<br />
<a href="members.php">Всички потребители</a>
<br />
<a href="logout.php">Излез</a>
</body>
</html>
logout.php
<?
session_start();
session_destroy();
echo 'Ти излезе успешно! <a href="index.php">Влез</a>';
?>lostpass.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
Въведи Email адресът с който си се регистрирал!<br />
<form action="" method="POST">
E-mail: <input type="text" name="mail" size="15" />
<input type="submit" value="Прати ми паролата!" />
</form>
<?php
//попълвате информация за хост , бд потербител , бд парола и база данни
$dbhost='db host';
$dbusername='db user';
$dbuserpass='db pass';
$dbname='db name';
// свързаваме се с базата данни
mysql_connect ($dbhost, $dbusername, $dbuserpass);
if (!mysql_select_db($dbname)) die(mysql_error());
if($_POST['mail'])
{
$mail = $_POST['mail'];
$checkemail = mysql_query("SELECT user,pass FROM members WHERE mail='$mail'");
$row = mysql_fetch_array($checkemail);
$numrows = mysql_num_rows($checkemail);
if ($numrows!=0) {
$user = $row['user'];
$pass = $row['pass'];
// изпращаме паролата
$subject = "Вашата Парола (PHP-c0ders)";
$message = "Уважаеми $nick този e-mail е изпратен, защото вие сте забравили вашата парола.
Информация за вашия акаунт:
Потребител: $user
Парола: $pass
Благодарим ви ,
PHP-c0ders";
mail($email, $subject, $message, "From: <phpc0ders@abv.bg>\nX-Mailer:PHP/" . phpversion());
echo "<center>Паролата е изпратена успешно!</center>";
}else{
echo "<center>Няма регистриран потребител с такъв Email адрес!</center>";
}
}
?>
members.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<?php
include('connect.php');
$query="SELECT id,user,mail FROM members ORDER BY id DESC";
$result=mysql_query($query);
echo '<center><table border="1">
<tr><td align="center" class="names" >Потребители:
</td></tr>';
while ($row=@mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td>Потребител: <a href=\"profile.php?id=$row[0]\">$row[1]$points</a> | Email: $row[2]</td></tr>";
}
echo "</table>";
?>messages.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<?php
session_start();
ob_start();
if($_SESSION['user'])
{
echo '<center><div align="center"><b><a href="?page=inbox">ЛС-та</a>
<br><a href="?page=write">Напиши ново ЛС</a></b></div>
<a href="members.php">Всички потребители</a><br>
<a href="logout.php">Излез</a><br></center>';
$pmsesusername = $_SESSION['user'];
include "connect.php";
switch($_GET[page])
{
default:
break;
case 'write':
if (!$_POST[send])
{
echo ("<center><form method='POST' style='margin: 0px;'>Избери потребител:<font color=red>*</font><br>
<select name='to'>
");
$getmembers = mysql_query("SELECT * FROM members ORDER BY 'user' ASC");
while ($members = MySQL_Fetch_Array($getmembers)) {
echo ("<center><option value='$members[user]'>$members[user]</option>");
}
echo ("<center>
</select>
<br>Заглавие:<font color=red>*</font>
<br><input type='text' name='subject' size='20'>
<br>Съобщение:<font color=red>*</font>
<br><textarea rows='7' name='message' cols='35'></textarea>
<br><input type='submit' value='Изпрати' name='send'>
</form>
");
}
if ($_POST[to])
{
$subject = htmlspecialchars(addslashes("$_POST[subject]"));
$message = htmlspecialchars(addslashes("$_POST[message]"));
$to = htmlspecialchars(addslashes("$_POST[to]"));
$send = mysql_query("INSERT INTO `pmessages` ( `title` , `message` ,
`touser` , `from` , `unread` ,
`date` ) VALUES ('$subject', '$message', '$to',
'$pmsesusername', 'unread', NOW())");
echo ("<center>Съобщението е изпратено!");
}
break;
case 'delete':
if (!$_GET[msgid])
{
echo ("<center>Sorry, but this is an invalid message!");
}
else
{
$getmsg = mysql_query("SELECT * from pmessages where id = '$_GET[msgid]'");
$msg = mysql_fetch_array($getmsg);
if ($msg[touser] != $pmsesusername)
{
echo ("<center>Неможе да си изпратите ЛС!");
}
else
{
$delete = mysql_query("delete from pmessages where id = '$_GET[msgid]'");
echo ("<center>ЛС Изтрито!");
}
}
break;
case 'inbox':
$get = mysql_query("SELECT * from pmessages where touser = '$pmsesusername' order by id desc");
echo ("
<table bgcolor='#dddddd' border='0' width='100%' cellspacing='0'>
<tr>
<td align='center'>Заглавие</td>
<td align='center' width='125'>Изпратено от</td>
<td align='center' width='97'>Дата</td>
<td width='25'>Изтриване</td>
</tr>
</table>
");
$nummessages = mysql_num_rows($get);
if ($nummessages == 0)
{
echo ("<center>Нямате нови ЛС-та!");
}
else
{
echo("<table border='0' width='100%' cellspacing='1'>");
while ($messages = mysql_fetch_array($get))
{
echo ("<center>
<tr>
<td><a href='?page=view&msgid=$messages[id]'>");
if ($messages[reply] == yes)
{
echo ("<center>Отговор до: ");
}
echo ("<center>$messages[title]</a></td>
<td width='125'>$messages[from]</td>
<td width='97'>$messages[date]</td>
<td width='25'><a href='?page=delete&msgid=$messages[id]'>Изтрий</a></td>
</tr>");
}
echo ("<center></table>");
}
break;
case 'view':
if (!$_GET[msgid])
{
echo ("<center>Invalid message!");
}
else
{
$getmsg= mysql_query("SELECT * from pmessages where id = '$_GET[msgid]'");
$msg = mysql_fetch_array($getmsg);
if ($msg[touser] == $pmsesusername)
{
if (!$_POST[message])
{
$markread = mysql_query("Update pmessages set unread = 'read' where id = '$_GET[msgid]'");
$msg[message] = nl2br(stripslashes("$msg[message]"));
echo ("<center>
<form method='POST' style='margin: 0px;'>
<b>Изпратено от: $msg[from]</b><br><b>Subject: $msg[title]</b>
<b><br>Съобщение:<br><u>$msg[message]</u></br></b>
<b>Отговор:<br></b>
<center><textarea rows='6' name='message' cols='45'></textarea></center>
<input type='submit' value='Изпрати!' name='send'>
</form>");
}
if ($_POST[message])
{
$message = htmlspecialchars(addslashes("$_POST[message]"));
$do = mysql_query("INSERT INTO `pmessages` ( `title` , `message` , `touser` , `from` , `unread` ,
`date`, `reply`) VALUES
('$msg[title]', '$message', '$msg[from]', '$pmsesusername',
'unread', NOW(), 'yes')");
echo ("<center>Съобщението е изпратено!");
}
}
}
break;
}
}
else
{
echo "Нямате достъп! Моля <a href='index.php'>влезте</a>";
}
?>profile.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<?PHP
include ('connect.php');
$query = "SELECT * FROM members where id='$_GET[id]'";
$result = mysql_query($query);
while($r=mysql_fetch_array($result))
{
$user=$r[user];
$mail=$r[mail];
$url1 = "$url";
if(@fopen($url1, "r"))
{
$url="$url1";
}
else{
for($x = 2; $x<=5; $x++)
{
$profile="profile0$x";
$url1=str_replace('profile',$profile,$url);
}
if(@fopen($url1, "r"))
{
$url="$url1";
}
else{
for($x = 2; $x<=4; $x++)
{
$profile="profile0$x";
$url1=str_replace('profile05',$profile,$url);
}
}
if(@fopen($url1, "r"))
{
$url="$url1";
}
else{
for($x = 2; $x<=3; $x++)
{
$profile="profile0$x";
$url1=str_replace('profile04',$profile,$url);
}
}
if(@fopen($url1, "r"))
{
$url="$url1";
}
else{
for($x = 2; $x<=2; $x++)
{
$media="media0$x";
$url1=str_replace('profile03',"$profile",$url);
}
}
if(@fopen($url1, "r"))
{
$url="$url1";
}
else{
for($x = 2; $x<=1; $x++)
{
$url1=str_replace('profile02',$profile,$url);
}
}
if(@fopen($url1, "r"))
{
$url="$url1";
}
else{
}
}
}
?>
Потребител: <b><?PHP echo"$user"; ?></b>
<br />
<?PHP if($mail==""){
echo"Моля изберете потребителя на който искате да видите профила.";
}else{ echo"Email: <b>$mail";} ?></b>
<br />
<?php
$file = "count.txt";
if (file_exists($file)) {
$fp = fopen("$file", "r+");
flock($fp, 1);
$count = fgets($fp, 4096);
$count += 1;
fseek($fp,0);
fputs($fp, $count);
flock($fp, 3);
fclose($fp);
} else {
echo "Can't find file, check '\$file'<BR>";
}
?>
<?php
$zapis = $banner[$rnd]['img'];
$fp = fopen("$zapis.txt", "a+");
$count = fread($fp, 1024);
fclose($fp);
$count = $count + 1;
echo "<br /><span style=\"font-family:verdana;font-size:11px;\">" . $banner[$rnd]['url'] . " - " . $count . " импресии</span>";
$fp = fopen("$zapis.txt", "w");
fwrite($fp, $count);
fclose($fp);
?>reguser.html
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<form action="reguser.php" method="post">
Потребител: <input type="user" name="user" />
<br />
Парола: <input type="pass" name="pass">
<br />
Парола: <input type="pass2" name="pass2">
<br />
Е-майл: <input type="mail" name="mail">
<br />
<input type="submit" name="submit" value="Регистрация" />
</form>reguser.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<?php
if (isset($_POST["submit"])) {
//настройки за база данни
$dbhost = "db host";
$dbuser = "db user";
$dbpass = "db pass";
$dbname = "db name";
$conn = mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error());
mysql_select_db($dbname, $conn)or die(mysql_error());
if (!empty($_POST["user"])) $user = htmlspecialchars($_POST["user"]);
else $errMsg = "Моля въведете потребител!<br />";
if (!empty($_POST["pass"])) $pass = htmlspecialchars($_POST["pass"]);
else $errMsg = "Моля въведете парола!<br />";
if (!empty($_POST["pass2"])) $pass2 = htmlspecialchars($_POST["pass2"]);
else $errMsg = "Моля въведете парола!<br />";
if (!empty($_POST["mail"])) $mail = htmlspecialchars($_POST["mail"]);
else $errMsg = "Моля въведете е-майл!<br />";
if (empty($errMsg)) {
$chek = mysql_query("SELECT * FROM `members` WHERE `user`='$user'")or die(mysql_error());
$chek = mysql_num_rows($chek);
if ($chek=='1') { echo 'Този потребител вече е регистриран! <a href="reguser.html">НАЗАД</a>'; }
else {
$insert = mysql_query("INSERT INTO members(user, pass, pass2, mail) VALUES('$user', '$pass', '$pass2', '$mail')")or die(mysql_error());
echo 'Здравей <b>' . $user . '</b>! Регистрацията е успешна! Може да влезеш от <a href="index.php">ТУК</a>';
}
} else echo $errMsg;
mysql_close();
}
?>
СЕГА ИДВА РЕД НА АДМИН Панела! Направете си папка „admin“.
delete.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<?PHP
$dbhost = "db host";
$dbuser = "db user";
$dbpass = "db pass";
$dbname = "db name";
$connection = mysql_connect($dbhost, $dbuser, $dbpass) or die("Сайтът не може да се свърже към базата данни1");
$db = mysql_select_db($dbname,$connection)or die("Сайтът не може да се свърже към базата данни2");
$id = $_GET['id'];
if(!$id){echo"Изберете потребител който искате да изтриете!";}else{
$result = mysql_query("DELETE FROM members WHERE id='$id' ",$connection);
echo "Успешно изтрит потребител!<br><a href='edit.php'>< Върни се обратно </a>";}
?>edit.php
<html>
<head>
<title>Система за регистрация</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<?php
//настройки за база данни
$dbhost = "db host";
$dbuser = "db user";
$dbpass = "db pass";
$dbname = "db name";
$conn = mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error());
mysql_select_db($dbname, $conn)or die(mysql_error());
$select = mysql_query("SELECT * FROM members")or die(mysql_error());
if (mysql_num_rows($select))
{
while($red = mysql_fetch_array($select))
{
?>
<?php echo $red['user'];?> - <a href="edituser.php?tid=<?php echo $red['id']; ?>">Редактиране</a> | <a href="delete.php?id=<?php echo $red['id']; ?>">Изтрий</a><br>
<?php
}
}
mysql_close();
?>
edituser.php
<?php
//настройки за база данни
$dbhost = "db host";
$dbuser = "db user";
$dbpass = "db pass";
$dbname = "db name";
$conn = mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error());
mysql_select_db($dbname, $conn)or die(mysql_error());
if ($_POST['user'] && $_POST['pass'] && $_POST['mail']) mysql_query("REPLACE INTO members VALUES(".intval($_GET['tid']).",'".$_POST['nick']."','".$_POST['pass']."','".$_POST['mail']."')");
$select = mysql_query("SELECT * FROM members WHERE id=".intval($_GET['tid']))or die(mysql_error());
if (mysql_num_rows($select)) $red = mysql_fetch_array($select);
mysql_close();
?>
<form action="<?php echo($_SERVER['PHP_SELF']."?tid=".$_GET['tid']);?>" method="post">
Потребител: <input type="text" name="user" value="<?php echo($red['user']);?>" />
<br />
Парола: <input type="text" name="pass" value="<?php echo($red['pass']);?>" />
<br />
Email: <input type="text" name="mail" value="<?php echo($red['mail']);?>" />
<br />
<input type="submit" name="submit" value="Редактирай" />
</form>
Това е всичко! ЗАБРАНЯВЪМ ПРЕПИСВАНЕТО НА УРОКА!!!


