Bir kullanıcı php açtıysa nasıl kontrol

3 Cevap php

Ben php için oldukça yeni ve ben onlar özel sayfalara erişmek için yetki olurdu böylece bir kullanıcı bir web sitesinde oturum olup olmadığını kontrol etmek ve görmek için oturumları nasıl kullanılacağını anlamaya çalışıyorum.

Bu karmaşık veya ben bunu anlamaya olamaz bir çaylak değilim, çünkü öyle bir şey mi?

Yardımın için teşekkürler!

3 Cevap

Girişler çok karışık değil, ancak hemen hemen tüm giriş işlemleri gereken bazı özel parçalar vardır.

Öncelikle, bu sayfaların başında bu koyarak açmış durum bilgisi gerektiren tüm sayfalarda oturum değişkeni etkinleştirmek olun:

session_start();

Kullanıcı giriş formu aracılığıyla kendi kullanıcı adı ve şifre gönderdiğinde Sonra, genellikle MySQL gibi bir veritabanı içeren kullanıcı adı ve şifre bilgilerini sorgulayarak kendi kullanıcı adı ve şifreyi kontrol edecektir. Veritabanı bir maç dönerse, o zaman bu gerçeği içeren bir oturum değişkeni ayarlayabilirsiniz. Ayrıca diğer bilgileri eklemek isteyebilirsiniz:

if (match_found_in_database()) {
    $_SESSION['loggedin'] = true;
    $_SESSION['username'] = $username; // $username coming from the form, such as $_POST['username']
                                       // something like this is optional, of course
}

Ardından, oturum açmış durumunu bağlıdır sayfasında, (session_start() unutma) aşağıdaki koyun:

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
    echo "Welcome to the member's area, " . $_SESSION['username'] . "!";
} else {
    echo "Please log in first to see this page.";
}

Bu temel bileşenleridir. Eğer SQL yönü ile yardıma ihtiyacınız varsa, net etrafında öğreticiler-bir-bol vardır.

Eğer başlamak için ihtiyaçları oturum denetimleri gerçekleştirmek istediğiniz sayfa:

session_start();

Oradan, onlar kaydedilir gösteren bir değişken için oturum dizi kontrol edin:

if (!$_SESSION["loggedIn"]) redirect_to_login();

Onları açılıyor ki değerini ayarlayarak başka bir şey değildir:

$_SESSION["loggedIn"] = true;

Login.html in:

<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Login Form</title>
</head>
<body>
  <section class="container">
    <div class="login">
      <h1>Login</h1>
      <form method="post" action="login.php">
        <p><input type="text" name="username" value="" placeholder="Username"></p>
        <p><input type="password" name="password" value="" placeholder="Password"></p>

        <p class="submit"><input type="submit" name="commit" value="Login"></p>
      </form>
    </div>
</body>
</html>

Login.php içinde:

<?php

$host="localhost"; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name="members"; // 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 
$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){
    session_start();
    $_SESSION['loggedin'] = true;
    $_SESSION['username'] = $username;
}

Member.php in:

session_start();
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
    echo "Welcome to the member's area, " . $_SESSION['username'] . "!";
} else {
    echo "Please log in first to see this page.";
}

MySQL:

CREATE TABLE `members` (
`id` int(4) NOT NULL auto_increment,
`username` varchar(65) NOT NULL default '',
`password` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

Register.html in:

<html>
<head>
<title>Sign-Up</title>
</head>
<body id="body-color">
<div id="Sign-Up">
<fieldset style="width:30%"><legend>Registration Form</legend>
<table border="0">
<form method="POST" action="register.php">
<tr>
<td>UserName</td><td> <input type="text" name="username"></td>
</tr>
<tr>
<td>Password</td><td> <input type="password" name="password"></td>
</tr>
<tr>
<td><input id="button" type="submit" name="submit" value="Sign-Up"></td>
</tr>
</form>
</table>
</fieldset>
</div>
</body>
</html>

Register.php in:

<?php

define('DB_HOST', '');
define('DB_NAME', '');
define('DB_USER','');
define('DB_PASSWORD','');

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " .     mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());



$userName = $_POST['username'];
$password =  $_POST['password'];
$query = "INSERT INTO members (username,password) VALUES ('$userName','$password')";
$data = mysql_query ($query)or die(mysql_error());
if($data)
{
echo "YOUR REGISTRATION IS COMPLETED...";
}
else
{
echo "Unknown Error!"
}