2014-04-10 5 views
1

Я создаю админ-админ для небольшого веб-сайта, который я делаю для администратора, который попадает на сайт, но я мало понимаю о сеансах (и php в целом).Создать сеанс для входа в php

Существует две страницы: admin.php (где находится администратор) и backoffice.php (администратор перенаправляется сюда после успешного входа в систему).

Каков самый простой способ создать сеанс для администратора, чтобы пользователь не мог получить доступ к backoffice, просто перейдя на «www.example.com/backoffice.php»?

Я не знаю, если это имеет какой-либо интерес, но вот PHP я использовать для входа в систему администратора:

<?php 
ob_start(); 
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="dragoesmurtosa"; // Database name 
$tbl_name="login"; // Table name 

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

if(empty($_POST['username'])) 
{ 
    echo "UserName/Password is empty!"; 
    return false; 
} 
if(empty($_POST['password'])) 
{ 
    echo "Password is empty!"; 
    return false; 
} 


// Define $username and $password 
$username=$_POST['username']; 
$password=($_POST['password']); 


// To protect MySQL injection (more detail about MySQL injection) 
$username = stripslashes($username); 
$password = stripslashes($password); 
$username = mysql_real_escape_string($username); 
$password = mysql_real_escape_string($password); 

$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 
// If result matched $username and $password, table row must be 1 row 
if ($count==1) { 
    header("refresh:0;url=backoffice.php"); 
} else { 
    echo "Wrong password, you'll be sent to the login page"; 
    header("refresh:3;url=admin.php"); 
} 

ob_end_flush(); 
?> 
+0

Я не вижу, что вы используете сессии еще где-нибудь. Поэтому используйте сеансы. http://php.net/session_start – Halcyon

+1

'session_start();' '$ username = $ _POST ['username'];' '$ _SESSION ['username'] = $ username;' if (isset ($ _ SESSION [ 'username'])) {// дать доступ} 'в принципе. Или 'if (! Isset ($ _ SESSION ['username'])) {// загружаем их}' –

+1

помещает шлюз в каждый скрипт. 'Session_start(); if (! $ _ SESSION ['is_admin']) {redirect_whereewhere(); } '. –

ответ

1

Добавить в верхней части кода

session_start(); 

Заменить

if ($count==1) { 
header("refresh:0;url=backoffice.php"); 

}

с

if ($count==1) { 
    header("refresh:0;url=backoffice.php"); 
$_SESSION['logged']="true"; 
} 

Затем в backoffice.php, положить в верхней

<?php 
session_start(); 
if($_SESSION['logged']!="true"){echo 'Error! You\'re not logged in!';} 
else{//your code 
} 
?> 
0
<html> 
<script> 
function val() 
{ 
    var x=document.getElementById("a1").value; 
    if((x==" ")||(x=="")) 
    { 
     document.getElementById("nameerror").innerHTML="name field can't be empty"; 

     return false; 
    } 
} 
</script> 
<style> 
     .error 
      {color:red;} 
</style> 
<body> 
<form onsubmit="return val()"> 
<p style="color:red">*required field</p> 
<br /> 
Name: <input type="text" id="a1"><span class="error">*</span> 
<span id="nameerror" class="error"></span><br> 
<br> 
E-mail: <input type="text"><br> 
<br> 
Website: <input type="text"><br> 
<br> 
Comment: <textarea name="comment" rows="5" cols="30"></textarea><br> 
<br> 
Gender:<input type="radio" name="gender">Female 
     <input type="radio" name="gender">Male<br> 
     <br> 
     <input type="submit" value="Submit" onclick="val()"> 
</form>  
</body> 
</html> 
+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. –

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