2016-01-31 2 views
1

Это вопрос концепции. Сейчас у меня есть регистрация/логин и система страниц профиля, построенная с использованием php и mysql. Но у меня есть один вопрос. Прямо сейчас я хочу, чтобы пользователь мог сделать свои собственные специфические todos. Поэтому, когда они заходят в систему, они могут видеть их todo и создавать их todo для себя. Только вход в систему может справиться с задачей. Но я не понимаю, как это сделать в php/mysql. Пожалуйста, помогите мне в этом, спасибо.Таблица для конкретного пользователя

Вот мой Логин страница:

<?php 
session_start(); 
require_once('PhpConsole.phar'); 
require_once('connection.php'); 
ob_start(); 
require('index.php'); 
$data = ob_get_clean(); 
ob_end_clean(); 
?> 
<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
    <link rel="stylesheet" href="https://rawgit.com/marcoceppi/bootstrap-glyphicons/master/css/bootstrap.icon-large.css"> 
    <link rel="stylesheet" href="main.css"> 
    <link rel="stylesheet" href="lib/sweetalert.css"> 
    <script src="lib/sweetalert-dev.js"></script> 
</head> 

<body> 

    <div id="page"> 

    <form method = "post" role = "form" id = "form"> 
     <h1 style = "position:relative; left:60px; font-family: Impact;">Login </h1> 
     <div class="col-xs-2"> 
      <div class="inner-addon left-addon"> 
      <i class="glyphicon glyphicon-envelope"></i> 
      <input type="text" class="form-control" id = "email" name = "loginemail" placeholder="Email" /> 
      </div> 
     </div> 
     <br> 
      <div class="col-xs-2"> 
      <div class="inner-addon left-addon"> 
      <img src = "http://i.imgur.com/GqkLI3z.png" id = "imgLock"/> 
      <input type="text" class="form-control" name = "loginpassword" placeholder="Password" id = "password" /> 

      </div> 
     </div> 

     <br> 
     <br> 
     <div id = "buttons"> 
     <div class="col-xs-2"> 
     <div class="inner-addon left-addon"> 
      <i class="glyphicon glyphicon-ok-sign" ></i> 
      <input type = "submit" class="btn btn-info" name = "loginsubmit" id = "submit"/> 
     </div> 
     <div> 
     </div> 

    </form> 
    </div> 
<?php 
    if(isset($_POST["loginsubmit"])){ 

    $loginEmail = $_POST["loginemail"]; 
    $loginPassword = $_POST["loginpassword"]; 
    if ($query = mysqli_query($connection, "SELECT * FROM `authe` WHERE Email = '".$loginEmail."' AND Password = '".$loginPassword."' ")) { 

    $rows = mysqli_num_rows($query); 

    if($rows>0){ 
     echo "<script> swal('Good job!', 'Sucessfully Authenticated', 'success')</script>"; 
     $_SESSION['email'] = $loginEmail; 
     $_SESSION['password'] = $loginPassword; 
     if(true){ 
     // header("Location: http://localhost:8012/phpForm/Profile.php"); 

     if ($queryTwo = mysqli_query($connection, "SELECT Username FROM `authe` WHERE Email = '".$loginEmail."'")) { 
      $rowsTwo = mysqli_num_rows($queryTwo); 
      if($rowsTwo>0){ 
      printf($rowsTwo); 
      while($roww = mysqli_fetch_array($queryTwo)) 
       { 
       $_SESSION["username"] = $roww['Username']; 
       } 
      } 
     } 
     echo "<script> window.location.href = 'http://localhost:8012/phpForm/Profile.php' </script>"; 
     } 

    } 
    else { 
    echo "<script>sweetAlert('Oops...', 'Authentication Failed', 'error');</script>"; 
    } 
    } 
} 
?> 


</body> 
    </html> 

    <!-- <br> 

<input type = "text" class="form-control" name = "loginemail" style = "width = 20px;" id = "input" placeholder = "Enter Email" required/> 
<i class="glyphicon glyphicon-user form-control-feedback"></i> 
    <br> --> 

И моя страница профиля:

<?php 
session_start(); 
require_once('PhpConsole.phar'); 
require_once('connection.php'); 
ob_start(); 
require('index.php'); 
$data = ob_get_clean(); 
ob_end_clean(); 

    ?> 
<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
    <link rel="stylesheet" href="https://rawgit.com/marcoceppi/bootstrap-glyphicons/master/css/bootstrap.icon-large.css"> 
    <link rel="stylesheet" href="main.css"> 
    <script src="https://code.angularjs.org/1.4.9/angular.js"></script> 
    <link href='https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:700' rel='stylesheet' type='text/css'> 
    <script src = "page.js"></script> 
    <link rel="stylesheet" href="lib/sweetalert.css"> 
    <script src="lib/sweetalert-dev.js"></script> 
    <style> 
    #toDoButton { 
    position: relative; 
     color: rgba(255,255,255,1); 
     text-decoration: none; 
     background-color: rgba(219,87,5,1); 
     font-family: 'Yanone Kaffeesatz'; 
     font-weight: 700; 
     right:550px; 
     bottom:70px; 
     font-size: 3em; 
     display: block; 
     padding: 4px; 
     -webkit-border-radius: 8px; 
     -moz-border-radius: 8px; 
     border-radius: 8px; 
     -webkit-box-shadow: 0px 9px 0px rgba(219,31,5,1), 0px 9px 25px rgba(0,0,0,.7); 
     -moz-box-shadow: 0px 9px 0px rgba(219,31,5,1), 0px 9px 25px rgba(0,0,0,.7); 
     box-shadow: 0px 9px 0px rgba(219,31,5,1), 0px 9px 25px rgba(0,0,0,.7); 
     margin: 100px auto; 
    width: 160px; 
    text-align: center; 

    -webkit-transition: all .1s ease; 
    -moz-transition: all .1s ease; 
    -ms-transition: all .1s ease; 
    -o-transition: all .1s ease; 
    transition: all .1s ease; 
    } 

    #toDoButton:active { 
     -webkit-box-shadow: 0px 3px 0px rgba(219,31,5,1), 0px 3px 6px rgba(0,0,0,.9); 
     -moz-box-shadow: 0px 3px 0px rgba(219,31,5,1), 0px 3px 6px rgba(0,0,0,.9); 
     box-shadow: 0px 3px 0px rgba(219,31,5,1), 0px 3px 6px rgba(0,0,0,.9); 
    } 

    </style> 
</head> 

<body> 

    <div id="page" ng-app = "pageApp" ng-controller="pageController"> 
     <h1>Welcome <?php echo $_SESSION['username']; ?></h1> 
     <h5>Here is one cool feauture. Type in the box :)</h5> 
     <div class = "coolFeauture" id = "CoolFeauture1"> 
     <input type = "text" ng-model = "CoolFeauture"/> 
     <div ng-bind = "CoolFeauture"></div> 
    </div> 
<div class = "todoMain"> 
    <h4>Click on the button for a TODO App! Check it out!</h4> 
     <a href="javascript:void(0);" id = "toDoButton">Todo</a> 
    </div> 
    </div> 
    <?php 
    ?> 


</body> 
    </html> 

    <!-- <br> 

<input type = "text" class="form-control" name = "loginemail" style = "width = 20px;" id = "input" placeholder = "Enter Email" required/> 
<i class="glyphicon glyphicon-user form-control-feedback"></i> 
    <br> --> 
+0

Две таблицы: таблица «user» и таблица «todolist», которая имеет идентификатор пользователя как внешний ключ. При входе в систему переменная сеанса может быть установлена ​​на идентификатор пользователя, так что код запрашивает только для тодолиста с этим идентификатором пользователя. – TurtleTread

+0

Ok @JoeS У меня уже есть таблица пользователей. Но этот todolist доступен для всех ... Я не могу поместить несколько данных в один ряд. Я действительно не понимаю, что вы говорите. – amanuel2

+0

столбцы таблицы todolist: todoid, content, userid. Query: select ... where userid = {userid} – TurtleTread

ответ

1

Поскольку это понятие вопрос, и вы упомянули, что Логин/регистрация системы уже сделано, что вам необходимо сделать следующее:

  • Запишите их, сохранив уникальный $_SESSION['id'] или уникальный уникальный ключ.
    • Кроме того, вы можете сохранить куки, чтобы идентифицировать их счет

В todo.php странице:

  • Убедитесь, что они вошли в систему, проверяя $_SESSION['id'] (если он установлен , иначе перенаправлять где-нибудь или всплывать сообщение).
  • запросов их текущие сохраненные Todos что-то вроде SELECT * FROM todo WHERE user='id'
  • Отображать <textarea> или аналогичный для хранения нового TODO (который вы можете сделать с помощью POST на той же странице).
  • Если страница получает POST запроса:
    • магазин новый Todos по INSERT INTO todo('id', 'sanitized $_POST["text"]')

Кроме того, убедитесь, чтобы дезинфицировать переменные, прежде чем делать какие-либо из этих запросов.

+0

Я все еще не понимаю, что вы пытаетесь сказать здесь Джерри – amanuel2

Смежные вопросы