Probleme d'affichage aidez moi svp

Fermé
nouracm - 22 oct. 2015 à 15:43
 nouracm - 22 oct. 2015 à 19:44
Bonjour,
Pourquoi le navigateur n'affiche pas nom et password incorrecte quant ils sont incorrectes
c'est le code:
<?php
date_default_timezone_set('Africa/Tunis');
$dt=date("Y-m-d")." ".date("h:i:sa");
$nom=$_POST['username'];
$password=$_POST['pass'];
$connexion=mysql_connect('127.0.0.1','root');
$db=mysql_select_db('sme solaire');
$test="SELECT `nom`,`prenom` FROM `fiche client` WHERE `nom` LIKE '$nom' AND `passwordclient` LIKE '$password' ";
$resultat=mysql_query($test);
while($ligne=mysql_fetch_array($resultat))
{
if(($nom <> $ligne['nom']) && ($password <> $ligne['password']))
{echo "votre nom ou password invalide";}
else { echo "Bienvenue"." ".$ligne['nom']." ".$ligne['prenom'];
$form="<form method=\"post\" action=\"detect puissance.php\">
<table><tr><td>
<tr><td><font size=\"4\">Date:</font></td>
<td><input type=\"text\" name=\"date\" style=\"border- radius:5px;padding:8px 150px;padding-left:inherit;\" value=\"$dt\"></td></tr>
<tr><td><font size=\"4\">Puissance :</font></td>
<td><input type=\"text\" style=\"border-radius:5px;padding:8px 150px;padding-left:inherit;\" name=\"puissance\" maxlength=\"9\" required></td> </tr>
<tr><td height=\"20px\"></td></tr>
<tr><td colspan=\"2\" align=\"right\" ><input type=\"submit\" class=\"hov2\" value=\"Envoyer\"></td></tr></table>
</form> ";
echo $form;}
}

?>
merci d'avance .

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
22 oct. 2015 à 16:12
Salut,

Il faut remplacer le AND par un OR dans la condition :
if(($nom <> $ligne['nom']) || ($password <> $ligne['password']))

Il suffit qu'une des deux entrées soit incorrecte pour afficher le message.

Néanmoins cette correction n'affichera toujours pas le message puisque si le nom ou le password est incorrect, la requête sql ne retournera aucun résultat et ta boucle ne sera donc jamais exécutée.
Tu dois donc vérifier que la requête te retourne bien un résultat pour savoir les données saisies sont correctes (ou utiliser une requête SELECT COUNT).

Bonne journée
0
merci beaucoup cé trés gentil j'ai déja resolu cette problème mais j'ai un autre
normalment le navigateur m'affiche $cc mais la page est vide voici le code :
<?php
$name=$_POST['nom'];
$lastname=$_POST['prenom'];
$passlog=$_POST['pass'];
$refstegclient=$_POST['refstegclient'];
$puissance=$_POST['puissance'];
$getdate=$_POST['date'];
$connexion=mysql_connect('127.0.0.1','root');
$db=mysql_select_db('sme solaire');
$requetee="SELECT `date` FROM `detect puissance` WHERE `ref steg` LIKE '$refstegclient' ";
$requetee2=mysql_query($requetee);
while($result2=mysql_fetch_array($requetee2)){
date_default_timezone_set('Africa/Tunis');
$d=date('y-m-d');
$rest = substr($d, -1);
$dd=$result2['date'];
$rest2 = substr($dd, -1);
$cc=$rest-$rest2;
echo $cc;
if($cc >> 6) {
$reqq="INSERT INTO `sme solaire`.`detect puissance` (`nom client`, `prenom client`, `ref steg`, `date`, `puissance`) VALUES ('$nameclient', '$lastnameclient', '$refstegclient', '$getdate', '$puissance');";
$reqq2=mysql_query($reqq);}
else { echo "<h3>erreur de connexion, vous devez entrez votre paramètre aprés 7 jours</h3> " ;}
}
?>
je veux que la puissance n'enregistre dans la base que chaque 7 jours
merci Pitet d'avance
0