Добавим в таблицу user
поле verified.
boolean, как определено
0
Идем в файл
create-account.php и модифицируем его, добавим
поле верификации.
<?php
include('classes/DB.php');
if(isset($_POST['createaccount']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
if(!DB::query('SELECT username FROM users WHERE username=:username',
array(':username'=>$username))) {
if(strlen($username) >= 3 && strlen($username) <= 32)
{
if(preg_match('/[a-zA-Z0-9_]+/', $username)) {
if(strlen($password) >= 6 && strlen($password)
<= 60) {
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
if(!DB::query('SELECT email FROM users WHERE
email=:email', array(':email'=>$email))) {
DB::query('INSERT INTO users VALUES (:id,
:username, :password, :email, \'0\')', array(':id'=>null,
':username'=>$username, ':password'=>password_hash($password,
PASSWORD_BCRYPT), ':email'=>$email));
echo "Success!";
} else {
echo 'Email in use!';
}
} else {
echo 'Invalid email!';
}
} else {
echo 'Invalid password!';
}
} else {
echo 'Invalid username!';
}
} else {
echo 'Invalid username!';
}
}
else {
echo 'User already exists!';
}
}
?>
<h1>Register</h1>
<form
action="create-account.php" method="post">
<p><input type="text" name="username"
placeholder="Username"/></p>
<p><input type="password" name="password"
placeholder="Password"/></p>
<p><input type="email" name="email"
placeholder="someone@somesite.com"/></p>
<input type="submit" name="createaccount"
value="Create Account"/>
</form>
Создадим
пользователя: http://newsocial.loc/create-account.php
Идем
в profile.php
и отобразим верифицирован ли
пользователь.
<?php
include('./classes/DB.php');
include('./classes/Login.php');
$username = '';
$isFollowing = False;
$verified = False; // верифицирован ли пользователь
if (isset($_GET['username'])) {
if (DB::query('SELECT username FROM users WHERE
username=:username', array(':username'=>$_GET['username']))) {
$username = DB::query('SELECT username FROM users WHERE
username=:username',
array(':username'=>$_GET['username']))[0]['username'];
$userid = DB::query('SELECT id FROM users WHERE
username=:username', array('username'=>$_GET['username']))[0]['id'];
$verified = DB::query('SELECT verified FROM users WHERE
username=:username',
array(':username'=>$_GET['username']))[0]['verified'];
$followerid = Login::isLoggedin(); // получаем id
фолловера
// проверяем была ли нажата кнопка
follow
if (isset($_POST['follow'])) {
// когда не можешь быть фолловером
самого себя
if ($userid != $followerid) {
if (!DB::query('SELECT follower_id FROM followers WHERE
user_id=:userid', array(':userid'=>$userid))) {
// пользователь с id=6 нажимает
follow и пользователь становится
верефицированным
if ($followerid == 6) {
DB::query('UPDATE users SET verified=1 WHERE
id=:userid', array(':userid'=>$userid));
}
DB::query('INSERT INTO followers VALUES (:id,
:userid, :followerid)', array(':id'=>null,':userid'=>$userid,
':followerid'=>$followerid));
//DB::query('INSERT INTO followers VALUES (\'\',
:userid, :followerid)', array(':userid'=>$userid,
':followerid'=>$followerid));
} else {
echo 'Already following!';
}
$isFollowing = True;
}
}
// проверяем была ли нажата кнопка
unfollow
if (isset($_POST['unfollow'])) {
// когда не можешь быть фолловером
самого себя
if ($userid != $followerid) {
if (DB::query('SELECT follower_id FROM followers WHERE
user_id=:userid', array(':userid'=>$userid))) {
// пользователь с id=6 нажимает
unfollow и пользователь становится
неверефицированным
if ($followerid == 6) {
DB::query('UPDATE users SET verified=0 WHERE
id=:userid', array(':userid'=>$userid));
}
DB::query('DELETE FROM followers WHERE
user_id=:userid AND follower_id=:followerid',
array(':userid'=>$userid, ':followerid'=>$followerid));
}
$isFollowing = False;
}
}
if (DB::query('SELECT follower_id FROM followers WHERE
user_id=:userid', array(':userid'=>$userid))) {
$isFollowing = True;
}
} else {
die('User not found!');
}
}
?>
<h1><?php
echo $username; ?>'s' Profile<?php if ($verified) { echo ' -
Verified'; } ?> </h1>
<form
action="profile.php?username=<?php echo $username; ?>"
method="post">
<?php
// кнопка follow не будет отображаться для
своего собственного профайла
if ($userid != $followerid) {
if ($isFollowing) {
echo '<input type="submit" name="unfollow"
value="Unfollow"/>';
} else {
echo '<input type="submit" name="follow"
value="Follow"/>';
}
}
?>
</form>
Комментариев нет:
Отправить комментарий