Pb code php

Bonjour,

J'ai créé une newletter j'arrive à intégrer le mail dans ma BDD mais j'ai 2 problèmes :

- je n'arrive pas à vérifier le bon format de l'adresse mail
- je n'arrive pas à vérifier si l'adresse existe déjà dans la BDD si non alors j'intègre si oui alors je rejète

voilà mon code :

<?php

$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if(!email){
die("L'adresse email n'est pas valide, arrêt du traitement");
}

mysql_connect("localhost", "root", ""); //On remplace les information par la vraie bdd
mysql_select_db("contact_site");

switch ($_POST['inscriptiondesinscription']) {

elseif case 'inscription':
mysql_query("INSERT INTO newsletter VALUES('". $_POST['email'] ."')");
$message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email'];
break;

case 'desinscription':
mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'");
$message='Votre désinscription a bien été prise en compte';
break;

default:

}
?>

Merci pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Me revoilà:

    essayes comme ça:

    <?php
    $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
    if(!$email){ //il te manquait le $
    	echo "L'adresse email n'est pas valide";
    	exit();
    }else{
    
    	mysql_connect("localhost", "root", "") or die("Pb connexion serveur ".mysql_error()); //On remplace les information par la vraie bdd
    	mysql_select_db("contact_site") or die("Pb selection base ".mysql_error());
    
    	switch ($_POST['inscriptiondesinscription']) {
    		case 'inscription':
    		//verif si existe déja
    		$result=mysql_query("SELECT * FROM newsletter WHERE email='".$_POST['email']."'") or die("Pb req select ".mysql_error());
    		if(mysql_num_rows($result)== 1){
    			echo "L'adresse email existe d&eacute;ja";
    			exit();
    		}else{
    			$insert=mysql_query("INSERT INTO newsletter SET(email) VALUES('". $_POST['email'] ."')")or die("Pb req insert ".mysql_error());
    			if($insert) $message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email'];
    		}
    		break;
    
    		case 'desinscription':
    		
    		$oter=mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'")or die("Pb req delete ".mysql_error());
    		if($oter)$message='Votre désinscription a bien été prise en compte';
    		break;
    	}
    }
    ?>
    
    1. Tu as qq chose de bizarre là:

      switch ($_POST['inscriptiondesinscription']) {

      elseif case 'inscription':
      ......


      il faut:

      switch ($_POST['inscriptiondesinscription']) {
      
       case 'inscription':
      ......
       
      1. oups j'ai mis ma bidouille lol voilà le bon code

        <?php

        $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
        if(!email){
        die("L'adresse email n'est pas valide, arrêt du traitement");
        }

        mysql_connect("localhost", "root", ""); //On remplace les information par la vraie bdd
        mysql_select_db("contact_site");

        switch ($_POST['inscriptiondesinscription']) {

        case 'inscription':
        mysql_query("INSERT INTO newsletter VALUES('". $_POST['email'] ."')");
        $message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email'];
        break;

        case 'desinscription':
        mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'");
        $message='Votre désinscription a bien été prise en compte';
        break;

        default:

        }
        ?>
      2. @loute08Salut,

        qqs erreurs, essayes comme ça:

        $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
        if(!$email){ //il te manquait le $
        	echo "L'adresse email n'est pas valide";
        	exit();
        }else{
        
        	mysql_connect("localhost", "root", "") or die("Pb connexion serveur ".mysql_error()); //On remplace les information par la vraie bdd
        	mysql_select_db("contact_site") or die("Pb selection base ".mysql_error());
        
        	switch ($_POST['inscriptiondesinscription']) {
        		case 'inscription':
        		//verif si existe déja
        		$result=mysql_query("SELECT * FROM newsletter WHERE email='".$_POST['email']."'") or die("Pb req select ".mysql_error());
        		if(mysql_num_rows($result)>0){
        			echo "L'adresse email existe d&eacute;ja";
        			exit();
        		}else{
        			$insert=mysql_query("INSERT INTO newsletter SET(email) VALUES('". $_POST['email'] ."')")or die("Pb req insert ".mysql_error());
        			if($insert) $message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email'];
        		}
        		break;
        
        		case 'desinscription':
        		
        		$oter=mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'")or die("Pb req delete ".mysql_error());
        		if($oter)$message='Votre désinscription a bien été prise en compte';
        		break;
        	}
        }
        ?>
        
      3. @Alain_42Euh là dès que je clique sur valider ça me ressort un bout de code ...

        $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); if(!$email){ //il te manquait le $ echo "L'adresse email n'est pas valide"; exit(); }else{ mysql_connect("localhost", "root", "") or die("Pb connexion serveur ".mysql_error()); //On remplace les information par la vraie bdd mysql_select_db("contact_site") or die("Pb selection base ".mysql_error()); switch ($_POST['inscriptiondesinscription']) { case 'inscription': //verif si existe déja $result=mysql_query("SELECT * FROM newsletter WHERE email='".$_POST['email']."'") or die("Pb req select ".mysql_error()); if(mysql_num_rows($result)>0){ echo "L'adresse email existe déja"; exit(); }else{ $insert=mysql_query("INSERT INTO newsletter SET(email) VALUES('". $_POST['email'] ."')")or die("Pb req insert ".mysql_error()); if($insert) $message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email']; } break; case 'desinscription': $oter=mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'")or die("Pb req delete ".mysql_error()); if($oter)$message='Votre désinscription a bien été prise en compte'; break; } } ?>
      4. @loute08Ben oui il faut qd même mettre les <?php au début et ?> à la fin
      5. @Alain_42effectivement j'avais oublié l'ouverture <?

        je l'ai remise et j'ai la même erreur sauf que c'est ce bout qui s'affiche

        0){ echo "L'adresse email existe déja"; exit(); }else{ $insert=mysql_query("INSERT INTO newsletter SET(email) VALUES('". $_POST['email'] ."')")or die("Pb req insert ".mysql_error()); if($insert) $message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email']; } break; case 'desinscription': $oter=mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'")or die("Pb req delete ".mysql_error()); if($oter)$message='Votre désinscription a bien été prise en compte'; break; } } ?>