Bonjour,
Voila je rencontre un petit problème avec mon code. La requete me retourne un resultat vide et y a rien qui s insert dans la base de donnée. Merci
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['prenom']) && !empty($_POST['prenom'])) && (isset($_POST['adresse']) && !empty($_POST['adresse'])) && (isset($_POST['tel']) && !empty($_POST['tel'])) && (isset($_POST['date_naiss']) && !empty($_POST['date_naiss'])) && (isset($_POST['sexe']) && !empty($_POST['sexe'])) && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['password']) && !empty($_POST['password'])) && (isset($_POST['password1']) && !empty($_POST['pasword1']))) {
// on teste les deux mots de passe
if ($_POST['password'] != $_POST['password1']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('medicale', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM patient WHERE id_p="'.mysql_escape_string($_POST['id_p']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO patient VALUES("", "'.mysql_escape_string($_POST['nom']).'", "'.mysql_escape_string(($_POST['prenom'])).'", "'.mysql_escape_string($_POST['adresse']).'",, "'.mysql_escape_string($_POST['tel']).'", "'.mysql_escape_string($_POST['date_naiss']).'", "'.mysql_escape_string($_POST['sexe']).'" , "'.mysql_escape_string($_POST['email']).'" , "'.mysql_escape_string($_POST['password']).'", "'.mysql_escape_string($_POST['password1']).'",)';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['email'] = $_POST['email'];
header('Location: patient/conx.php');
exit();
}
else {
$erreur = 'Un membre possède déjà cette email.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>formulaire</title>
<!---------- CSS ------------>
<link rel="stylesheet" type="text/css" href="./css/style.css">
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" media="screen"
href="http://tarruda.github.com/bootstrap-datetimepicker/assets/css/bootstrap-datetimepicker.min.css">
</head>
<body>
<!--BEGIN #signup-form -->
<div id="signup-form">
<!--BEGIN #subscribe-inner -->
<div id="signup-inner">
<div class="clearfix" id="header">
<img id="signup-icon" src="./images/signup.png" alt="" />
<h1>Formulaire d'inscription</h1>
</div>
<form id="send" method="POST">
<p>
<label for="nom">Votre nom </label>
<input id="name" type="text" required name="nom" value="" />
</p>
<p>
<label for="prenom">Votre prénom</label>
<input id="prenom" type="text" required name="prenom" value="" />
</p>
<p>
<label for="adresse">Votre adresse</label>
<input id="adresse" type="text" required name="adresse" value="" />
</p>
<p>
<label for="tel">Votre téléphone</label>
<input id="tel" type="text" required name="tel" value="" />
</p>
<p>
<script type="text/javascript"
src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script type="text/javascript"
src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js">
</script>
<script type="text/javascript"
src="http://tarruda.github.com/bootstrap-datetimepicker/assets/js/bootstrap-datetimepicker.min.js">
</script>
<script type="text/javascript"
src="http://tarruda.github.com/bootstrap-datetimepicker/assets/js/bootstrap-datetimepicker.pt-BR.js">
</script>
<div class="well">
<div id="datetimepicker4" class="input-append">
<label for="tel">Votre date de naissance</label>
<input data-format="yyyy-MM-dd" type="text" required name="date"></input>
<span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar">
</i>
</span>
</div>
</div>
<script type="text/javascript">
$(function() {
$('#datetimepicker4').datetimepicker({
pickTime: false
});
});
</script>
</p>
<p>
<label for="nom">Sexe</label>
<select required name="sexe">
<option value=""></option>
<option name="sexe" value="">Homme</option>
<option name="sexe" value="">Femme</option>
</select>
</p>
<p>
<label for="email">Votre email</label>
<input id="email" type="email" name="email" value="" />
</p>
<p>
<label for="password">Votre mot de passe</label>
<input id="password" type="password" required name="password" value="" />
</p>
<p>
<label for="password1">Confirmez votre mot de passe</label>
<input id="password1" type="password" required name="password1" value="" />
</p>
<p>
<button id="submit" type="submit">Submit</button>
<button id="submit" type="reset">Annuler</button>
</p>
</form>
</div>
<!--END #signup-inner -->
</div>
<!--END #signup-form -->
</div>
</body>
</html>
Bonjour Bichette, je vous conseille de vous référer au tutoriel "Gestion d'un espace membre", par ailleurs je déconseille fortement l'utilisation de MySQL, je vous conseille l'utilisation de PDO, qui est beaucoup plus simple à prendre en main (à titre personnel).
Ensuite, je vous conseille de déboguer votre code, afin de pouvoir trouver d'éventuels soucis dans votre code, par contre selon votre code, vous vous attendez à recevoir Inscription du champ inscription, hors à aucun moment vous n'avez défini un "input" avec ce même nom.
Essaye d'enlever donc cette condition (&& $_POST['inscription'] == 'Inscription'), peut-être votre code serra fonctionnel après cela.
Bonjour,
2ème ligne de code, la où tu vérifies que tes champs sont remplis: à la fin de la ligne tu écris "(isset($_POST['password1']) && !empty($_POST['pasword1'])". Les deux variables ne portent pas le même nom.
Corrige ça et ré-essaye
Salut
En +
En aucun moment tu ne defini le champs id_p dans ton formulaire.
Ta requete ne serait t-il par hasard ceci =>
$email = mysql_escape_string($_POST['email']);
$sql = "SELECT count(*) FROM patient WHERE email='$email'"
En plus tu utilises ["] au lieu de [']
Bonsoir.
Tu devrais commencer par réorganiser ton code HTML, car placer des liens et des codes javascript dans une balise paragraphe, c'est loin d'être correct.
Ensuite, tu devrais éviter d'utiliser mysql et passer au minimum à mysqli.
Tu devrais aussi penser à debugger ton script PHP, car ça ne m'étonnerait pas du tout que ton formulaire n'est à aucun moment ne serait-ce qu'un minimum traité.
Pour la simple et bonne raison par exemple, que tu fais une condition sur $_POST['inscription']
alors que tu ne définis à aucun moment un de tes input avec ce nom, il ne figure même à aucun moment dans ton code HTML.
Sans oublier qu'il ne serait pas du luxe que tu ajoutes l'attribut action dans la balise de ton formulaire.
Pour faire simple, revois le code dans son intégralité, tu sembles avoir très peu de connaissances concernant les langages HTML et PHP.