Condition ne fonctionne pas
Résolu/Fermé
barnabe0057
Messages postés
14247
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mars 2023
-
Modifié par barnabe0057 le 28/12/2016 à 15:00
barnabe0057 Messages postés 14247 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 17 mars 2023 - 28 déc. 2016 à 23:49
barnabe0057 Messages postés 14247 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 17 mars 2023 - 28 déc. 2016 à 23:49
A voir également:
- Condition ne fonctionne pas
- Excel condition couleur - Guide
- Excel colorer une cellule sous condition d'une autre cellule ✓ - Forum Excel
- Bloquer saisie cellule excel sous condition ✓ - Forum Excel
- Recherchev avec condition si ✓ - Forum Excel
- Excel remplir cellule si condition - Forum Excel
3 réponses
NHenry
Messages postés
15047
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 mars 2023
331
Modifié par NHenry le 28/12/2016 à 15:06
Modifié par NHenry le 28/12/2016 à 15:06
1) Pour filtrer une requête, regarde la clause SQL "WHERE "
2)
Comment veux-tu qu'un tableau soit égal à une chaine de caractères ?
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
2)
$courriel = "contact@domaine.tld"; echo $donnees['username'] if ($courriel == $donnees)
Comment veux-tu qu'un tableau soit égal à une chaine de caractères ?
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
barnabe0057
Messages postés
14247
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mars 2023
4 867
Modifié par barnabe0057 le 28/12/2016 à 20:07
Modifié par barnabe0057 le 28/12/2016 à 20:07
Comment faire pour comparer deux chaînes de caractères ?
J'ai essayé avec strcmp ou avec in_array mais ça ne fonctionne pas.
J'ai essayé avec strcmp ou avec in_array mais ça ne fonctionne pas.
<?php
$courriel = $_POST['courriel'];
try
{
$bdd = new PDO('mysql:dbname=postfix;host=localhost;charset=utf8', 'root', 'password', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Connection failed : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT username FROM mailbox');
while ($donnees = $reponse->fetch())
{
if (strcmp($courriel, $donnees) == 0);
{
echo 'adresse indisponible !!! <br />';
break;
}
}
$reponse->closeCursor();
?>
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
28 déc. 2016 à 21:30
28 déc. 2016 à 21:30
Et ainsi?
<?php
$courriel = $_POST['courriel'];
try
{
$bdd = new PDO('mysql:dbname=postfix;host=localhost;charset=utf8', 'root', 'password', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Connection failed : '.$e->getMessage());
}
$reponse = $bdd->query("SELECT count(*) as nb FROM mailbox WHERE username = '$courriel'");
echo $reponse;
$donnees = $reponse->fetch());
$nb= $donnees['nb'];
echo $nb;
if $nb > 0 {
echo 'adresse indisponible !!! <br />';
break;
}
$reponse->closeCursor();
?>
barnabe0057
Messages postés
14247
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mars 2023
4 867
>
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
28 déc. 2016 à 21:51
28 déc. 2016 à 21:51
Merci pour ta réponse, pas moyen de savoir si ça marche, rien ne s'affiche, même pas les variables.
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
28 déc. 2016 à 22:13
28 déc. 2016 à 22:13
Et en ajoutant ceci avant le try?
<?php
$courriel = $_POST['courriel'];
echo "<br>_post: ";
var_dump ($_POST);
try
{
$bdd = new PDO('mysql:dbname=postfix;host=localhost;charset=utf8', 'root', 'password', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Connection failed : '.$e->getMessage());
}
$sql="SELECT count(*) as nb FROM mailbox WHERE username = '$courriel'";
echo "<br>sql :".$sql;
$reponse = $bdd->query($sql);
$donnees = $reponse->fetch());
$nb= $donnees['nb'];
echo "<br>nb :"$nb;
if $nb > 0 {
echo 'adresse indisponible !!! <br />';
break;
}
$reponse->closeCursor();
?>
barnabe0057
Messages postés
14247
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mars 2023
4 867
28 déc. 2016 à 22:20
28 déc. 2016 à 22:20
Ca ne change rien, j'ai une page blanche.
barnabe0057
Messages postés
14247
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mars 2023
4 867
Modifié par barnabe0057 le 28/12/2016 à 22:12
Modifié par barnabe0057 le 28/12/2016 à 22:12
Je récapitule, voilà ce qui marche pour l'instant :
Ce que je trouve étrange, c'est que je peux afficher les champs de la base mais je ne peux pas les comparer à une variable.
<?php
$courriel = $_POST['courriel'];
try
{
$bdd = new PDO('mysql:dbname=postfix;host=localhost;charset=utf8', 'root', 'password', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Connection failed : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT username FROM mailbox');
while ($donnees = $reponse->fetch())
{
echo $donnees['username'] . '<br />';
//echo 'adresse indisponible !!! <br />';
//break;
}
$reponse->closeCursor();
?>
Ce que je trouve étrange, c'est que je peux afficher les champs de la base mais je ne peux pas les comparer à une variable.
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
28 déc. 2016 à 22:30
28 déc. 2016 à 22:30
Et en ajoutant
echo "<br>_post: "; var_dump ($_POST);?
barnabe0057
Messages postés
14247
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mars 2023
4 867
>
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
Modifié par barnabe0057 le 28/12/2016 à 22:42
Modifié par barnabe0057 le 28/12/2016 à 22:42
Ca m'affiche ça :
Un petit charabia avec ce que j'ai tapé dans le formulaire ("hvjjcvc"), suivi de mes 4 comptes de messagerie en gras
_post: array(1) { ["courriel"]=> string(7) "hvjjcvc" } admin@domaine.tld
contact@domaine.tld
gravedigger@domaine.tld
mattermost@domaine.tld
Un petit charabia avec ce que j'ai tapé dans le formulaire ("hvjjcvc"), suivi de mes 4 comptes de messagerie en gras
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
28 déc. 2016 à 23:30
28 déc. 2016 à 23:30
Et ainsi?
<?php
$courriel = $_POST['courriel'];
echo "<br>_post: ";
var_dump ($_POST);
try
{
$bdd = new PDO('mysql:dbname=postfix;host=localhost;charset=utf8', 'root', 'password', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Connection failed : '.$e->getMessage());
}
$sql='SELECT count(*) as nb FROM mailbox WHERE username = "'.$courriel.'"';
echo "<br>sql :".$sql;
$reponse = $bdd->query($sql);
$donnees = $reponse->fetch());
$nb= $donnees['nb'];
echo "<br>nb :"$nb;
if $nb > 0 {
echo 'adresse indisponible !!! <br />';
break;
}
$reponse->closeCursor();
?>
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
28 déc. 2016 à 23:34
28 déc. 2016 à 23:34
Ou bien:
<?php
$courriel = $_POST['courriel'];
try
{
$bdd = new PDO('mysql:dbname=postfix;host=localhost;charset=utf8', 'root', 'password', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Connection failed : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT username FROM mailbox');
while ($donnees = $reponse->fetch())
{
echo $donnees['username'] . '<br />';
if $donnees['username'] == $courriel
{
echo 'adresse indisponible !!! <br />';
break;
}
}
$reponse->closeCursor();
?>
barnabe0057
Messages postés
14247
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mars 2023
4 867
>
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
28 déc. 2016 à 23:49
28 déc. 2016 à 23:49
Celui-là fonctionne ! Mais j'ai dû rajouter des parenthèses au if.
Ouf, je vais pouvoir passer à la suite.
Un grand merci pour votre patience à tous les deux, à très vite je pense !
Ouf, je vais pouvoir passer à la suite.
Un grand merci pour votre patience à tous les deux, à très vite je pense !
28 déc. 2016 à 15:56
J'essaie de créer un formulaire qui permettra à quiconque de créer un compte sur mon serveur de messagerie, j'ai une première page avec le formulaire qui envoie l'adresse courriel désirée à cette page. Cette page vérifie dans la base de données Postfix que le courriel ne soit pas déjà utilisé.
28 déc. 2016 à 15:57
28 déc. 2016 à 16:23
Après utiliser une requête paramétrée t'évitera d'avoir un risque d'injection SQL.
Modifié par barnabe0057 le 28/12/2016 à 17:02
28 déc. 2016 à 18:38
Comment l'as-tu implémenté ?
As-tu une erreur ?
As-tu essayé la requête dans PHPMyAdmin ?