Pb code php

loute08 Messages postés 230 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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. nico3009 Messages postés 103 Statut Membre 1
     
    Quel est ton message d'erreur?
    -1
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    Tu as qq chose de bizarre là:

    switch ($_POST['inscriptiondesinscription']) {

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


    il faut:

    switch ($_POST['inscriptiondesinscription']) {
    
     case 'inscription':
    ......
     
    -1
    1. loute08 Messages postés 230 Statut Membre 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:

      }
      ?>
      -1
    2. Alain_42 Messages postés 5413 Statut Membre 904 > loute08 Messages postés 230 Statut Membre
       
      Salut,

      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;
      	}
      }
      ?>
      
      -1
    3. loute08 Messages postés 230 Statut Membre 1 > Alain_42 Messages postés 5413 Statut Membre
       
      Euh 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; } } ?>
      -1
    4. Alain_42 Messages postés 5413 Statut Membre 904 > loute08 Messages postés 230 Statut Membre
       
      Ben oui il faut qd même mettre les <?php au début et ?> à la fin
      -1
    5. loute08 Messages postés 230 Statut Membre 1 > Alain_42 Messages postés 5413 Statut Membre
       
      effectivement 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; } } ?>
      -1
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    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