problème php

Répondre
Partager Rechercher
La page blanche indique qu'il n'y a probablement pas de connexion vers ta base de données.

Mais je pense qu'il faut tout d'abord reprendre par le début.

As-tu créé une base de données, avec une table "formulaire" (ou n'importe quel autre nom) ?
Tu peux par exemple créer les champs à l'intérieur de celle-ci :

Id_formulaire (Clé primaire auto incrémentée: pour qu'un numéro ID soit assigné automatiquement)
Date
Nom
Mail
Texte

Ensuite, dans ton fichier .php, tu vas devoir faire la connexion vers ta base de données.
Généralement tu tapes ça comme ça:

Code:
<?php
$bdd = new PDO('mysql:host=sql.hebergeur.com;dbname=nom de ta base', 'login', 'mot de passe');
?>
Pour la ligne de code en question (relative au formulaire):

Code:
<?php
$bdd = new PDO('mysql:host=sql.hebergeur.com;dbname=nom de ta base', 'login', 'mot de passe');

if(empty($_POST['nom'))
{
   echo "champ à remplir";
}
else
{
  echo "Enregistrement effectué";
}


?>
Lien pratique que je t'invite à aller voir

Edit: pour la page blanche, c'est aussi peut être dû au fait que tu n'as pas de redirection dans ton formulaire. Du coup l'envoi du formulaire se fait dans les choux et ne te redirige pas vers l'accueil, par exemple.
Ok d'accord, merci pour les explications, j'essaierai de faire ça, après avoir réussir mon premier objectif qui est recevoir tout ça sur un mail.

Ce que je suis en train de faire actuellement, mais lorsque que je valide le formulaire, je ne reçois pas de mail voici le code dans mon cible.php
Code PHP:

<?php if(isset($_POST) && isset($_POST['Adresse']) && isset($_POST['Courriel']) && isset($_POST['Candidat'])){
    if(!empty(
$_POST['Candidat']) && !empty($_POST['email']) && !empty($_POST['Adresse'])){
        
$destinataire "xxx";
        
$sujet "Demande de contact";
        
$message "Nom : ".$_POST['nom']."\r\n";
        
$message "Adresse email : ".$_POST['email']."\r\n";
        
$message "Message : ".$_POST['message']."\r\n";
        
$entete 'From: '.$_POST['email']."\r\n".
            
'Reply-To: '.$_POST['email']."\r\n".
        
'X-Mailer: PHP/'.phpversion();
        if (
mail($destinataire,$sujet,$message,$entete)){
            echo 
'Message envoyé';
        } else {
             echo 
"Une erreur est survenue lors de l'envoi du formulaire par email";
        }
    }
}
?>
Je ne reçois même pas les "echo",

Si vous pouviez m'indiquer, merci

Edit: je suis toujours sur wampserver, y'a t-il des choses à faire, même dans mes deux fichiers ? C'est tout nouveau pour moi ^^

Dernière modification par sourigsd ; 23/07/2014 à 15h49.
Hmmm je veux pas dire de bêtise mais je pense qu'en local tu n'as pas de serveur mail installé par défaut sur wamp, va falloir chercher comment en installer un.

Tu peux peut être essayer ça.
J'ai essayé, mais rien. Dès que je valide mon formulaire, j'ai ma cible qui s'ouvre qui me dit merci et basta

J'ai l'impression que le code que j'ai plus haut, n'est même pas traité, ou j'ai du louper quelques étapes.. par ailleurs mon code pour l'adresse mail, je dois le mettre dans le code de mon formulaire ou dans ma cible qui réécrit ce que l'utilisateur a marqué ?

J'essai de trouver pourquoi ça ne marche pas, on sait jamais. Ou alors le code qui est mauvais
T'es chez quel opérateur ?
Car pour la plupart l'envoi de mail sans configuration plus poussée, tu peux oublier.

Et pour les autres au mieux ton mail atterriras dans la boîte spam du receveur et au pire il sera purement et simplement rejeté.


Edit: Et si tu reçois pas les echo c'est que les conditions de ton premier et/ou te ton second IF ne sont probablement jamais vraies.
Tu devrais rajouter des else pour t'en assurer.

Dernière modification par Daenry ; 23/07/2014 à 19h38.
Chez Orange, je voulais tester le formulaire en local, mais c'est pas grave si ça ne marche pas, car mon véritable objectif c'est de si possible d'intégrer ce formulaire sur mon wordpress, ou alors héberger mon formulaire directement. ça devrai être plus simple qu'essayer en local ?

Je vais reregarder mes conditions, merci pour le conseil, j'ai dû passer à côté d'un truc.
est ce que tu as regarder dans les log d'erreur de wamp?
je ne saurais te dire ou regarder mais sur xampp c'est dfans xampp\apache2\error.log

ca peut t'aiguiller sur ton erreur
Salut,

J'ai trouvé le répertoire que tu m'as indiqué, mais je n'ai pas d'erreur, en même temps, mon code pour le mail, j'ai l'impression qu'il ne s’exécute pas, donc je vais regarder les conditions comme conseillé hier.
Du petit nouveau.

J'ai refait un code plus simple pour l'envoie de mail qui comprends
Code PHP:

<?php 

$to 
"monmail@jolaidez.net"

$from "$from". <?php echo $_POST['Courriell']; ?>

$subject = "$subject" = "test"; 

$message = "$message" = echo $_POST['Candidat']; 

$mail($to, $subject, $message, $from); 

?>
Alors est ce que le code est bon ? De deux qu'est ce je dois mettre dans le from, j'ai un doute et quand j'ai envoyé mon formulaire j'ai regardé dans les erreurs de logs et j'ai vu ça " [core:alert] [pid 4812:tid 1500] [client ::1:50094] C:/wamp/www/PHPBlog/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration"

des idées ?
J'ai reglé le message d'erreur en cochant un truc dans mes options apaches, maintenant j'aimerai savoir si le code est fonctionnel et si mes champs sont bien, notamment, ce qu'il faut mettre dans from ?

merci encore une fois.

J'ai toujours l'impression qu'il ignore le code plus haut pour le mail. :/

Dernière modification par sourigsd ; 24/07/2014 à 11h10.
Je me permets un quadripleplost pour vos dire que j'ai upload un fichier rar avec mon projet à l'intérieur, c'est pas forcément claire pour vous sinon.

Si vous pouviez y jeter un oeil, et le tester chez vous, voir ce qui ne va pas, le code est sûrement pas très beau, mais j'ai commencé mardi, soyez indulgent s'il vous plaît ^^

voici le lien http://dl.free.fr/qQiMCbf3W
Citation :
Publié par LordYu
Hmmm je veux pas dire de bêtise mais je pense qu'en local tu n'as pas de serveur mail installé par défaut sur wamp, va falloir chercher comment en installer un.

Tu peux peut être essayer ça.
+1

Sous Wamp, j'utilise Sendmail aussi, ça marche niquel (un dossier à placer, quelques lignes à mettre dans php.ini et la conf de ta boite mail à insérer dans la config sendmail et ça roule).
Et tu(vous) pensez que ça vient de ça ?

Tu as regardé le fichier rar de mon précédent post, que je m'assure au moins que ça soit fonctionnel, si tel est le cas, alors je me pencherai plus sur sendmail, parce qu'actuellement j'ai pas trop d'informations sur ce qui ne marche pas, une impasse. Un peu d'aide serai la bienvenue ^^

merci²
Il y a une erreur dans ton code. Tu fermes la balise PHP avant d'avoir terminé ton code.

Code:
$from = "$from". <?php echo $_POST['Courriell']; ?>
Supprime le "?>".

Essaie ça:
Code:
if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
	if(!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])){
		$destinataire = "exemple@mail.fr";
		$sujet = "Demande de contact";
		$message = "Nom : ".$_POST['nom']."\r\n";
		$message = "Adresse email : ".$_POST['email']."\r\n";
		$message = "Message : ".$_POST['message']."\r\n";
		$entete = 'From: '.$_POST['email']."\r\n".
        	'Reply-To: '.$_POST['email']."\r\n".
		'X-Mailer: PHP/'.phpversion();
		if (mail($destinataire,$sujet,$message,$entete)){
			echo 'Message envoyé';
		} else {
 			echo "Une erreur est survenue lors de l'envoi du formulaire par email";
		}
	}
}
Code:
<form action="traitement.php" method="post">
	<label for="nom">Nom</label>
	<input id="nom" name="nom" type="text" value=""/>
	<label for="email">Adresse email</label>
	<input id="email" name="email" type="text" value=""/>
	<label for="message">Message</label>
	<textarea id="message" name="message"></textarea>
	<button type="submit">Envoyer</button>
</form>
Je l'ai trouvé sur un site pas trop mal, si tu souhaites le lien.
Edit: ah j'avais pas vu, tu as deux balises PHP. Une balise imbriquée dans une autre. Du coup, cela annule la suite de ton code.
Merci Lilva d'avoir pris du temps pour lire mon code tout d'abord.
Alors :

ton
Code PHP:

$from = "$from". <?php echo $_POST['Courriell']; ?>

fait référence à mon
Code PHP:

$h  = "From: <?php echo $_POST ['Couriell']; ".$TO;

?

Si oui je n'ai rien qui ferme justement, bien qu'il y ai un soucis vu que c'est gris. Et à la fin, ou le code s'annule exactement s'il te plaît ? ça conforterai mon idée qui était bien que le code ne s’exécutait pas alors.
J'ai mis en rouge où tu imbriques une seconde Balise PHP. Le reste de ton code est probablement considéré comme "nul".

Code:
<?php  

$to = "monmail@jolaidez.net";  

$from = "$from". <?php echo $_POST['Courriell']; ?> 

$subject = "$subject" = "test";  

$message = "$message" = echo $_POST['Candidat'];  

$mail($to, $subject, $message, $from);  

?>
Je ne suis pas une experte en PHP car j'ai commencé récemment mais je n'ai pas souvenir que l'on puisse imbriquer une seconde balise PHP dans une autre. En tout cas, pas de cette manière. Mais je peux me tromper.
Je ne l'ai pas fermé pourtant, enfin sur mon code elle n'est pas fermé et mon code et différent du tiens aussi ^^

Pour faire plus clair, voilà ce que j'ai actuellement jolphp.png

Et y'a forcément un truc pas bien, mais bon, vu que je suis dessus depuis longtemps que j'arrêter pas de modifier, j'ai dû mal à voir, il me faut votre regard neuf
Echo courriell fait référence au mail de la personne qui rempli le formulaire, (y'a un champ courriel) et donc je voulais mettre from "le mail de la personne". Je ne sais pas quoi mettre d'autre et je m'y connais pas, je veux bien qu'on m'explique ^^
la balise "<?php" fonctionne comme les balises html, xml, svg, etc... Une fois ouverte il faut la fermer, sinon ça ne peut pas marcher.

Là tu as deux ouvertures (lignes 6 et 9) et une seule fermeture (ligne 19). De plus, lors de ta deuxième ouverture (ligne 9) tu es déjà dans une balise PHP (qui est donc ouverte ligne 6 et fermée ligne 19), donc la seconde ouverture est inutile vu que le serveur est déjà au courant que tout le code entre les lignes 6 et 19 est du code php. Pareil, je ne vois pas l'utilité du "echo", qui sert uniquement à faire de l'affichage (alors que tu sembles vouloir faire une affectation sur cette fameuse ligne 9).

En gros, le but de la balise "<?php" est d'indiquer au serveur au moment du traitement du fichier qu'il arrive dans un bloc de code qu'il va devoir interpréter en tant que code PHP. Le but du mot clé "echo" est d'afficher sur une page le contenu d'une variable. Donc comme tu es déjà dans un bloc PHP et que tu cherches à affecter la valeur de ta variable dans une autre et pas à l'afficher, le bloc "<?php echo" est inutile (et il crée donc une erreur).

Du coup je remplacerais
"From" . <?php echo $_POST['Couriel'] .TO;
Par
"From".$_POST['Couriel'].TO;

Ce qui aurait plus de sens, quant à savoir si ça suffirait à faire fonctionner ton code par contre, j'ai malheureusement pas le temps de me pencher dessus pour le moment. Mais par contre, je pense que tu devrais te pencher assez sérieusement sur des tutoriaux, là il semble quand-même te manquer des principes de base pour pouvoir travailler en autonomie et c'est justement pour les gens comme toi que les cours/tutoriaux en ligne sont faits, à savoir pour des gens qui ont la volonté d'apprendre par leurs propres moyens.

Dernière modification par Herlatt ; 25/07/2014 à 11h13.
Tu devrais télécharger Netbeans version php aussi, c'est bien plus usine à gaz que Notepad++ mais ça t'indiquera tes erreurs et c'est pas mal quand on commence.

Sinon jsuis un peu du même avis que Herlatt, penche toi un peu plus sur les très nombreux tutos php trouvables sur le net car il te manque certaines bases et tu gâches un peu ton temps à essayer pleins de trucs sans savoir ce que tu fais.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés