J'ai un formulaire d'identification qui me pose de drôles de problèmes:
1) Il reste muet, c'est à dire qu'il ne m'affiche aucun des messages d'erreur possible
2) il ne renvoie pas sur la page "header: Location..." si bien le visiteur est bien identifié
3) Le bouton "reset" est inopérant (???)
4) aucun message d'erreur de php...(peut être ce qui m'etonne le plus...
5) avec IE (6) c'est pire: les champs sont carrément inaccessible...
Voici le code php, placé dans l'en-tête:
Code : Tout sélectionner
<?php
include ('code_boutik/connect.inc.php');
?>
<?php
//test de soumission du formulaire où "envoyer" est le nom du submit
if (isset($_POST['envoyer']) && $_POST['envoyer'] =='Envoyer') {
if ((isset($_POST['prenom']) && !empty($_POST['prenom'])) && (isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['mdp']) && !empty($_POST['mdp'])))
//test pour vérifier si une entrée de la base clients contient l'ensemble prenom, nom, email, mdp
{
$sql = 'SELECT * FROM clients WHERE prenom ="'.mysql_escape_string($_POST['prenom']).'" AND nom ="'.mysql_escape_string($_POST['nom']).'" AND email = ="'.mysql_escape_string($_POST['email']).'" AND mdp_md5 ="'.md5(mysql_escape_string($_POST['mdp'])).'"';
$req = mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
//si réponse, c'est que le client est inscrit
$id = mysql_insert_id();//récupération de l'id du client
if ($data[0] == 1){
session_start();
$_SESSION['id'] = $id;
$_SESSION['prenom'] = $_POST['prenom'];
$_SESSION['nom'] = $_POST['nom'];
$_SESSION['email'] = $_POST['email'];
header ('Location: base.php');
exit();
mysql_close();
}
//si on ne trouve aucune réponse, c'est qu'il doit y avoir erreur dans la saisie, on le signale
elseif ($data[0] == 0){
$erreur = "Aïe!...Compte non reconnu par notre base...Êtes vous certain d'avoir bien entré les bonnes données?..Essayez à nouveau, svp. Merci";
}
else {
$erreur = "Houlà...Nous avons visiblement un problème avec notre base...Notez ce message et veuillez contactez le webmaster, svp; Merci!";
}
}
else{
$erreur = "Au moins 1 des champs n'est pas rempli; merci de remplir <b>TOUS</b> les champs.";
}
}
?>
Code : Tout sélectionner
<p>
<form action="<?php print $_SERVER['REQUEST_URI'];?>" method="post" class="txt-form">
<table>
<tr>
<td>Votre prénom: <input type="text" name="prenom" value="<?php if(isset($_POST['prenom']))echo htmlentities(trim($_POST['prenom'])); ?>" />
</td>
<td>Votre nom: <input type="text" name="nom" value="<?php if(isset($_POST['nom']))echo htmlentities(trim($_POST['nom'])); ?>" />
</td>
</tr>
<tr>
<td>Votre email: <input type="text" name="email" value="<?php if(isset($_POST['email']))echo htmlentities(trim($_POST['email'])); ?>" />
</td>
<td>Votre mot de passe: <input type="password" name="mdp" value="<?php if(isset($_POST['mdp']))echo htmlentities(trim($_POST['mdp'])); ?>" />
</td>
</tr>
<tr>
<td><input type="submit" name="envoyer" value="Envoyer!" />
</td>
<td>
<input type="reset" name="effacer" value="Effacer..." />
</td>
</tr>
</table>
</form>
<br />
<br />
<?php
if (isset($erreur)) {
echo $erreur;
}
?>
</p>