Formulaire php : page blanche apres validation

Résolu/Fermé
Fradat - 14 juil. 2015 à 16:03
 Fradat - 14 juil. 2015 à 18:53
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

animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
Modifié par animostab le 14/07/2015 à 16:18
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
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 14/07/2015 à 16:42
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
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
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 14/07/2015 à 18:01
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
Merci beaucoup, cela fonctionne !

Bonne journée, et encore merci =)
0