If php

Résolu
rolly41 Messages postés 281 Statut Membre -  
rolly41 Messages postés 281 Statut Membre -
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. dariumis Messages postés 583 Statut Membre 63
     
    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. ktm620enduro Messages postés 377 Statut Membre 38
       
      if (stripos($mail, '@'))

      fonctionne aussi...
      0
    2. le père
       
      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. le père
     
    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
  3. rolly41 Messages postés 281 Statut Membre 1
     
    Merci pour vos réponses et pour votre aide à tous.
    0
  4. ktm620enduro Messages postés 377 Statut Membre 38
     
    <?php
    
    $pos = strrpos($mystring, "b");
    if ($pos === false) { 
    echo 'pas trouvé';}
    else
    echo 'trouvé';
    
    ?>

    -1
    1. le père
       
      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