İleri devre dışı bırakılması ve Geri Düğmeler + php

5 Cevap php

Neredeyse php bu giriş sayfası yazma (iyi i bitmiş düşündüm) bitirdim. Her kullanıcı ayrıntılar girdiğinizde çalışıyor ve giriş tuşuna basar.

Ancak kullanıcı oturum açma sonra da 2 sayfaları arasında gitmek için tarayıcıda ileri ve geri düğmelerini kullanmak mümkün kez.

Oluyor bu durdurmak için bir yolu var mı? Giriş sayfasında varken temelde bir sonraki sayfaya geçmek için iletmek mümkün olmamalıdır.

(1st Page Giriş Sayfası.)

<form method="post" action="selectQuery.php">
<table width="768" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="118" height="34">Name:</td>
    <td width="650"><select name="username"  id="username">
     <option value="fredk">Fred</option>
      <option value="arbonk">Arbon</option>
      <option value="arsalana">Arsalan</option>
      <option value="minhn">Minh</option>
      <option value="nathanielg">Nathaniel</option>
    </select></td>
  </tr>
  <tr>
    <td height="33">Password:</td>
    <td><input name="password" type="password" value="password" maxlength="16" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Login" /></td>
  </tr>
</table>
</form>

(2. Sayfa)

<?php
$username = $_POST['username'];
$password = $_POST['password'];
$referer = $_SERVER['HTTP_REFERER'];

#connection to server
$connection = @mysql_connect ( "***.***.**.*" , "****", "*******") or die ("Could not connect to server");

#connection to database
$rs = @mysql_select_db ( "one", $connection ) or die ("Could not connect to Database");

#the sql query
$sql = "SELECT * FROM `users` WHERE user_name = \"$username\" AND password = \"$password\"";

#executing the query
$results = mysql_query( $sql, $connection ) or die ("Could not connect to Database");

#counts the no of rows that much the query
$row = mysql_num_rows($results);
##$rows = count(row);

#checks to see if password field is left blank
#if so it will return the user back to the login page
#if there is a match then we assume that the login is authenticated


if (empty($password) || $row == 0)
 {
  header( "Location:$referer" ); exit();
 }

else 
{

 if ($username == 'fredk')
 { $fname = 'Fred'; }
 else if ($username == 'arbonk')
 { $fname = 'Arbon'; }
 else if ($username == 'arsalana')
 { $fname = 'Arsalan'; }
 else if ($username == 'minhn')
 { $fname = 'Minh'; }
 else if ($username == 'nathanielg')
 { $fname = 'Nathaniel'; }

 $msg = "Hi $fname, your login was successfull. <p></p>";

 echo($msg);

}

?>

2. sayfada kodu, giriş doğru olup olmadığını kontrol etmelisiniz tüm iyi olup olmadığını ben kullanıcıya görünür hale bazı ek kod (bir form ve başka bir veritabanı sorgu) var.

5 Cevap

In your second page, after validating the login, you should redirect to another page, e.g. the wellcome page, that will prevent the back/forward button of getting to the validation page. Also in the login page you could check if the user is already logged in and if that's the case you redirect to the wellcome page.

Kullanıcı zaten açtıysa o başka, o / o / o zaten ileri düğmesini kullanarak ziyaret edilen sayfalara erişebilirsiniz sorun ne?

Her zaman kullanıcı açtıysa ilk sayfaya giriş sayfasından yönlendirme ve kullanıcı oturum değilse giriş sayfasına yönlendirmek

$ _SESSION ['User'] == $ _POST ["username"];

/ / Yönlendirme

>

Diğer sayfası

if (! $ _SESSION ['user']) {

header ("Location: $ login");

}

Ben sadece orada giriş yazısının birkaç göze batan sorunlar ekleyeceğiz.

  • Şifrem ne olur 1" OR 1=1
  • Ne benim tarayıcı yönlendirme göndereceğiz etmezse?
  • @ Hatalarını bastırmak için iyi bir yol değildir.

Ben sorun için PHP oturumları araştırma gerektiğini düşünüyorum.

Ben yerine disabling geri ve ileri düğmeleri, sen with Onları çalışması gerektiğini düşünüyorum. İnsanlar onları düzgün çalışması için bekliyoruz.

Ben tarayıcı kandırmak için kullanmış olduğunuz yolu aslında o bakıyor URL'yi değiştirmek asla etmektir. Oturum değişkenlerini ayarlar ve daha sonra bir büyük gibi oturum değişkenleri kullanan ilk sayfaya yönlendirme ayrı bir sayfaya POST finite state machine.

Beri sonraki yük page'll giriş formunu onları yönlendirmek ... Onlar "korumalı" sayfasında fowar gidebilirsiniz ama onlar orada bir şey yapamaz. :)