8764 sujets

Développement web côté serveur, CMS

Bonjour,
depuis peu, mon formulaire de contact affiche un message d'erreur après avoir cliqué sur "envoi".
IONOS m'a parlé il y a quelques semaines d'un "nouveau" PHP. Que dois-je faire ? (je ne connais pas le PHP).
Merci énormement pour votre aide.
P. upload/1729692441-48192-capturedaeacran2024-10-23aa08.png
Salut salut, on manque cruellement de contexte pour pouvoir t'aider.


IONOS a probablement mis à jour la version de PHP sur ton serveur. Va dans ton panneau de contrôle IONOS et cherche la section qui indique la version PHP active (souvent sous "Sites Web" ou "PHP settings"). Note bien la version, car ça peut être utile pour la suite.

Pour voir ce qui ne va pas exactement, tu peux activer l’affichage des erreurs sur ta page de formulaire. Ajoute ces lignes au début du fichier PHP qui gère ton formulaire :
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


Si le problème vient d’une incompatibilité avec la nouvelle version de PHP (comme PHP 8.x), il peut y avoir des fonctions obsolètes ou des changements dans la façon dont PHP traite certaines opérations. Si tu me montres ton code, on pourra te guider pour le mettre à jour.
Salut Jencal !
Rapide et sympa Smiley cligne
Voici le code
<?php
// ---------------------------------
// ENVOI du FORMULAIRE - ajax
// ---------------------------------
if( isset($_POST['first_name'], $_POST['last_name'], $_POST['email'], $_POST['comments']) )
{
	// -----------------
	// EDIT THE 2 LINES BELOW AS REQUIRED
	$email_to 			= "dm15517@gmail.com";		// receiver email
	$email_subject 		= "New Message Received";
	// -----------------
	// fonctions utiles
	if( !function_exists('show_msg_error') )
	{
		function show_msg_error($error)
		{
			// your error code can go here
			echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:red;border:1px solid red;border-radius:3px;\">";
			echo "<p>Sorry, but there were error(s) found:</p>";
			echo "<p>".$error."</p>";
			echo "<p>Please correct them and try again</p>";
			echo "</div>";
			exit;
		}
	}
	// ---------
	if( !function_exists('clean_string') )
	{
		function clean_string($string)
		{
			$bad = array("content-type","bcc:","to:","cc:","href");
			return str_replace($bad,"",$string);
		}
	}
	// -----------------
	// Récupération des champs du formulaire 
	$first_name			= ( !empty($_POST['first_name']) ) ? 	$_POST['first_name'] 	: ''; 	// required	
	$last_name			= ( !empty($_POST['last_name']) ) ? 	$_POST['last_name'] 	: ''; 	// required  
	$email 				= ( !empty($_POST['email']) ) ? 		$_POST['email'] 		: ''; 	// required	
	$comments			= ( !empty($_POST['comments']) ) ? 		$_POST['comments'] 		: ''; 	// required	
	// -----------------
	// Gestion des erreurs
	$error_message 		= '';
	// On vérifie que tous les champs obligatoires sont remplis
	// ---------
	if( empty($first_name) )
	{
		$error_message .= 'Your First Name is mandatory<br />';
	} 
	// ---------
	if( empty($last_name) )
	{
		$error_message .= 'Your Last Name is mandatory<br />';
	} 
	// ---------
	if( empty($email) )
	{
		$error_message .= 'Your Email address is mandatory<br />';
	} 
	elseif( !empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL) )
	{
		$error_message .= 'A valid Email address is mandatory<br />';
	}
	// ---------
	if( empty($comments) )
	{
		$error_message .= 'A Question or Comment is mandatory<br />';
	} 
	// -----------------
	// ERREUR ?
	if( !empty($error_message) )
	{
		show_msg_error($error_message);
	} 
	// -----------------
	// PAS d erreur : envoi par mail
	else {
		$email_from = $email;  
 
		$email_message = "Form details below.\n\n";	 
		$email_message .= "First Name: ".clean_string($first_name)."\n";
		$email_message .= "Last Name: ".clean_string($last_name)."\n";
		$email_message .= "Email: ".clean_string($email_from)."\n";	
		$email_message .= "Comments: ".clean_string($comments)."\n";
 
		// create email headers
		$headers = 'From: '.$email_from."\r\n".
		'Reply-To: '.$email_from."\r\n" .
		'X-Mailer: PHP/' . phpversion();
		if( mail($email_to, $email_subject, $email_message, $headers) )
		{
			echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:green;border:1px solid green;border-radius:3px;\">";
			echo "<p><b>Thank you. Your message has been correctly sent.</b></p>";
			echo "</div>";
			exit;
		} else {
			echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:red;border:1px solid red;border-radius:3px;\">";
			echo "<p>An error occured during sending.</p>";
			echo "<p>Please try again, or send it to: ".$email_to."</p>";
			echo "</div>";
			exit;
		}
	}
	// -----------------
}
// ---------------------------------

Je n'y comprends rien, désolé Smiley decu
Merci