Condition ne fonctionne pas
Résolu/Fermé
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
-
Modifié par barnabe0057 le 28/12/2016 à 15:00
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 - 28 déc. 2016 à 23:49
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 - 28 déc. 2016 à 23:49
A voir également:
- Condition ne fonctionne pas
- Excel cellule couleur si condition texte - Guide
- Condition et excel - Guide
- Excel copier une cellule si condition ✓ - Forum Excel
- Nbval avec condition ✓ - Forum Excel
- Excel colorer une cellule sous condition d'une autre cellule ✓ - Forum Excel
3 réponses
NHenry
Messages postés
15186
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 janvier 2025
351
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
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
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
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
1 560
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
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
>
yg_be
Messages postés
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
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
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
1 560
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
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
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
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
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
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
1 560
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
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
>
yg_be
Messages postés
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
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
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
1 560
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
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
1 560
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
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
>
yg_be
Messages postés
23440
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
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 ?