IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Script de protection de pages ne marchant plus


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Script de protection de pages ne marchant plus
    Bonjour,
    je viens de changer de serveur récemment php4 -> php5 et register global à off et j'avais mis en place un script de protection qui marchait bien et qui était suffisant pour l'usage que j'en faisait.
    Hors depuis le changement celui ne fonctionne plus et je ne sais plus ou je l'ai trouvé Il me fait apparaitre un popup d'alerte sur FF3 qui dit "The URL is not valid and cannot be loaded." et sur IE rien
    L'appel pour la protection d'une page se fait simplement avec un include genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    include "password.php";
    ?>
    Voici le code de la page password.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    <?php
    session_start();
     
    $admin_user_name = "admin";
    $admin_password = "pass";
    //you can change the username and password by changing the above two strings 
     
    if (!isset($HTTP_SESSION_VARS['user'])) {
     
    	if(isset($HTTP_POST_VARS['u_name'])) 
    		$u_name = $HTTP_POST_VARS['u_name'];
     
    	if(isset($HTTP_POST_VARS['u_password'])) 
    		$u_password = $HTTP_POST_VARS['u_password'];
     
    	if(!isset($u_name)) {
    		?>
    		<HTML>
    		<HEAD>
    		<TITLE><?php echo $HTTP_SERVER_VARS['HTTP_HOST']; ?> : Authentication Required</TITLE>
    		</HEAD>
    		<BODY bgcolor=#ffffff>
    		<table border=0 cellspacing=0 cellpadding=0 width=100%>
    			 <TR><TD>
    			 <font face=verdana size=3><B><center>Access Restricted to Authorized Personnel !</center></b> </font></td>
    			 </tr></table>
    		<P></P>
    		<font face=verdana size=2>
    		<center>
    		<?php
    		$form_to = "http://$HTTP_SERVER_VARS[HTTP_HOST]$HTTP_SERVER_VARS[PHP_SELF]";
     
    		if(isset($HTTP_SERVER_VARS["QUERY_STRING"]))
    		$form_to = $form_to ."?". $HTTP_SERVER_VARS["QUERY_STRING"];
     
    		?>
    		<form method=post action=<?php echo $form_to; ?>>
    		<table border=0 width=350>
    		<TR>
    		<TD><font face=verdana size=2><B>User Name</B></font></TD>
    		<TD><font face=verdana size=2><input type=text name=u_name size=20></font></TD></TR>
    		<TR>
    		<TD><font face=verdana size=2><B>Password</B></font></TD>
    		<TD><font face=verdana size=2><input type=password name=u_password size=20></font></TD>
    		</TR>
    		</table>
    		<input type=submit value=Login></form>
    		</center>
    		</font>
    		</BODY>
    		</HTML>
     
    		<?php
    		exit;
    	}
    	else {
     
    		function login_error($host,$php_self) {
    			echo "<HTML><HEAD>
    			<TITLE>$host :  Administration</TITLE>
    			</HEAD><BODY bgcolor=#ffffff>
    			<table border=0 cellspacing=0 cellpadding=0 width=100%>
    				 <TR><TD align=left>
    				 <font face=verdana size=2><B> &nbsp;You Need to log on to access this part of the site! </b> </font></td>
    				 </tr></table>
    			<P></P>
    			<font face=verdana size=2>
    			<center>";
     
    			echo "Error: You are not authorized to access this part of the site! 
    			<B><a href=$php_self>Click here</a></b> to login again.<P>
    			</center>
    			</font>
    			</BODY>
    			</HTML>";
    			session_unregister("adb_password");
    			session_unregister("user");
    			exit;
    		}
     
    		$user_checked_passed = false;
     
     
    		if(isset($HTTP_SESSION_VARS['adb_password'])) {
     
    			$adb_session_password = $HTTP_SESSION_VARS['adb_password'];
     
    			if($admin_password != $adb_session_password) 
    				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
    			else {
    				$user_checked_passed = true;
    			}
    		}
     
     
    		if($user_checked_passed == false) {
     
    			if(strlen($u_name)< 2) 
    				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
     
    			if($admin_user_name != $u_name) //if username not correct
    				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);		
     
    			if(isset($admin_password)) {
     
    				if($admin_password == $u_password) {
     
    					session_register("adb_password");
    					session_register("user");
     
    					$adb_password = $admin_password;
    					$user = $u_name;
    				}
    				else { //password in-correct
    					login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
    				}
    			}
    			else {
    				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
    			}
     
    			$page_location = $HTTP_SERVER_VARS['PHP_SELF'];
    			if(isset($HTTP_SERVER_VARS["QUERY_STRING"]))
    			$page_location = $page_location ."?". $HTTP_SERVER_VARS["QUERY_STRING"];
     
    			header ("Location: ". $page_location);
    		}
    	}
    }
    ?>
    Si vous aviez des pistes ou une explication parce que je comprend pas trop ce qui ne va pas. Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    controle ton $page_location

    sinon il faudrait aussi mettre ton script a le mode php 5 (meme si les elements que tu as utilisé devraient toujours fonctionner) :

    $HTTP_SERVER_VARS -> $_SERVER
    $HTTP_POST_VARS -> $_POST
    session_register -> $_SESSION
    etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par sabotage Voir le message
    controle ton $page_location

    sinon il faudrait aussi mettre ton script a le mode php 5 (meme si les elements que tu as utilisé devraient toujours fonctionner) :

    $HTTP_SERVER_VARS -> $_SERVER
    $HTTP_POST_VARS -> $_POST
    session_register -> $_SESSION
    etc.
    Oui je me doutais bien qu'il y avait une mise à jour vers php5 mais j'avoue que je suis pas très bon en php5 .
    Je vais essaye de corriger ça et si j'ai un soucis je reviens ici

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Bon je viens de faire quelques corrections pour passer en php5 cependant j'ai du rater quelques choses car une fois le login et le password mis, la page qui devrait s'afficher reste blanche et rien ne s'affiche
    Et je vois pas ce qui ne va pas...

    Voici le code "corrigé" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    <?php
    session_start();
     
    $admin_user_name = "admin";
    $admin_password = "pass";
    //you can change the username and password by changing the above two strings 
     
    if (!isset($_SESSION['user'])) {
     
    	if(isset($_POST['u_name'])) 
    		$u_name = $_POST['u_name'];
     
    	if(isset($_POST['u_password'])) 
    		$u_password = $_POST['u_password'];
     
    	if(!isset($u_name)) {
    		?>
    		<HTML>
    		<HEAD>
    		<TITLE><?php echo $_SERVER['HTTP_HOST']; ?> : Authentication Required</TITLE>
    		</HEAD>
    		<BODY bgcolor=#ffffff>
    		<table border=0 cellspacing=0 cellpadding=0 width=100%>
    			 <TR><TD>
    			 <font face=verdana size=3><B><center>Access Restricted to Authorized Personnel !</center></b> </font></td>
    			 </tr></table>
    		<P></P>
    		<font face=verdana size=2>
    		<center>
    		<?php
    		$form_to = "http://$_SERVER[HTTP_HOST]$_SERVER[PHP_SELF]";
     
    		if(isset($_SERVER["QUERY_STRING"]))
    		$form_to = $form_to ."?". $_SERVER["QUERY_STRING"];
     
    		?>
    		<form method=post action=<?php echo $form_to; ?>>
    		<table border=0 width=350>
    		<TR>
    		<TD><font face=verdana size=2><B>User Name</B></font></TD>
    		<TD><font face=verdana size=2><input type=text name=u_name size=20></font></TD></TR>
    		<TR>
    		<TD><font face=verdana size=2><B>Password</B></font></TD>
    		<TD><font face=verdana size=2><input type=password name=u_password size=20></font></TD>
    		</TR>
    		</table>
    		<input type=submit value=Login></form>
    		</center>
    		</font>
    		</BODY>
    		</HTML>
     
    		<?php
    		exit;
    	}
    	else {
     
    		function login_error($host,$php_self) {
    			echo "<HTML><HEAD>
    			<TITLE>$host :  Administration</TITLE>
    			</HEAD><BODY bgcolor=#ffffff>
    			<table border=0 cellspacing=0 cellpadding=0 width=100%>
    				 <TR><TD align=left>
    				 <font face=verdana size=2><B> &nbsp;You Need to log on to access this part of the site! </b> </font></td>
    				 </tr></table>
    			<P></P>
    			<font face=verdana size=2>
    			<center>";
     
    			echo "Error: You are not authorized to access this part of the site! 
    			<B><a href=$php_self>Click here</a></b> to login again.<P>
    			</center>
    			</font>
    			</BODY>
    			</HTML>";
    			session_unregister("adb_password");
    			session_unregister("user");
    			exit;
    		}
     
    		$user_checked_passed = false;
     
     
    		if(isset($_SESSION['adb_password'])) {
     
    			$adb_session_password = $_SESSION['adb_password'];
     
    			if($admin_password != $adb_session_password) 
    				login_error($_SERVER['HTTP_HOST'],$_SERVER['PHP_SELF']);
    			else {
    				$user_checked_passed = true;
    			}
    		}
     
     
    		if($user_checked_passed == false) {
     
    			if(strlen($u_name)< 2) 
    				login_error($_SERVER['HTTP_HOST'],$_SERVER['PHP_SELF']);
     
    			if($admin_user_name != $u_name) //if username not correct
    				login_error($_SERVER['HTTP_HOST'],$_SERVER['PHP_SELF']);		
     
    			if(isset($admin_password)) {
     
    				if($admin_password == $u_password) {
     
    					$_SESSION("adb_password");
    					$_SESSION("user");
     
    					$adb_password = $admin_password;
    					$user = $u_name;
    				}
    				else { //password in-correct
    					login_error($_SERVER['HTTP_HOST'],$_SERVER['PHP_SELF']);
    				}
    			}
    			else {
    				login_error($_SERVER['HTTP_HOST'],$_SERVER['PHP_SELF']);
    			}
     
    			$page_location = $_SERVER['PHP_SELF'];
    			if(isset($_SERVER["QUERY_STRING"]))
    			$page_location = $page_location ."?". $_SERVER["QUERY_STRING"];
     
    			header ("Location: ". $page_location);
    		}
    	}
    }
    ?>

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/08/2007, 14h13
  2. Script pour faire plusieurs page…
    Par sam01 dans le forum Langage
    Réponses: 7
    Dernier message: 14/04/2006, 21h51
  3. Un script qui fermerait une page avec chrono ?
    Par beegees dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 31/03/2006, 10h01
  4. script de chargement de page
    Par freud dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/02/2006, 22h28
  5. Appeller 2 pages HTML ou plus
    Par vins25 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 24
    Dernier message: 06/01/2006, 13h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo