IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Test de vérification lors d'un envoi.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    autres
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : autres
    Secteur : Transports

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut Test de vérification lors d'un envoi.
    Bonsoir,
    Je fais un test d'envoi pour la création d'un forum, ça à l'air de fonction pour la première variable (titre), mais pas la deuxième (contenu).
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php
    session_start(); 
     
    if (empty($_POST['titre'] AND strlen(trim($_POST['titre'])) > 0 AND empty($_POST['contenu'] AND strlen(trim($_POST['contenu'])) > 0 )))
    	{
    	 header('location: billets_forum.php' );
    	}
    else
    	{
    require "#require/connet_bdd.php"; //Connexion à la base de données
     
    // Insertion du message à l'aide d'une requête préparée
    $req = $bdd->prepare('INSERT INTO billets (titre, date_creation, contenu) VALUES(?, NOW(), ?)');
    $req->execute(array($_POST['titre'], $_POST['contenu']));  
     
    // Redirection du visiteur vers la page du forum
    header('Location: forum.php');
    }
    ?>
    Je me suis inspiré de ce code que j'avais fais pour l'envoi de message dans un chat, il permettait de vérifier si le formulaire n'étais pas vide et qu'il n'y a pas de caractère invisible tel les espaces.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    session_start(); 
     
    if (empty($_POST['message'] AND strlen(trim($_POST['message'])) > 0 ))
    	{
    	 header('location: chatbox.php' );
    	}
     
    else
    	{
    	require "#require/connet_bdd.php"; //Connexion à la base de données
     
    	// Insertion du message à l'aide d'une requête préparée
    	$req = $bdd->prepare('INSERT INTO minichat (pseudo, date_post, message) VALUES(?, NOW(), ?)');
    	$req->execute(array($_SESSION['pseudo'], $_POST['message']));  
     
    	// Redirection du visiteur vers la page du chatbox
    	header('Location: chatbox.php');
    	}
    ?>
    Je pensais peut être à tort que je pouvais doubler la condition, mais hélas non.
    Votre aide serais la bienvenue, merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'opérateur "normal" pour ET en PHP c'est && pas AND.
    Et tes parenthèses sont placées n'importe comment.
    Et si tu veux tester qu'une variable n'est pas vide c'est !empty() qu'il faut pas empty()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['titre'], $_POST['contenu']) && strlen(trim($_POST['titre'])) > 0 &&  strlen(trim($_POST['contenu'])) > 0)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    autres
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : autres
    Secteur : Transports

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    Citation Envoyé par sabotage Voir le message
    L'opérateur "normal" pour ET en PHP c'est && pas AND.
    Et tes parenthèses sont placées n'importe comment.
    Et si tu veux tester qu'une variable n'est pas vide c'est !empty() qu'il faut pas empty()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['titre'], $_POST['contenu']) && strlen(trim($_POST['titre'])) > 0 &&  strlen(trim($_POST['contenu'])) > 0)
    Merci pour ta réponse, mais si je décode le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    session_start(); 
     
    if (empty($_POST['message'] AND strlen(trim($_POST['message'])) > 0 ))
    	{
    	 header('location: chatbox.php' );
    	}
     
    else
    	{
    	require "#require/connet_bdd.php"; //Connexion à la base de données
     
    	// Insertion du message à l'aide d'une requête préparée
    	$req = $bdd->prepare('INSERT INTO minichat (pseudo, date_post, message) VALUES(?, NOW(), ?)');
    	$req->execute(array($_SESSION['pseudo'], $_POST['message']));  
     
    	// Redirection du visiteur vers la page du chatbox
    	header('Location: chatbox.php');
    	}
    ?>
    Donc si "post_message" est vide et si "post_message" est inférieur à 0, renvoi sur la chatbox.php sans rien enregistré.
    Sinon "enregistre dans la BDD et une fois enregistré renvoi sur chatbox.php avec le nouveau message.
    jusqu'a là tous va bien, en ce qui concerne les parenthèses, je ne vois pas trop comment les mettre.

    Et comment je doit faire pour toutes les conditions, je pensais qu'on pouvais en mettre plusieurs.
    Merci de m'apporter votre aide.

    EDIT: j'avais pas fait attention à ta réponse, tu m'as mis comment le mettre, 1000+1 excuses

    RE EDIT,

    Après avoir testé ton code, ça ne fonctionne pas comme je veux, il enregistre quand le titre est vide, quand le contenu est vide, quand les deux sont vide, mais pas quand les deux sont champs sont rempli, alors que je voudrais
    qu'il enregistre que quand les deux champs sont rempli.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne sais pas de quel code tu parles mais le deux étaient faux de toute façon.
    Sur le deuxième aussi il manque la parenthèse fermante de empty()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (empty($_POST['message']) &&  strlen(trim($_POST['message'])) > 0)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    autres
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : autres
    Secteur : Transports

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je ne sais pas de quel code tu parles mais le deux étaient faux de toute façon.
    Sur le deuxième aussi il manque la parenthèse fermante de empty()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (empty($_POST['message']) &&  strlen(trim($_POST['message'])) > 0)
    Heu, pardonne moi, mais je vois bien deux parenthèse fermante dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (empty($_POST['message']) &&  strlen(trim($_POST['message'])) > 0))
    , un peu plus haut dans le post, je sais qu'il est tard mais quand même ^^

    en ce qui concerne le post pour le "titre" et le "contenu", je confirme que c'est du grand n'importe quoi (pour cela que je requière votre aide), le post "message" fonctionne très bien, c’était juste pour vous faire voir d'où j'ai repris le code pour m'inspirer.

    Donc pour résumer le code que vous m'avez fourni ne fonctionne pas comme je voudrais, il enregistre quand le titre est vide, quand le contenu est vide, quand les deux sont vide, mais pas quand les deux champs sont rempli, alors que je voudrais
    qu'il enregistre que quand les deux champs sont rempli.

    Merci.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le code que tu montres là c'est le mien. Dans le tiens empty est fermée à la fin de la ligne et non à la fin de sa valeur.

    concernant mon code, je viens de le tester et il donne bien le résultat attendue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $_POST['titre'] = '';
    $_POST['contenu'] = 'xxxx';
    if (isset($_POST['titre'], $_POST['contenu']) && strlen(trim($_POST['titre'])) > 0 &&  strlen(trim($_POST['contenu'])) > 0) {
       echo 'enregistre';
    }
    else {
       echo 'rien';
    }
    // donne "rien"
    Vu que tu utilisais empty au lieu de !empty est-ce que tu ne ferai pas des conditions à l'envers ? La condition strlen > 0 c'est le cas ou on enregistre.
    Le cas que je te donne c'est le cas ou on fait l'enregistrement, la redirection est dans le else.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Problème lors de l'envoie d'un mail (JavaMail)
    Par Invité dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/05/2006, 10h23
  2. [MySQL] Exécuter 2 actions lors de l'envoi d'un formulaire
    Par mathieu7497 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/03/2006, 21h16
  3. [javamail] pb lors de l'envoi d'un mail
    Par mawashee dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 08/09/2005, 16h50
  4. A respecter lors de l'envoi d'un message (Version 2)
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 0
    Dernier message: 04/01/2003, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo