Eléphanteau du PHP |
43 Messages
05 juin 2012, 22:13
J'ai voulu ne pas recopier le tuto que vous m'avez donner et adapter la partie "connexion" a ma base de donnée mais manque de pot quand je clique sur "envoyer" ca recharge la page alors est ce que je dois vraiment tout refaire ou est ce que j'ai fais une gaffe quelque part?
<?php
// Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
header('Content-type: text/html; charset=UTF-8');
/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
// Initialisation du message de réponse
$message = null;
// Si le formulaire est envoyé
if (isset($_POST['Nom_Utilisateur']))
{
/* Récupération des variables issues du formulaire
Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
$pseudo = (isset($_POST['Nom_Utilisateur']) && trim($_POST['Nom_Utilisateur']) != '')? Verif_magicquotes($_POST['Nom_Utilisateur']) : null;
$pass = (isset($_POST['Mot_de_Passe']) && trim($_POST['Mot_de_Passe']) != '')? Verif_magicquotes($_POST['Mot_de_Passe']) : null;
// Si $pseudo et $pass différents de null
if(isset($pseudo,$pass))
{
// Connexion au serveur
include("/Includes/cbdd2.php");
// Connexion à la base
mysql_select_db($database, $connection);
// Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
mysql_query("SET NAMES 'utf8'");
// Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
$nom = mysql_real_escape_string($pseudo);
$password = mysql_real_escape_string(md5($pass));
/* Requête pour récupérer les enregistrements répondant à la clause :
champ du pseudo et champ du mdp de la table = pseudo et mdp postés dans le formulaire*/
$requete = "SELECT * FROM Comptes_Utilisateurs WHERE Nom_Utilisateur = '".$nom."' AND Mot_de_Passe = '".$password."'";
// Exécution de la requête
$req_exec = mysql_query($requete) or die(mysql_error());
// Création du tableau associatif du résultat
$resultat = mysql_fetch_assoc($req_exec);
// Les valeurs (si elles existent) sont retournées dans le tableau $resultat;
if (isset($resultat['Nom_Utilisateur'],$resultat['Mot_de_Passe']))
{
/* Démarre la session et enregistre le pseudo dans la variable de session $_SESSION['login']
qui donne au visiteur la possibilité de visiter les pages protégées. */
session_start();
$_SESSION['login'] = $pseudo;
// Redirection de l'utilisateur
header("/chat-1.0/index.php")
}
else
{ // Le pseudo ou le mot de passe sont incorrect
$message = 'Le pseudo ou le mot de passe sont incorrect';
}
}
else
{ //au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli
$message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Acceuil Forces Speciales</title>
<style type="text/css">
<?php include("/Includes/style.php"); ?>
</style>
</head>
<body bgcolor="#000000" text="#FFFFFF" alink="#A0A0A0">
<header>
<div id="logo">
<div align="center">
<p><img src="/Images/logo-FS.jpg" width="320" height="320" align="absmiddle" alt="logo Forces Spéciales"/>
</p>
</div>
</div>
</header>
<div id = "connex">
<div align="center">
<form action = "#" method="post">
<h1>Connexion</h1>
<p><label for = "Nom_Utilisateur">Pseudo : </label><input type="text" name="Nom_Utilisateur" id="Nom_Utilisateur" alt="zone nom utilisateur"/></p>
<p><label for = "Mot_de_Passe">Mot de passe : </label><input type="password" name="Mot_de_Passe" id="Mot_de_Passe" alt="zone mot de passe" /></p>
<p><input type="submit" value="Envoyer" id = "valider" alt="bouton envoyer"/></p>
</form>
<p id = "message"><?php if(isset($message)) echo $message ?></p>
</div>
</div>
<footer><!--fin de lien création de compte-->
<div id="pied">
<div align="center">
<a href="file:///C|/wamp/www/Site3.0/contact.php">Me contacter !</a></p>
<p>Copyright Vincelufologue - Tous droits réservés</p>
</div>
</div>
</footer>
</body>
</html>
et voila le script de connection a la base de donné (include cbdd2")
$hostname = "localhost";
$database = "nombase";
$username = "nom";
$password = "motdepasse";
$connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
si le probleme venait de la connexion (par exemple manque du port) je devrai avoir un message non?
(par contre là c'est en UTF-8 c'est pas mieux de mettre en iso-8859-1 histoire de pas echapper tous les lettres a accents?)