2015-01-21 2 views
0

Я работаю на странице входа в систему, которая, если вы входите в систему, перенаправляется на страницу загрузки, и я пытаюсь ограничить доступ к странице загрузки, если вы не вошли в систему и я не хочу, чтобы люди имели доступ к странице, если они не являются loggin. Пока это мой код, но я не знаю, как ограничить доступ с помощью сеанса. мой Логин сценарий:Ограничить доступ к странице с session_start()

<?php 
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="ana"; // Database name 
    $tbl_name="user"; // Table name 

    // Connect to server and select databse. 
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 

    // username and password sent from form 
    $myusername=$_POST['user']; 
    $mypassword=$_POST['pass']; 

    // To protect MySQL injection (more detail about MySQL injection) 
    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 
    $sql="SELECT * FROM $tbl_name WHERE user='$myusername' and pass='$mypassword'"; 
    $result=mysql_query($sql); 


    // If result matched $myusername and $mypassword, table row must be 1 row 
    if($myusername=='ana' and $mypassword==''){ 
    session_start(); 
    $_SESSION["myusername"]=$myusername; 
    $_SESSION["mypassword"]=$mypassword; 
    // Register $myusername, $mypassword and redirect to file "login_success.php" 
    echo "Your login was succesfull!"; 
    header("refresh:3;url=upload.php"); 
    } 
    else { 
    echo "Wrong Username or Password, please try again."; 
    header("refresh:3;url=connect.php"); 
    } 

?> 

и страница, которая перенаправляет вас к нему:

<!DOCTYPE HTML> 
<!-- 
    Astral by HTML5 UP 
    html5up.net | @n33co 
    Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 
--> 
<?php 
session_start(); 
?> 
<html> 
    <head> 
     <title>Ana Gemescu - Work work work | Upload </title> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <meta name="description" content="" /> 
     <meta name="keywords" content="" /> 
     <!--[if lte IE 8]><script src="css/ie/html5shiv.js"></script><![endif]--> 
     <script src="js/jquery.min.js"></script> 
     <script src="js/skel.min.js"></script> 
     <script src="js/init.js"></script> 
     <noscript> 
      <link rel="stylesheet" href="css/skel.css" /> 
     </noscript> 
     <!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]--> 
    </head> 
    <body> 
     <!-- Wrapper--> 
      <div id="wrapper"> 

       <!-- Main --> 
        <div id="main"> 
         <!-- Me --> 
          <article id="me" class="panel"> 
           <header> 
           <form action="uploader.php" method="post" enctype="multipart/form-data"> 
            Select image to upload:<br /> 
            <input type="file" name="fileToUpload" id="fileToUpload"><br /> 
            <select name="Folder" style="width:500px;margin-bottom:5px;margin-top:5px;" > 
              <option value="photo" style="padding:2px">Photos</option> 
              <option value="draw" style="padding:2px">Drawings</option> 
              <option value="video" style="padding:2px">Videos</option> 
              <option value="other" style="padding:2px">Other</option> 
            </select><br /> 
            <input type="submit" value="Upload Image" name="submit"> 
           </form> 
           </header> 
          </article> 
         </div> 
       <!-- Footer --> 
        <div id="footer"> 
         <ul class="copyright"> 
          <li>&copy; Ana Gemescu</li><li>Design: <a href="http://html5up.net">HTML5 UP</a>, Coded by: <a href="#">zapo</a></li> 
         </ul> 
        </div> 

      </div> 

    </body> 
</html> 

Может понравиться кто-нибудь помочь мне, как я ограничить доступ к странице загрузки, если вы не вошли в систему?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать

+0

Sidenote: вы выводите перед заголовком в *, а страница, перенаправляющая вас на нее, - *. Добавьте отчет об ошибках в начало файла (ов) сразу после открытия тега < 'error_reporting (E_ALL); ini_set ('display_errors', 1), 'посмотрим, даст ли это предупреждение, что, скорее всего, будет. –

ответ

1

Проверил на $_SESSION["myusername"], как этот

if(ISSET($_SESSION["myusername"])) 
{ 
    //upload page code 
} 
else 
{ 
    print "access denied"; 
} 
1

Всегда надевайте session_start(); в верхней части страницы ... перед любым выходом.

Проверка была ли установлена ​​переменная сеанса просто:

session_start(); //at the very top of your page 
if(!isset($_SESSION['your_index'])){ //for example user 
    //do something 
    //for example, send the user back to the login page 

    header('Location: myloginform.php'); //path to where your login form is located. Headers need to be above any output or they will produce an error and thus not work as intended (or at all even!) 
    exit; 
    } 

Также убедитесь, что вы принять соответствующие меры безопасности во внимание на скрипт, который делает фактическую загрузку файла. Например ...

  • Проверка типа загружаемого файла, вы наверняка не хотите, чтобы позволить пользователю загрузить все, что он/она желает к серверу
  • Правильные разрешения на папку загрузки (например, полные права доступа 777 просто спрашивает о проблемах)
0

Когда пользователь входит в систему, затем сохраняет флаг в сеансе, например $ _SESSION ['loggedin'] = 1; зачитайте значение каждого вызова. Если $ _SESSION ['loggedin'] == 1, тогда пользователь будет в безопасности.

1

Начните с вызова метода session_start(); на каждой странице, которую вы должны использовать. Вы можете избежать этого, вызвав этот метод один раз в базовом классе, который устанавливает ваше соединение mySQL, конечно, каждый класс, который наследует параметры подключения, наследует метод session_start().

Как для проверки подлинности, рассмотрим следующий пример:

//Create a new session object that will determine when a user is authenticated. 
$_SESSION['isAuthenticated'] = false; 

Вы могли бы инициализировать это в классе, который вызывается, когда пользователь успешно входит в систему, в том случае, если логическое значение будет переключаться на истинный при успешном входе в систему.

//Your welcome page, after log-in 
if(isset($_SESSION['isAuthenticated'])) 
{ 
    $_SESSION['isAuthenticated'] = true 
} 

На каждой новой странице вы можете затем создать условие, которое проверяет, если установлено значение TRUE (проверка подлинности пользователя)

if(!isset($_SESSION['isAuthenticated']) || $_SESSION['isAuthenticated'] == false) 
{ 
    echo "You are not authenticated to view this page, please log-in"; 
} 
else 
{ 
    //start your HTML here 
} 

Это исключает кто-то просто введя URL страницы в адрес бар и обход логина входа в систему.

0

Спасибо вам за помощь! Мне удалось сделать это с помощью session_start() ;. Не отставайте от хорошей работы и спасибо снова.

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