Наистина проста регистрация със mysql

katsar0v

Registered
:cry: Пробвах се да направя регистрация за сайта си , като използвах текстови файл за БД , но не се получава , в смисъл няма ерори , като видях файла в който се записват данните при регистрация имаше само два символа && :?
Затова реших да намеря или направя възможно най-простата система за регистрация със mysql :)
Някой ако може да ме насочи , даде линк или направо готов скрипт (със широки коментари за да мога да се науча ) моля да пише в темата.
Едно голямо благодаря за всички които ще се отзоват във темата :)
 
http://web-tourist.net/login/login/view.php?st=1218 - това е най простата която е добавена логин, регистрация и логаут ..
 
Мерси , сега ако направиш и съвсем малки пояснения ще си златен :)
Тук уроците в web-tourist по-скоро ми приличат на готови скриптове/системи защото е даден само кодът , тоест рядко се правят пояснения :)
Но както и да е , на мен целта ми е да се науча, а не да копирам :)
Мерси все пак :lol:
 
Сял

CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`user` varchar(150) collate latin1_general_ci NOT NULL,
`pass` varchar(32) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

register.php
<form method="POST" action="" />
Потребител: <br />
<input type="text" name="user" /><br />
Парола: <br />
<input type="password" name="pass" /><br />
<input type="submit" name="submit" value="Регистрация" /><br />

<?php
if(isset($_POST['submit']))
{
$user = trim($_POST['user']);
$pass = trim($_POST['pass']);

if(strlen($user)<3 || strlen($pass)<3)
{
echo 'Потребителското име или парола са по къси от 3 символа!';
}
else
{
mysql_query('INSERT INTO users (`user`, `pass`) VALUES ("'.addslashes($user).'", "'.md5($pass).'")');

echo 'Успешна регистрация';
}
}
?>

login.php

<?php
session_start();
ob_start();

$user = $_POST['user'];
$pass = $_POST['pass'];

$sql='SELECT * FROM users WHERE user="'.$user.'" AND pass="'.md5($pass).'"';
$result=mysql_query($sql);

$count=mysql_num_rows($result);
if($count==1){

$row = mysql_fetch_assoc($result);
$_SESSION['is_logged']=true;
$_SESSION['user_info']=$row;
$vreme = "2";
$url = "index.php";
echo "<meta http-equiv='refresh' content='$vreme;URL=$url'>";
echo "Вие ще бъдете пренасочен след $vreme секунди... ";
}
else
{
echo '<center>Грешно потребителско име или парола</center>';
}
?>

index.php

<?php
session_start();
if($_SESSION['is_logged']!==true)
{
echo
'
<form method="POST" action="" />
Потребител: <br />
<input type="text" name="user" /><br />
Парола: <br />
<input type="password" name="pass" /><br />
<input type="submit" name="submit" value="Вход" /><br />
';
}
else
{
echo 'Здравей: '.$_SESSION['user_info']['user'].'';
}
?>

сега я написах не е пробвана дали работи ако има проблеми казвай
 
Код:
<?php

//най обикновена форма
function register_form(){

$date = date('D, M, Y');
echo "<form action='?act=register' method='post'>"
."Username: <input type='text' name='username' size='30'><br>"
."Password: <input type='password' name='password' size='30'><br>"
."Confirm your password: <input type='password' name='password_conf' size='30'><br>"
."Email: <input type='text' name='email' size='30'><br>"
."<input type='hidden' name='date' value='$date'>"
."<input type='submit' value='Register'>"
."</form>";

}
//
function register(){

//кънекцията
$connect = mysql_connect("localhost", "username", "password");
if(!$connect){
die(mysql_error());
}


$select_db = mysql_select_db("test");
if(!$select_db){
die(mysql_error());
}

//обработваме данните от формата
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$pass_conf = $_REQUEST['password_conf'];
$email = $_REQUEST['email'];
$date = $_REQUEST['date'];

//проверяваме дали полетата са празни и ако са празни съответните грешки

if(empty($username)){
die("Please enter your username!<br>");
}

if(empty($password)){
die("Please enter your password!<br>");
}

if(empty($pass_conf)){
die("Please confirm your password!<br>");
}

if(empty($email)){
die("Please enter your email!");
}

//проверяваме дали потребителското име го има в базата данни(т.е. дали е заето)
$user_check = mysql_query("SELECT username FROM users WHERE username='$username'");
$do_user_check = mysql_num_rows($user_check);

//проверяваме дали с този майл не е регнат друг.

$email_check = mysql_query("SELECT email FROM users WHERE email='$email'");
$do_email_check = mysql_num_rows($email_check);
//да изведем грешките

if($do_user_check > 0){
die("Username is already in use!<br>");
}

if($do_email_check > 0){
die("Email is already in use!");
}

//проверка дали паролите съвпадат
if($password != $pass_conf){
die("Passwords don't match!");
}


//ако всичко е наред вкарваме информацията в базата данни

$insert = mysql_query("INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')");
if(!$insert){
die("There's little problem: ".mysql_error());
}
//съобщение за успех
echo $username.", you are now registered. Thank you!<br><a href=?act=login>Login</a> | <a href=index.php>Index</a>";

}

switch($act){

default;
register_form();
break;

case "register";
register();
break;

}

?>


друго ?
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\index.php:2) in C:\xampp\htdocs\index.php on line 5

Дава го като ерор на всички скриптове , благодаря на всички все пак :)
Ще избера най-простия и най-гъвкавия и ще се опитам САМ да го науча ... тъй като в самите скриптове няма обяснения :)
 
katsar0v каза:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\index.php:2) in C:\xampp\htdocs\index.php on line 5
Тава ти тази грешка защото

session_start();

трябва да е след <?php тага :)
 
Скрипта на baso засега най-добре ми изглежда
Само немога да разбера откъде да въведа данните за БД , юзър и парола :) (конкретно за неговия скрипт )
 
А как да кирилизирам текста ?
Още веднъж благодаря на всички Ви , аз направих моя избор :)
 

Back
Горе