If php

Résolu
Bonjour,

j'ai créer un site internet mais je ne parviens pas à testé une valeur remplie par l'utilisateur.

Ce que je souhaite tester :

Si la valeur $mail contient @, afficher "Positif". Si pas, afficher "Négatif".

Code php utilisé :

if (stripos($mail, '@') !== FALSE)  
{echo 'Positif'}  

else {echo 'Négatif<br />'}


Pourriez-vous m'aider à m'orienter vers un tutoriel ou autre qui me permettrait de résoudre ce problème?

Merci d'avance pour l'aide que vous saurez m'apporter.

4 réponses

  1. Salut, différent s'écrit comme ça:

    if (stripos($mail, '@') != FALSE)  


    Sinon pour tester un adresse mail, tu peux faire comme ça:

    if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {
        echo 'Positif';
    }  else {
         echo 'Négatif<br />';
    }
    
    0
    1. if (stripos($mail, '@'))

      fonctionne aussi...
      0
    2. NON !
      ni if (stripos($mail, '@') != FALSE) , ni if (stripos($mail, '@')) ne sont valables pour détecter s'il y a un @ dans une chaîne.
      Le test avec !== FALSE écrit par rolly41 est le seul valable car stripos peut rendre 0 et que 0 est considéré comme false par PHP dans les comparaisons simples.
      Inutile de 'corriger' ce qui était exact en proposant une erreur à la place.
      0
  2. Bonjour

    Tu as oublié les ; à la fin des instructions echo 'Positif' et echo 'Négatif<br />'.

    Le mieux est de suivre le conseil de dariumis et d'utiliser filter_var($mail, FILTER_VALIDATE_EMAIL). Par contre, ne suis pas sa remarque sur !=, c'est bien !== qu'il faut absolument utiliser avec stripos.
    0
    1. Merci pour vos réponses et pour votre aide à tous.
      0
      1. <?php
        
        $pos = strrpos($mystring, "b");
        if ($pos === false) { 
        echo 'pas trouvé';}
        else
        echo 'trouvé';
        
        ?>

        -1
        1. Quel intérêt ?
          Utiliser strrpos au lieu de stripos ?
          Chercher 'b' au lieu de '@'?
          Utiliser une variable intermédiaire au lieu d'appeler la fonction de recherche directement dans le if ?
          Qu'est-ce que tout ça apporte à rolly41, surtout sans aucun commentaire ?

          Sa seule erreur était l'absence de point virgules, mais il connaît cette erreur depuis 11h48 et il avait même eu une solution plus efficace une heure plus tôt !
          0