Formulaire php : page blanche apres validation

Résolu
Fradat -  
 Fradat -
Bonjour à tous,

Je poste ce topic car en utilisant un formulaire php pour s'inscrire à ma newsletter, lorsque les visiteurs entrent leur adresse mail et cliquent sur s'inscrire, leur adresse mail est bien enregistrée dans un fichier texte sur mon serveur (et envoyé par courriel vers une adresse mail créée pour), mais cela les renvoie vers une page blanche (url : monsite/subscribe.php).

Comment puis-je faire pour que lorsqu'ils cliquent sur s'inscrire, le fichier subscrire.php ne s'ouvre pas ?

Merci d'avance pour vos réponses =)

4 réponses

  1. animostab Messages postés 3003 Date d'inscription   Statut Membre Dernière intervention   738
     
    Salut
    le fichier subscrire.php c'est sans doute le fichier de traitement du formulaire donc c'est obligé de l'ouvrir
    dans ce fichier tu peux aussi y mettre du contenu html
    après tu ne donne aucune indication donc impossible de t'aider plus

    Un petit merci vaut mieux qu'une grande ignorance !
    Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
    0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Tu peux mettre le code de traitement php directement dans la même page que ton formulaire.
    Il suffit alors de remplacer l'attribut action de ton formulaire (qui doit surement, actuellement, contenir : subscrire.php ) par :
     action = ""


    Le plus simple serait que tu nous montres ton code actuel.

    NB: **** Attention ****
    Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    .

    Cordialement,
    Jordane
    0
  3. Fradat
     
    Merci pour vos réponses, voici le code actuel du fichier php :

    <?php
    
    /**
    
    
    * Subscription Form Configuration for PHP5 
    * * You have three options: 
    * 1) Save subscriber email to a txt file 
    * 2) Send subscriber email to your email account 
    * 3) Save subscriber email to database (MySQL)
    
     * * Usage: Set "TRUE" or "FALSE" to option you like to enable or disable 
    * Note: You can choose more than one option if you like! 
    * */// Save subscriber email to a txt file, set TRUE or FALSE$saveTxt   =TRUE;
    // Send subscriber email to your email account, set TRUE or FALSE$sendEmail = TRUE;// Save subscriber email to database (MySQL), set TRUE or FALSE$saveMySQL = FALSE;/********************* Note: DON'T forget to CONFIG your options bellow  *********************/if(!empty($_POST)){  // Input data from subscription form $email = trim($_POST['email']); if (get_magic_quotes_gpc()){  $email = stripslashes($email); }  // Email Validation $regexp = "/^[_a-zA-Z0-9-]+([\.+][_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,6})$/"; if (preg_match($regexp, $email)){        // Continue with options:    /** SaveTxt starts **/  if($saveTxt){      $file      = "mail.txt";  // CONFIG: Enter a filename for your txt file HERE   $delimiter = "\r\n";        // CONFIG: New line between emails OR use anything you like, as example ", "     if(file_exists($file)){    // Append if the file already exists    file_put_contents($file,$email.$delimiter,FILE_APPEND);   }else{    // Otherwise write a new file    file_put_contents($file,$email.$delimiter);   }  }  /** SaveTxt stops **/        /** SendEmail starts **/ 
     if($sendEmail){     
     $to      = "***@***";   
      // CONFIG: Enter your email address HERE  
     $subject = "Newsletter";  
    // CONFIG: Enter your Subject     
     $body  = "From Subscription Form: ".$email."\r\n";   $body .= "\r\n";   $body .= "-----------------------------------\r\n";  
     $body .= "IP Address: $_SERVER[REMOTE_ADDR]\r\n";  
     $body .= "Web Browser: $_SERVER[HTTP_USER_AGENT]\r\n";  
     $body .= "Date: ".date('Y-m-d H:i:s')."\r\n";      
    
    
    $headers  = 'MIME-Version: 1.0'."\r\n";   
    $headers .= 'Content-type: text/plain; charset=utf-8'."\r\n";   
    $headers .= "From:".$email."\r\n";      
    
    mail($to,$subject,$body,$headers);  
    }  
    
    /** SendEmail stops **/        
    /** SaveMySQL starts **/ 
     if($saveMySQL){     
     $server   = 'localhost';  
     // CONFIG: Usually it's by default "localhost", don't change it unless you know it   $username = '';        
    // CONFIG: Enter your MySQL username   $password = '';           
     // CONFIG: Enter your MySQL password   $database = '';  
    // CONFIG: Enter your database name *(you have to create it with phpMyAdmin)   $table    = '';    
     // CONFIG: Enter your table name *(your table will create for you if not exist)     
    
     // Connect to database   
    $db = new mysqli($server,$username,$password,$database);   
    
    if($db->connect_errno > 0){       
    die('Unable to connect to database');   
    }      
    
    // Create the table if not exist  
     $query =   "CREATE TABLE IF NOT EXISTS ".$table." (       id INT NOT NULL AUTO_INCREMENT,       email VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,       PRIMARY KEY(id)   )";   
    
    $result = $db->query($query) or die ('Unable to create table to database');    
    
      // Save the email in database   $email  = $db->real_escape_string($email);  
     $query  = "INSERT into ".$table." (id, email) VALUES ('', '".$email."')";   
    $result = $db->query($query) or die ('Unable to insert to database');      
    // Close the database  
     mysqli_close($db); 
     }  
    
    /** SaveMySQL stops **/   
     // Finish  
    exit;   
    }else{   
     // It's n?t a valid email address  
    echo json_encode(array('error' => true));    
    // Finish  
    exit; 
    }
    }?>
    


    et voici le code html précédent le bouton "s'inscrire" :
     <form method="post" action="subscribe.php">


    EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    Merci d'y penser dans tes prochains messages.
    .
    .
    0
  4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Il te suffit donc de faire un INCLUDE de ton fichier subscribe.php dans la page contenant ton formulaire
    puis de modifier l'action par ""

    Ce qui donnerait un truc du genre :
    <?php
     require_once "subscribe.php";
    ?>
     <form method="post" action="">
    ?>
    


    Cordialement,
    Jordane
    0
    1. Fradat
       
      Merci beaucoup, cela fonctionne !

      Bonne journée, et encore merci =)
      0