Advertisement
Guest User

Untitled

a guest
Sep 1st, 2017
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.78 KB | None | 0 0
  1. <?php if ($_GET['step'] == '2'){?>
  2. <div class='lets-wrapper'>
  3. <div class='step-letsgo'>
  4. <h2>We're glad you're here, <?php echo $user->screenName; ?> </h2>
  5. <p>Tweety is a constantly updating stream of the coolest, most important news, media, sports, TV, conversations and more--all tailored just for you.</p>
  6. <br/>
  7. <p>
  8. Tell us about all the stuff you love and we'll help you get set up.
  9. </p>
  10. <span>
  11. <a href='../home.php' class='backButton'>Let's go!</a>
  12. </span>
  13. </div>
  14. </div>
  15. <?php } ?>
  16.  
  17. <?php
  18. if(isset($_POST['signup'])){
  19. $screenName = $_POST['screenName'];
  20. $email = $_POST['email'];
  21. $password = $_POST['password'];
  22. $error = '';
  23.  
  24. if(empty($screenName) or empty($password) or empty($email)){
  25. $error = 'All fields are required';
  26. }else {
  27. $email = $getFromU->checkInput($email);
  28. $screenName = $getFromU->checkInput($screenName);
  29. $password = $getFromU->checkInput($password);
  30.  
  31. if(!filter_var($email)) {
  32. $error = 'Invalid email format';
  33. }else if(strlen($screenName) > 20){
  34. $error = 'Name must be between in 6-20 characters';
  35. }else if(strlen($password) < 5){
  36. $error = 'Password is too short';
  37. }else {
  38. if($getFromU->checkEmail($email) === true){
  39. $error = 'Email is already in use';
  40. }else {
  41. $user_id = $getFromU->create('users', array('email' => $email, 'password' => md5($password) , 'screenName' => $screenName, 'profileImage' => 'assets/images/defaultprofileImage.png', 'profileCover' => 'assets/images/defaultCoverImage.png'));
  42. $_SESSION['user_id'] = $user_id;
  43. header('Location: includes/signup.php?step=1');
  44. }
  45. }
  46. }
  47. }
  48.  
  49. <?php include '../core/init.php';
  50. $user_id = $_SESSION['user_id'];
  51. $user = $getFromU->userData($user_id);
  52.  
  53. if(isset($_GET['step']) === true && empty($_GET['step']) === false){
  54. if(isset($_POST['next'])){
  55. $username = $getFromU->checkInput($_POST['username']);
  56.  
  57. if (!empty($username)) {
  58. if(strlen($username) > 20){
  59. $error = "Username must be between in 6-20 characters";
  60. }else if($getFromU->checkUsername($username) === true){
  61. $error = "Username is already taken!";
  62. }else{
  63. $getFromU->update('users', $user_id, array('username' => $username));
  64. header('Location: signup.php?step=2');
  65. }
  66. }else{
  67. $error = "Please enter your username to choose";
  68. }
  69. }
  70. ?>
  71. <!doctype html>
  72. <html>
  73. <head>
  74. <title>twitter</title>
  75. <meta charset="UTF-8" />
  76. <link rel="stylesheet" href="assets/css/font/css/font-awesome.css"/>
  77. <link rel="stylesheet" href="../assets/css/style-complete.css"/>
  78. </head>
  79. <!--Helvetica Neue-->
  80. <body>
  81. <div class="wrapper">
  82. <!-- nav wrapper -->
  83. <div class="nav-wrapper">
  84.  
  85. <div class="nav-container">
  86. <div class="nav-second">
  87. <ul>
  88. <li><a href="#"<i class="fa fa-twitter" aria-hidden="true"></i></a></li>
  89. </ul>
  90. </div><!-- nav second ends-->
  91. </div><!-- nav container ends -->
  92.  
  93. </div><!-- nav wrapper end -->
  94.  
  95. <!---Inner wrapper-->
  96. <div class="inner-wrapper">
  97. <!-- main container -->
  98. <div class="main-container">
  99. <!-- step wrapper-->
  100. <?php if ($_GET['step'] == '1') {?>
  101. <div class="step-wrapper">
  102. <div class="step-container">
  103. <form method="post">
  104. <h2>Choose a Username</h2>
  105. <h4>Don't worry, you can always change it later.</h4>
  106. <div>
  107. <input type="text" name="username" placeholder="Username"/>
  108. </div>
  109. <div>
  110. <ul>
  111. <li><?php if (isset($error)){echo $error;} ?></li>
  112. </ul>
  113. </div>
  114. <div>
  115. <input type="submit" name="next" value="Next"/>
  116. </div>
  117. </form>
  118. </div>
  119. </div>
  120. <?php } ?>
  121. <?php if ($_GET['step'] == '2'){?>
  122. <div class='lets-wrapper'>
  123. <div class='step-letsgo'>
  124. <h2>We're glad you're here, <?php echo $user->screenName; ?> </h2>
  125. <p>Tweety is a constantly updating stream of the coolest, most important news, media, sports, TV, conversations and more--all tailored just for you.</p>
  126. <br/>
  127. <p>
  128. Tell us about all the stuff you love and we'll help you get set up.
  129. </p>
  130. <span>
  131. <a href='../home.php' class='backButton'>Let's go!</a>
  132. </span>
  133. </div>
  134. </div>
  135. <?php } ?>
  136.  
  137. </div><!-- main container end -->
  138.  
  139. </div><!-- inner wrapper ends-->
  140. </div><!-- ends wrapper -->
  141.  
  142. </body>
  143. </html>
  144.  
  145. <?php
  146. }
  147. ?>
  148.  
  149. <?php
  150. class User {
  151. protected $pdo;
  152.  
  153. function __construct($pdo) {
  154. $this->pdo = $pdo;
  155. }
  156.  
  157. public function checkInput($var) {
  158. $var = htmlspecialchars($var);
  159. $var = trim($var);
  160. $var = stripcslashes($var);
  161. return $var;
  162. }
  163.  
  164. public function login($email, $password){
  165. $stmt = $this->pdo->prepare("SELECT 'user_id' FROM 'users' WHERE 'email' = :email AND 'password' = :password");
  166. $stmt->bindParam(":email", $email, PDO::PARAM_STR);
  167. $stmt->bindParam(":password", md5($password), PDO::PARAM_STR);
  168. $stmt->execute();
  169.  
  170. $user = $stmt->fetch(PDO::FETCH_OBJ);
  171. $count = $stmt->rowCount();
  172.  
  173. if($count > 0){
  174. $_SESSION['user_id'] = $user->user_id;
  175. header('Location:home.php');
  176. }else {
  177. return false;
  178. }
  179. }
  180.  
  181. public function register($email, $screenName, $password){
  182. $stmt = $this->pdo->prepare("INSERT INTO 'users' (email, password, screenName, profileImage, profileCover) VALUES (:email, :password, :screenName, 'assets/images/defaultprofileImage.png', 'assets/images/defaultCoverImage.png') ");
  183. $stmt->bindParam(":email", $email, PDO::PARAM_STR);
  184. $stmt->bindParam(":password", md5($password), PDO::PARAM_STR);
  185. $stmt->bindParam(":screenName", $screenName, PDO::PARAM_STR);
  186. $stmt->execute();
  187.  
  188. $user_id = $this->pdo->lastInsertId();
  189. $_SESSION['user_id'] = $user_id;
  190. }
  191.  
  192. public function userData($user_id) {
  193. $stmt = $this->pdo->prepare("SELECT * FROM 'users' WHERE 'user_id' = :user_id");
  194. $stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
  195. $stmt->execute();
  196. return $stmt->fetch(PDO::FETCH_OBJ);
  197. }
  198.  
  199. public function logout(){
  200. $_SESSION = array();
  201. session_destroy();
  202. header('Location: ../index.php');
  203. }
  204.  
  205. public function create($table, $fields = array()){
  206. $columns = implode(',', array_keys($fields));
  207. $values = ':'.implode(', :', array_keys($fields));
  208. $sql = "INSERT INTO {$table} ({$columns} VALUES ({$values}))";
  209. if($stmt = $this->pdo->prepare($sql)){
  210. foreach ($fields as $key => $data) {
  211. $stmt->bindValue(':'.$key, $data);
  212. }
  213. $stmt->execute();
  214. return $this->pdo->lastInsertId();
  215. }
  216. }
  217.  
  218. public function update($table, $user_id, $fields = array()){
  219. $columns = '';
  220. $i = 1;
  221. foreach ($fields as $name => $value) {
  222. $columns .= "'{$name}' = :{$name}";
  223. if($i < count($fields)){
  224. $columns .= ', ';
  225. }
  226. $i++;
  227. }
  228.  
  229. $sql = "UPDATE {$table} SET {$columns} WHERE 'user_id' = {$user_id}";
  230. if($stmt = $this->pdo->prepare($sql)){
  231. foreach ($fields as $key => $value) {
  232. $stmt->bindValue(':'.$key, $value);
  233. }
  234. $stmt->execute();
  235. }
  236. }
  237.  
  238. public function checkUsername($username){
  239. $stmt = $this->pdo->prepare("SELECT 'username' FROM 'users' WHERE 'username' = :username");
  240. $stmt->bindParam(":username", $username, PDO::PARAM_STR);
  241. $stmt->execute();
  242.  
  243. $count = $stmt->rowCount();
  244. if($count > 0){
  245. return true;
  246. }else {
  247. return false;
  248. }
  249. }
  250.  
  251. public function checkEmail($email){
  252. $stmt = $this->pdo->prepare("SELECT 'email' FROM 'users' WHERE 'email' = :email");
  253. $stmt->bindParam(":email", $email, PDO::PARAM_STR);
  254. $stmt->execute();
  255.  
  256. $count = $stmt->rowCount();
  257. if($count > 0){
  258. return true;
  259. }else {
  260. return false;
  261. }
  262. }
  263.  
  264. public function userIdByUsername($username){
  265. $stmt = $this->pdo->prepare("SELECT 'user_id' FROM 'users' WHERE 'username' = :username");
  266. $stmt->bindParam(":username", $username, PDO::PARAM_STR);
  267. $stmt->execute();
  268. $user = $stmt->fetch(PDO::FETCH_OBJ);
  269. return $user->user_id;
  270. }
  271. }
  272. ?>
  273.  
  274. <?php
  275. include 'database/connection.php';
  276. include 'classes/user.php';
  277. include 'classes/tweet.php';
  278. include 'classes/follow.php';
  279.  
  280. global $pdo;
  281.  
  282. session_start();
  283.  
  284. $getFromU = new User($pdo);
  285. $getFromT = new Tweet($pdo);
  286. $getFromF = new Follow($pdo);
  287.  
  288. define("BASE_URL", "http://localhost/twitter/");
  289. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement