Script php de sécurisation

Résolu/Fermé
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 9 sept. 2008 à 20:50
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 10 sept. 2008 à 21:29
Bonjour,
J'ai crée un script php pour sécurisé des pages, mais il y a quelques défauts...

<?php
session_start(); // On démarre la session AVANT toute chose

if($_POST['name']!="")
{
$_SESSION['name'] = $name;
$_SESSION['mot_de_passe'] = $mot_de_passe;
}

/*En effet $_SESSION['name'] sera égal à $name et $_SESSION['mot_de_passe'] sera égal à $mot_de_passe*/
/*que si $_POST['name'] n'est pas égal à rien*/
// Maintenant que le session_start est fait, on peut taper du code HTML

	if (isset($_POST['mot_de_passe'])) 
		{
   		 $mot_de_passe = $_POST['mot_de_passe'];
		}
	else 
		{
   		 $mot_de_passe = ""; 
		}

	if ($mot_de_passe == "motdepass1" & $name == "Pseudo1") 
		{
		@header("Location: P.php");
		}
	elseif ($mot_de_passe == "motdepass2" & $name == "Pseudo2") 
		{
		@header("Location: C.php");
		}
	else 
		{
		
			?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Connexion au site</title>
  <style type="text/css">
  body{
  background: black;
  text-align: center;
  }
  table{
   color: red;
  }
  </style>
 </head>
 <body>
 <form action="" method="post">
 <table width="225" border="1" cellpadding="3" align="center">
 <tr><td colspan="2"><center><font
 size="+2"><b>Connexion</b></font></center></td></tr>
 <tr><td>Login : </td><td><input type="text" name="name"></td></tr>
 <tr><td>Mot de Passe : </td><td><input type="password" name="mot_de_passe" /> </td></tr>
 <tr><td colspan="2" align="center"><input type="submit" value="Valider" /></td></tr>
 </table>
 </form>
<div style="background-color: #767684; color: #FFDD00; font: bold, 14px, Arial;">
<?php include ('include/coyright.html'); ?>
</div>
 </body>
</html>
<?php
		}
?>


J'aimerais que cela produise les actions suivantes :
"-Si le pseudo est Pseudo1 ET que le mot de passe est motdepass1, alors le visiteur est redirigé vers P.php,
-Si le pseudo est Pseudo2 ET que le mot de passe est motdepass2, alors il est redirigé vers C.php"

Deuxième bug : l'include ne marche pas :s

Merci pour votre aide qui me sera précieuse...
A voir également:

12 réponses

bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2008 à 20:53
salut!
essai de separer le php de html
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
9 sept. 2008 à 21:04
le symbole du ET logique c'est && pas & donc
if ($mot_de_passe == "motdepass1" && $name == "Pseudo1") 
elseif ($mot_de_passe == "motdepass2" && $name == "Pseudo2") 
pour ton include ne mets pas d'espace entre include et la premiere parenthese
<?php include("include/coyright.html"); ?>
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
9 sept. 2008 à 22:45
Ok merci a vous deux, je teste et je repost les changements plus tard :)
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
9 sept. 2008 à 22:53
Bon ça marche pour Pseudo1, mais pas pour Pseudo2.

De plus, voici l'erreur pour l'include :
Warning: main(http://h4ck.n3t.free.fr/include/coyright.html) [function.main]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /mnt/102/sdb/f/b/h4ck.n3t/Chat php/index.php on line 60

Warning: main() [function.include]: Failed opening 'http://h4ck.n3t.free.fr/include/coyright.html' for inclusion (include_path='/mnt/102/sdb/f/b/h4ck.n3t/include:.:/usr/php4/lib/php') in /mnt/102/sdb/f/b/h4ck.n3t/Chat php/index.php on line 60


Merci de votre aide...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
9 sept. 2008 à 23:00
apparement il trouve pas ton fichier...
verifie que le chemin que tu as donné est le bon et qu'il est bien ecrit
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
10 sept. 2008 à 13:00
Oui c'était ça merci ^^

Pour ce qui est de la session, qui a une solution ?

Je répète : le couple "Pseudo1/motdepass1" marche mais le couple "Pseudo2/motdepass2" est ignoré :(

Encore une chose, j'aimerais que sur la page de destination (C.php et P.php) il y est un code permettant de vérifié si la session est bien démarrée, et si les infos rentrées sont bonnes... J'ai écrit ceci :

<?php
session_start(); // On démarre la session AVANT toute chose
	if ($mot_de_passe == "" OR $name == "") 
		{
		@header("Location: index.php");
		}
	elseif ($mot_de_passe == "motdepass1" && $name == "Pseudo1") 
		{
?>
<html>
<!-- La page P.php -->
</html>
<?php
		}
?>


est-ce bon ?

Merci pour vos réponses...
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
10 sept. 2008 à 19:45
c'est normal que le couple "pseudo2/mot de passe 2" marche pas tu as oublié l'espace entre else et if
else if ($mot_de_passe == "motdepass2" && $name == "Pseudo2")
pour ta deuxieme question le symbole du OR c'est ||
if ($mot_de_passe == "" || $name == "") 
et c'est pareil il manque un espace dans ton else if
else if ($mot_de_passe == "motdepass1" && $name == "Pseudo1") 
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 20:06
salut,

le coup de l'espace, j'aimerais bien comprendre car il n'y a pas de différence entre les deux instructions.
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
10 sept. 2008 à 20:08
C'est pour ça que je ne comprends pas non plus :s
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920 > hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014
10 sept. 2008 à 20:11
et dans tes modifs tu n'as touché qu'à ça ?

tu n'avais pas oublié de fermer une accolade en plus ? ou quelque chose du même genre…
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
10 sept. 2008 à 20:12
Non, j'ai touché que ça...
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920 > hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014
10 sept. 2008 à 20:14
peux tu recoller le bout de script une fois modifié (celui qui fonctionne quoi !) stp ?
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
10 sept. 2008 à 19:48
Oui, mais la balise elseif existe aussi, dans quelle cas on l'utilise alors ?

En tout cas merci pour ta réponse, je test et je repost...
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
10 sept. 2008 à 19:59
Super ça marche !!!!

Merci pour tout :)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 20:28
re,

je reprends en bas pour avoir de la place.

je ne comprends pas d'où sort "$name".

tu affectes la valeur de "$name" à la variable de sessions "$_SESSION['name']" mais "$name" elle-même n'est jamais définie et tu n'utilises pas le retour du formulaire à savoir "$_POST['name'].
	if($_POST['name']!="")
	{
		$_SESSION['name'] = $name;
		$_SESSION['mot_de_passe'] = $mot_de_passe;
	}
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
10 sept. 2008 à 21:16
Le truc, c'est que ça marche...

Apés, sur les pages sécurisé, je fais appel à la session, et en titre (<title>) et en titre (<h1>) je met
<?php echo $name; ?>
et ca affiche le pseudo :)

Le "$name" sort du formulaire si tu regarde bien ;)

A+
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 21:23
le problème c'est que pour effectivement sortir du formulaire il faudrait que tu ailles le chercher dans "$_POST['name']" ce qui n'est pas le cas.

tu n'aurais pas "register_global=ON" dans ton "php.ini" ?

ce n'est pas très conseillé, mais bon si ça fonctionne et te convient je te souhaite bonne soirée !
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
10 sept. 2008 à 21:29
Je m'y connais pas en php. Tout ce que je sais, c'est que j'ai fait un script et des pages sécurisées avec l'aide de mype, et qu'elles marchent. Aucuns autres fichiers, aucunes autres config...

Bonne nuit :)
0