[PHP] formulaires et page sécurisée

canado Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
antic80 Messages postés 4785 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde, voila le dilemme, j'ai un code source que j'aimerais qu'il marche mais bon a vous de voir je ferai mes explication après:

<?php



if (isset($_POST['password']) && isset($_POST['nom']))
{
$password = $_POST['password'];
$nom = $_POST['nom'];
mysql_connect("localhost","root","");
mysql_select_db("essai");
mysql_query("INSERT INTO login VALUES ('$nom','$password')");
mysql_close();
}
else
{
$password = "";
$nom = "";
}



if ($password == "toto" && $nom == "cédric" )
{

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form name="form1" id="form1" action="index1.php" method="post" >
Ecrivez les news:<br>
<textarea name="message" cols="100" rows="5" ></textarea>
<input name="submit" type="submit" value="Valider" id="form1">

</form>
<?
if (isset($_POST['message']) )
{
$message = $_POST['message'];
mysql_connect("locahost","root","");
mysql_select_db("essai");
mysql_query("INSERT INTO forum VALUES('','$message')");
mysql_close();
}
?>

</body>
</html>

<?php
}

else
{

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form action="index1.php" id="form2" method="post">
<p>
<input type="text" name="nom" /><br>
<input type="text" name="password" /> <input type="submit" value="Valider" id="form2" />
</p>
</form>
<?
mysql_connect("locahost","root","");
mysql_select_db("essai");
mysql_close();
?>

</body>
</html>

<?php

}


?>

Alors j'explique, je créé un premier formulaire, protégeant une page sécurisée en entrant un mode passe et un login, jusque la pas probleme, ensuite le programme vérifie si le login et mot de passe conviennent, pas de probleme non plus. Donc ensuite, si le login et mot de passe sont bon, j'affiche la page sécurisée sinon je raffiche la page pour insérer le pass et le login. Bref et dans la page sécurisée j'y ai mit une petite zone de texte qui permettera de stocker dans une table des news quelconques, alors mon probleme se situe ici, quand j'appuie sur le bouton valider je ne retrouve rien dans ma table, j'ai remplacé la variable par un mot tout simple dans la requete et puis le mot n'est pas enregistré dans la table, alors j'en déduis que le programme ne passe meme pas dans le code php, j'ai oublié quelque chose? J'ai fait une erreur de syntaxe? Aucune idée, en tout cas si vous pouviez m'aider merci bien.

PS: Par contre, si vous pouviez m'expliquer le systeme de htaccess, qui pourrait resoudre tout mes problemes ce serait gentil.
A voir également:

1 réponse

antic80 Messages postés 4785 Date d'inscription   Statut Contributeur Dernière intervention   1 161
 
bonjour

le probleme est que tu passe par une seule page et souvent ca deconne

on va passer par plusieurs pages

- page pour entrer le mot de passe (page1.php)
- page pour saisir tes news (news.php)
- page pour insérer les news(insert-news.php)
- page pour vérifier le mot de passe (verif-login.php)


code de page1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
<head> 
<title>Document sans titre</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
</head> 
<body> 
<form action="verif-login.php" id="formulaire" method="post"> 
<p> 
<input type="text" name="nom"><br> 
<input type="text" name="password"> 
<input type="submit" value="Valider" 
> 
</p> 
</form> 
</body>
</html>



code de verif-login.php

<?
if (isset($_POST['password']) && isset($_POST['nom'])) 
{
     if ($password == "toto" && $nom == "cédric" ) 
    {
    header("Location: http://www.monsite.com/news.php");
}
else
{
header("Location: http://www.monsite.com/page1.php");
}
?>


code de insert-news.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form name="form1" id="form1" action="insert-news.php" method="post" >
Ecrivez les news:<br>
<textarea name="message" cols="100" rows="5" ></textarea>
<input name="envoie" type="submit" value="Valider" id="form1">

</form>
</body>
</html>

code de insert-news.php

<?
$Server="localhost";
$User="root";
$Password="";
$db = mysql_connect($Server, $User, $Password) or die('Erreur de connexion '.mysql_error());
mysql_select_db('essai',$db) or die('Erreur de selection '.mysql_error());

if (isset($_POST['message']) )
{
$message = $_POST['message'];

$sql = "INSERT INTO forum(Id,Message) VALUES('','$message'')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close($db);
}

?>

voila je pense que ca devrais aller


par contre je vois pas bien ce que ce code viens faire la

if (isset($_POST['password']) && isset($_POST['nom'])) 
{ 
$password = $_POST['password']; 
$nom = $_POST['nom']; 
mysql_connect("localhost","root",""); 
mysql_select_db("essai"); 
mysql_query("INSERT INTO login VALUES ('$nom','$password')"); 
mysql_close(); 
} 
else 
{ 
$password = ""; 
$nom = ""; 
} 


1