Выпуск №2.
Регистрация пользователей
Если видео не загружается, то можно посмотреть его здесь
Очень часто мне приходится слышать вопрос о том, как сделать регистрацию пользователей на сайте. Именно это Вы и увидите в сегодняшнем выпуске рассылки.
Мы с Вами вместе сделаем возможность регистрации пользователей. Просмотрев урок, Вы:
- Научитесь создавать формы регистрации на HTML.
- Узнаете, как правильно делать проверку формы на PHP.
- Узнаете, какой механизм у регистрации пользователей.
- Увидите, как создаётся регистрация абсолютно с нуля.
- Сможете создать регистрацию на своём сайте.
Если Вы хотите скачать видео к себе на компьютер, то посмотрите инструкцию: как скачивать с YouTube.
P.S. Про регистрацию и авторизацию пользователей (причём не только с MySQL, но и с использованием XML) подробно рассказывается в Видеокурсе "Создание и Раскрутка сайта от А до Я": https://srs.myrusakov.ru/kurs.
Комментарии (37):
Добавить комментарий:
код фрагмента:
if (!$bad) {
$sql=("INSERT INTO users (name,family,email,login,password) VALUE ('$name','$family','$email','$login','$password')");
mysql_query($sql) or die('Error');
$password= MD5($password);
$_SESSION['success_reg'] = 1;
echo "Поздравляю, Вы зарегистрированы";
header("Location:index.php");
<?php
if (isset ($_POST ['reg'])) {
$login = htmlspecialchars ($_post ['login']) ;
$password = htmlspecialchars ($_post ['password']) ;
$bad = false;
session_start () ;
unset ($_SESSION ['error_login']) ;
unset ($_SESSION ['error_password']) ;
unset ($_SESSION ['success_reg']) ;
if ((strlen($login) < 3) || (strlen ($login) > 33)) {
$_SESSION ['error_login']) = 1;
$bad = true;
}
if ((strlen($password) < 3) || (strlen ($password) > 33)) {
$_SESSION ['error_password']) = 1;
$bad = true;
}
if (!$bad) {
$mysqil = new mysqli ("localhost", "MySite", "legenda1337", "mysite-local") ;
$password = md5 ($password) ;
$mysql=>query (INSERT INTO users ('login', 'password') VALUES ('$login', '$password') ") ;
$mysql=>close () ;
$_SESSION ['reg_success'] = 1;
header (Location: zak.html) ;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<h1><p align="left">Регистрация</p></h1>
<h2><p align="right">Позвоните нам:<br><img src="img\nomer.png" width="150" height="100" ></a></p></h2>
</head>
<body background="img\phon.jpg">
<tr>
<td style = 'width: 80%;'>
<div style = "text-align: center;">
<h1>Регистрация</h1>
<form id = "form1" action = "" method = "post">
<?php
if ($_session['error_login'] == 1) echo "<p><span style = 'color: red;'>Некорректный логин</span></p>" ;
if ($_session['error_password'] == 1) echo "<p><span style = 'color: red;'>Некорректный пароль</span></p>" ;
?>
<label>Логин:</label>
<input type = 'text' name = 'login' />
</p>
<p>
<label>Пароль:</label>
<input type = 'password' name = 'password' />
</p>
<p>
<input type = 'submit' name = 'reg' value = 'Зарегестрироваться' />
</p>
</form>
</div>
</td>
</tr>
</body>
</html>
Warning: session_start() [ function.session-start]: Cannot send session cookie - headers already sent by (output started at J:\home\asd.kz\www\reg.php:1) in J:\home\asd.kz\www\reg.php on line 6
Warning: session_start() [ function.session-start]: Cannot send session cache limiter - headers already sent (output started at J:\home\asd.kz\www\reg.php:1) in J:\home\asd.kz\www\reg.php on line 6
как сделать проверку пароля(поле пароля и поле повторного пароля) на php
$mysqli = new mysqli("localhost","root","","SiverusProd");
$password = md5($password);
$mysqli->query("INSERT INTO users ('login', 'password') VALUES ('$login', '$password')");
$mysqli->close();
echo 'Все , бро.';} На mysql все отлично, php v5.6
- Если надо "запомнить" пользователя, то ему ставится кука, его идентифицирующая.
- При следующем заходе пользователя на сайт, для того, чтобы авторизоваться, он должен либо ввести пароль, либо система сама его опознает по поставленной ранее куке, и стартует сессию. Новую сессию, а не продолжая старую.
<?php
session_start();
if(isset($_POST['reg'])){
$login=htmlspecialchars($_POST['login']);
$password=htmlspecialchars($_POST['password']);
$email=htmlspecialchars($_POST['email']);
$bad = false;
unset($_SESSION['error_login']);
unset($_SESSION['error_password']);
unset($_SESSION['error_email']);
unset($_SESSION['success_reg']);
if ((strlen($login) <3) || (strlen($login)) >32){
$_SESSION['error_login']=1;
$bad = true;
}
if ((strlen($password) <3) || (strlen($password)) >32){
$_SESSION['error_password']=1;
$bad = true;
}
if ((strlen($email) <3) || (strlen($email)) >32){
$_SESSION['error_email']=1;
$bad = true;
}
if(!$bad){
$mysqli=new mysqli("localhost","Admin","06042002","register");
$password=md5($password);
$mysqli->query("INSERT INTO users(`login`, `password`, `email`)VALUES('$login', '$password', '$email')");
$mysqli->close();
$_SESSION['reg_success']=1;
header("Location:index.php");
}
}
?>
Warning: mysqli::mysqli() [ mysqli.mysqli]: (28000/1045): Access denied for user 'Admin'@'localhost' (using password: YES) inZ:\home\localhost\www\Pear Paradise\register.php on line 25
Warning: mysqli::query() [ mysqli.query]: Couldn't fetch mysqli in Z:\home\localhost\www\Pear Paradise\register.php on line 27
Warning: mysqli::close() [ mysqli.close]: Couldn't fetch mysqli in Z:\home\localhost\www\Pear Paradise\register.php on line 28
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\Pear Paradise\register.php:25) inZ:\home\localhost\www\Pear Paradise\register.php on line 30
Спасибо!
Warning: session_start() [ function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\home\penpal\www\Index.php:1) in C:\home\penpal\www\Index.php on line 6
Warning: session_start() [ function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\home\penpal\www\Index.php:1) in C:\home\penpal\www\Index.php on line 6
Warning: mysqli::mysqli() [ mysqli.mysqli]: (28000/1045): Access denied for user 'penpal'@'localhost' (using password: YES) in C:\home\penpal\www\Index.php on line 23
Warning: mysqli::query() [ mysqli.query]: Couldn't fetch mysqli in C:\home\penpal\www\Index.php on line 25
Warning: mysqli::close() [ mysqli.close]: Couldn't fetch mysqli in C:\home\penpal\www\Index.php on line 26
ну и данные от подключения к БД - не верные
Вот код...
<?php
if ($_SESSION['error_login'] = 1) echo "<p><span style ='color:red';>Введен неправильный Логин</span></p>" ;
unset($_SESSION['error_login']);
if ($_SESSION['error_password'] = 1) echo "<p><span style ='color:red';>Введен неправильный Пароль</span></p>" ;
unset($_SESSION['error_password']);
?>
a session_start() у меня стоит везде на страницах...
Внимание: Цикл foreach оперирует не исходным массивом, а его копией. Это означает, что любые изменения, которые вносятся в массив, не могут быть "видны" из тела цикла. Что позволяет, например, в качестве массива использовать не только переменную, но и результат работы какой-нибудь функции, возвращающей массив (в этом случае функция будет вызвана всего один раз - до начала цикла, а затем работа будет производиться с копией возвращенного значения).
как понимать?
можно маленький пример?