Добавим в таблицу 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>
 
Комментариев нет:
Отправить комментарий