Codage pour base de données qui ne fonctionne pas
sarah21091999
Messages postés
53
Statut
Membre
-
NHenry Messages postés 15479 Statut Modérateur -
NHenry Messages postés 15479 Statut Modérateur -
Bonjour, je ne comprends pas pourquoi mon codage ne fonctionne pas
<?php
mysql_connect("localhost", "root","root");
mysql_select_db("tourisme");
session_start();// À placer obligatoirement avant tout code html
$_SESSION['connect']=0; //initialise la variable 'connect'
if (isset($_POST['password']) AND isset($_POST['login'])) // Si les variables existent
{
$password=$_POST['password'];
$login=$_POST['login'];//On récupère les données envoyées par la méthode POST du formulaire d'identification
}
else // Les variables n'existent pas encore
{
$password="";
$login="";// On crée des variables $mot_de_passe et $login vides
}
$req = mysql_query("SELECT password FROM agent WHERE login= '$login'");
$result = mysql_fetch_array($req);
?>
<?php
if ( $result['password'] != NULL && $result['password'] == $password)
// Si le mot de passe et le login sont bons (valable pour 1 utilisateur ou plus). J'ai mis plusieurs identifiants et mots de passe.
{
$_SESSION['connect']=1; // Change la valeur de la variable connect. C'est elle qui nous permettra de savoir s'il y eu identification.
$_SESSION['login']=$login;// Permet de récupérer le login afin de personnaliser la navigation
// On affiche la page cachée.
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>FORMULAIRE</title>
<style>
h1{text-align:center;}
</style>
</head>
<body text="#29088A">
<form method="post" action="inscriptionvalidee.php">
<div style="text-align:center">
<p>
<img src="nevers.png" alt="photo nevers" width="500" height="650" hspace="16" align="left">
</p>
<font size="6">
<U><h1>FORMULAIRE</h1></U>
</font>
<font size="5">
<p align="center">
<label>Code Agent</label> :
<input type="text" name="agent" onkeyup="calcul(this)" id="code" value="" />
</p>
<p align="center">
<label>Nom Client</label> :
<input type="text" name="nom" value="" require/>
<p align="center">
<label>Prénom Client</label> :
<input type="text" name="prenom" value="" />
</p>
<p align="center">
<label>Age Client</label> :
<input type=radio name="age12" id='agem12' onclick="verifAge(this.value);" value='-12'> -12 ans
<input type=radio name="age12" id='agep12' onclick="verifAge(this.value);" value='+12'> +12 ans
</p>
</font>
</p>
<font size="5">
<p align="center">
<label>Code Voyage</label> :
<input type="text" name="voy" onkeyup="prix(this);" id="voyage" value="" />
</p>
<br>
<span style="text-align:center" id="zone_prix" >
<font size ="5">
<label>Prix</label> :
<input type="text" name="prix" onkeyup="verifPrix(this);" id="prix" value='' > € <span style='background-color:#ffff66;' id='reduc' style='display:none' >-50%</span>
</br>
<br>
<label>Prix Final </label>
<input type="text" name="prixfinal" readonly id="prixfinal" value='' /> €
</span>
</font>
</br>
</form>
<p align="center">
<br>
<input type="submit" value="Inscription" style="height:35px; background-color:#29088A; color:white" ></a>
</p>
<font size="5">
<p align="center">
<label>Valeur Commission</label> :
<input type="text" name="commission" id="vcommission" value="" />
</p>
</font>
</div>
<script type="text/javascript">
/**
// Affiche la zone réduc en fonction de l'age selectionné
*/
function verifAge(age){
var reduc = document.getElementById('reduc');
var prix = document.getElementById('prix');
reduc.style.display = age == '-12' ? 'inline' : 'none';
verifPrix(prix);
}
/*
// Fait le calcul du prix en fonction de l'age coché
*/
function verifPrix(elm){
var prix = elm;
var prixval = elm.value;
var agem12 = document.getElementById('agem12');
var agep12 = document.getElementById('agep12');
var prixfinal = document.getElementById('prixfinal');
var age = agem12.checked ? '-12' : (agep12.checked ? '+12' : '');
if(age == '-12'){
console.log('ancien prix : ' + prixval);
var prixreduc = parseFloat(prixval) * 0.5;
console.log('Nouveau prix : ' + prixreduc);
prixfinal.value = prixreduc;
}else if(age == '+12'){
prixfinal.value = prixval;
}else{
//si aucune case n'est cochée...
prixfinal.value = prixval;
}
}
function calcul(){
var code = document.getElementById('code');
var prixfinal = document.getElementById('prixfinal');
var vcommission = document.getElementById('vcommission');
var codeval = code.value;
switch(codeval){
case "JT": // si JT
vcommission.value = prixfinal.value * 0.10;
break;
case "LB": //si LB
vcommission.value = prixfinal.value * 0.08;
break;
case "MM": //si MM
vcommission.value = prixfinal.value * 0.08;
break;
case "RA": //si RA
vcommission.value = prixfinal.value * 0.10;
break;
default: // Si aucun des deux
vcommission.value = 0;
break;
}
}
function prix(){
var voyage = document.getElementById('voyage');
var prix = document.getElementById('prix');
var voyageval = voyage.value;
switch(voyageval){
case "AFR01":
prix.value = 2340;
break;
case "ECO01":
prix.value = 550;
break;
default: // Si aucun des deux
prix.value = 0;
break;
}
}
</script>
</body>
</html>
<?php
}
else // le mot de passe n'est pas bon
{
// On affiche la zone de texte pour rentrer le mot de passe.
?>
<html>
<head>
<title>Création d'un formulaire de connexion en HTML</title>
</head>
<body text="#29088A">
<font size="6">
<fieldset style="background-color:#E6E6E6; height:450; width:500; margin:auto;">
<legend><h2><p align="center"><span style="border:1px solid black; padding-left:4px; padding-right:4px" >Connexion au site</span></h2></legend>
</font>
</p>
<form action="connexionbd" method="post">
<font size="4">
<p align="center"><label for="login"><strong>Nom d'utilisateur</strong></label>
<td><input type="text" name="login" id="login"/></td>
</p>
<p align="center"><label for="pass"><strong>Mot de passe</strong></label>
<td><input type="password" name="passe" id="password"/></td>
</p>
</font>
<font size="5">
<p align="center">
<br>
<input type="submit" value="Se connecter" style="height:45px; background-color:#29088A; color:white" ></a>
</p>
</form>
<form action="formulairenouveaucompte.php" method="post">
<p align="center">
<input type="submit" value="Pre-inscription client" style="height:45px; background-color:#29088A; color:white" ></a>
</p>
</font>
</fieldset>
</form>
</body>
</html>
<?php
} // Fin du else
// Fin du code
?>
A voir également:
- Codage pour base de données qui ne fonctionne pas
- Fuite données maif - Guide
- Codage ascii - Guide
- Base de registre - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Supprimer les données de navigation - Guide
2 réponses
1 - L'extension mysql est OBSOLETE
Tu dois passer à PDO ou mysqli
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
2 -Tu dois afficher les erreurs PHP et écrire correctement ton code:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
3- Ton code php se trouvant dans la même page que ton formulaire.... tu dois mettre la balise action de ton form à vide
A modifier en
4 - Dans ton second html.. tu as oublié le DOCTYPE ainsi que le charset utf8
5 - Plutôt que de mettre deux HTML dans un seul fichier .... place les dans des fichiers différents et fais plutôt des redirection vers les fichiers
Tu dois passer à PDO ou mysqli
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
2 -Tu dois afficher les erreurs PHP et écrire correctement ton code:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
3- Ton code php se trouvant dans la même page que ton formulaire.... tu dois mettre la balise action de ton form à vide
<form action="connexionbd" method="post">
A modifier en
<form action="" method="post">
4 - Dans ton second html.. tu as oublié le DOCTYPE ainsi que le charset utf8
5 - Plutôt que de mettre deux HTML dans un seul fichier .... place les dans des fichiers différents et fais plutôt des redirection vers les fichiers
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); mysql_connect("localhost", "root","root"); mysql_select_db("tourisme"); session_start();// À placer obligatoirement avant tout code html $_SESSION['connect']=0; //initialise la variable 'connect' if (isset($_POST['password']) AND isset($_POST['login'])) // Si les variables existent { $password=$_POST['password']; $login=$_POST['login'];//On récupère les données envoyées par la méthode POST du formulaire d'identification } else // Les variables n'existent pas encore { $password=""; $login="";// On crée des variables $mot_de_passe et $login vides } $req = mysql_query("SELECT password FROM agent WHERE login= '$login'"); $result = mysql_fetch_array($req); ?> <?php if ( $result['password'] != NULL && $result['password'] == $password) // Si le mot de passe et le login sont bons (valable pour 1 utilisateur ou plus). J'ai mis plusieurs identifiants et mots de passe. { $_SESSION['connect']=1; // Change la valeur de la variable connect. C'est elle qui nous permettra de savoir s'il y eu identification. $_SESSION['login']=$login;// Permet de récupérer le login afin de personnaliser la navigation // On affiche la page cachée. ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>FORMULAIRE</title> <style> h1{text-align:center;} </style> </head> <body text="#29088A"> <form method="post" action="inscriptionvalidee.php"> <div style="text-align:center"> <p> <img src="nevers.png" alt="photo nevers" width="500" height="650" hspace="16" align="left"> </p> <font size="6"> <U><h1>FORMULAIRE</h1></U> </font> <font size="5"> <p align="center"> <label>Code Agent</label> : <input type="text" name="agent" onkeyup="calcul(this)" id="code" value="" /> </p> <p align="center"> <label>Nom Client</label> : <input type="text" name="nom" value="" require/> <p align="center"> <label>Prénom Client</label> : <input type="text" name="prenom" value="" /> </p> <p align="center"> <label>Age Client</label> : <input type=radio name="age12" id='agem12' onclick="verifAge(this.value);" value='-12'> -12 ans <input type=radio name="age12" id='agep12' onclick="verifAge(this.value);" value='+12'> +12 ans </p> </font> </p> <font size="5"> <p align="center"> <label>Code Voyage</label> : <input type="text" name="voy" onkeyup="prix(this);" id="voyage" value="" /> </p> <br> <span style="text-align:center" id="zone_prix" > <font size ="5"> <label>Prix</label> : <input type="text" name="prix" onkeyup="verifPrix(this);" id="prix" value='' > € <span style='background-color:#ffff66;' id='reduc' style='display:none' >-50%</span> </br> <br> <label>Prix Final </label> <input type="text" name="prixfinal" readonly id="prixfinal" value='' /> € </span> </font> </br> </form> <p align="center"> <br> <input type="submit" value="Inscription" style="height:35px; background-color:#29088A; color:white" ></a> </p> <font size="5"> <p align="center"> <label>Valeur Commission</label> : <input type="text" name="commission" id="vcommission" value="" /> </p> </font> </div> <script type="text/javascript"> /** // Affiche la zone réduc en fonction de l'age selectionné */ function verifAge(age){ var reduc = document.getElementById('reduc'); var prix = document.getElementById('prix'); reduc.style.display = age == '-12' ? 'inline' : 'none'; verifPrix(prix); } /* // Fait le calcul du prix en fonction de l'age coché */ function verifPrix(elm){ var prix = elm; var prixval = elm.value; var agem12 = document.getElementById('agem12'); var agep12 = document.getElementById('agep12'); var prixfinal = document.getElementById('prixfinal'); var age = agem12.checked ? '-12' : (agep12.checked ? '+12' : ''); if(age == '-12'){ console.log('ancien prix : ' + prixval); var prixreduc = parseFloat(prixval) * 0.5; console.log('Nouveau prix : ' + prixreduc); prixfinal.value = prixreduc; }else if(age == '+12'){ prixfinal.value = prixval; }else{ //si aucune case n'est cochée... prixfinal.value = prixval; } } function calcul(){ var code = document.getElementById('code'); var prixfinal = document.getElementById('prixfinal'); var vcommission = document.getElementById('vcommission'); var codeval = code.value; switch(codeval){ case "JT": // si JT vcommission.value = prixfinal.value * 0.10; break; case "LB": //si LB vcommission.value = prixfinal.value * 0.08; break; case "MM": //si MM vcommission.value = prixfinal.value * 0.08; break; case "RA": //si RA vcommission.value = prixfinal.value * 0.10; break; default: // Si aucun des deux vcommission.value = 0; break; } } function prix(){ var voyage = document.getElementById('voyage'); var prix = document.getElementById('prix'); var voyageval = voyage.value; switch(voyageval){ case "AFR01": prix.value = 2340; break; case "ECO01": prix.value = 550; break; default: // Si aucun des deux prix.value = 0; break; } } </script> </body> </html> <?php } else // le mot de passe n'est pas bon { // On affiche la zone de texte pour rentrer le mot de passe. ?> <!DOCTYPE html> <html lang="fr"> <meta charset="UTF-8"> <head> <title>Création d'un formulaire de connexion en HTML</title> </head> <body text="#29088A"> <font size="6"> <fieldset style="background-color:#E6E6E6; height:450; width:500; margin:auto;"> <legend><h2><p align="center"><span style="border:1px solid black; padding-left:4px; padding-right:4px" >Connexion au site</span></h2></legend> </font> </p> <form action="" method="post"> <font size="4"> <p align="center"><label for="login"><strong>Nom d'utilisateur</strong></label> <td><input type="text" name="login" id="login"/></td> </p> <p align="center"><label for="pass"><strong>Mot de passe</strong></label> <td><input type="password" name="passe" id="password"/></td> </p> </font> <font size="5"> <p align="center"> <br> <input type="submit" value="Se connecter" style="height:45px; background-color:#29088A; color:white" ></a> </p> </form> <form action="formulairenouveaucompte.php" method="post"> <p align="center"> <input type="submit" value="Pre-inscription client" style="height:45px; background-color:#29088A; color:white" ></a> </p> </font> </fieldset> </form> </body> </html> <?php } // Fin du else // Fin du code ?>et l'extension PHP qui permet de connecter ton code php à ta bdd
L'extension mysql sont les lignes de commande de type : mysql_*
comme :
Tu ne dois modifier que les lignes de code en les remplaçant par du PDO ou du mysqli
(il ne suffit pas d'ajouter un "i" ... regarde bien la syntaxe à utiliser pour chaque instruction. )
Par exemple, pour la connexion à la bdd:
$con = mysqli_connect("localhost","root","root","tourisme"); // Check connection error if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit(); } // faire une requête // Perform a query, check for error $sql = "SELECT password FROM agent WHERE login= '$login' ": $result= mysqli_query($con, $sql); if (!$result) { echo("Erreur dans la requete : " . mysqli_error($con)); } // on récupère la première ligne retournée par la requête $row=mysqli_fetch_array($result,MYSQLI_ASSOC); $password = $row['password']; mysqli_close($con); //--- le reste de ton code -- //