Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

problème de formulaire en php

Problème de formulaire en php


Problème de formulaire en php     Posté le 23/11/2007 à 11:54
Flytox
Membre
flytox
4 posts
Inscrit le : 21/11/2007
bonjour
j'ai créé un formulaire en php, qui doit à partir d'une page .html, m'envoyer des informations sous forme de mail.
Cela ne fonctionne pas pour l'instant.
j'ai le message: Objet non trouvé!
L'URL requise n'a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d'informer l'auteur de cette page de cette erreur.

Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.

Error 404
www.habitatjeuneslaval.org
Fri Nov 23 11:57:06 2007
Apache

voici la page :
http://www.habitatjeuneslaval.org/Nouveau-site/form3.html
et voici le code du fichier .php :
<?php
//Pour définir chaque input du formulaire, ajouter le signe de dollar devant

$msg .= "Nom:\t$nom\n";
$msg .= "Prénom:\t$prenom\n";
$msg .= "Age:\t$age\n";
$msg .= "Sexe:\t$sexe\n";
$msg .= "Adresse:\t$adesse\n";
$msg .= "Ville:\t$ville\n";
$msg .= "Code Postal:\t$codepostal\n";
$msg .= "E.Mail:\t$email\n";
$msg .= "Téléphone:\t$telephone\n";
$msg .= "Votre statut le jour de votre arrivée:\t$statut\n";
$msg .= "Vos revenus mensuels:\t$revenus\n";
$msg .= "Logement souhaité:\t$logementSouhaite\n";
$msg = "Autre demande:\t$autredemande\n";
$msg .= "Date d'arrivée souhaitée:\t$arrive\n";
$msg = "Message:\t$text\n";
//Pourait continuer ainsi jusqu'à la fin du formulaire
$recipient = "omercier@fjtlaval.org";
$subject = "Demande de logement";

//$mailheaders = "From: Mon test de formulaire<> \n";
$mailheaders .= "Reply-To: $email\n\n";

if (mail($recipient, $subject, $msg, $mailheaders))

{header("Location: mail_envoye.html");}
else
{header("Location: mail_non_envoye.html");}

?>
quelqu'un peut il m'en dire plus?
En vous remerciant par avance. smiley
 
Réponse à : Problème de formulaire en php     Posté le 23/11/2007 à 12:01
sky
Administrateur
Avatar
Site perso
4179 posts
Inscrit le : 13/08/2003
Bonjour

Voici déjà ton code un peut retoucher et quelques commentaires pour te permettre de le sécurisé un minimum. Je te conseil aussi de te renseigner sur les risque de spam via un formulaire de se type.

Ensuite, pour ton erreur, c'est tout simplement que la page n'existe pas j'ai l'impression ... Essaye vers une autre page pour voir smiley

Je pense qu'il ne donne pas une erreur 404 classique parceque tu fais une redirection "header" en PHP. Mais je pense que ça reste une erreur 404 classique.

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Problème de formulaire en php     Posté le 23/11/2007 à 12:08
sky
Administrateur
Avatar
Site perso
4179 posts
Inscrit le : 13/08/2003
Voici le code sécurisé.
Je te laisse finir la déclaration des autre variables.
<?php
function has_no_newlines($text)
{
  return 
preg_match("/(%0A|%0D|\\n+|\\r+)/i"$text) == 0;
}
function 
has_no_emailheaders($text)
{
  return 
preg_match("/(%0A|%0D|\\n+|\\r+)(content-type:|to:|cc:|bcc:)/i"$text) == 0;


/*
  Tou d'abord, on verifie que toutes les variable envoyer via le formulaire ne contient pas de caractère&nbs p;interdit qui pourrai servir a utiliser ton site comme envoi de spam.
*/
$erreurs '';
foreach(
$_POST as $clef => $valeur)
{
  if(!
has_no_newlines($valeur) && !has_no_emailheaders($valeur))
  {
    
$_POST[$clef] = $valeur;
  }
  else
  {
    
$erreurs .= '<p>'.htmlentities($clef).' contient des caractères interdits</p>';
  }
}
if(!empty(
$erreurs))
  exit(
$erreurs);


// on defini toujours une variable avant de l'utiliser de cette façon : 
$msg '';


/*
  Toutes les variables de cette page être vérifié avant d'être utilisé.
  genre : $nom = htmlentities($_POST['nom'], ENT_QUOTES);
  et ceci pour chaque variable.
*/
$nom htmlentities($_POST['nom'], ENT_QUOTES);
$prenom htmlentities($_POST['prenom'], ENT_QUOTES);
// etc ... pour toutes les variables

$msg .= "Nom:\t$nom\n";
$msg .= "Prénom:\t$prenom\n";
$msg .= "Age:\t$age\n";
$msg .= "Sexe:\t$sexe\n";
$msg .= "Adresse:\t$adesse\n";
$msg .= "Ville:\t$ville\n";
$msg .= "Code Postal:\t$codepostal\n";
$msg .= "E.Mail:\t$email\n";
$msg .= "Téléphone:\t$telephone\n";
$msg .= "Votre statut le jour de votre arrivée:\t$statut\n";
$msg .= "Vos revenus mensuels:\t$revenus\n";
$msg .= "Logement souhaité:\t$logementSouhaite\n";
$msg "Autre demande:\t$autredemande\n";
$msg .= "Date d'arrivée souhaitée:\t$arrive\n";
$msg "Message:\t$text\n";

$recipient "omercier@fjtlaval.org";
$subject "Demande de logement";

$mailheaders .= "Reply-To: $email\n\n";

if(
mail($recipient$subject$msg$mailheaders))
{
  
header("Location: mail_envoye.html");
}
else
{
  
header("Location: mail_non_envoye.html");
}
?> 


_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Problème de formulaire en php     Posté le 23/11/2007 à 16:04
flytox
Membre
Avatar
4 posts
Inscrit le : 21/11/2007
merci pour l'aide..
Je viens de rectifier le code. désormais il ne mentionne plus l'erreur 404... Mais il m'affiche une page blanche lors de l'envoi et je ne reçoit rien dans la boite mail smiley
http://www.habitatjeuneslaval.org/Nouveau-site/form3.html
Voici le code transformé dans le php...est ce qu'il me manque quelque chose?
<?php
function has_no_newlines($text)
{
return preg_match("/(%0A|%0D|\\n+|\\r+)/i", $text) == 0;
}
function has_no_emailheaders($text)
{
return preg_match("/(%0A|%0D|\\n+|\\r+)(content-type:|to:|cc:|bcc:)/i", $text) == 0;
}

/*
Tou d'abord, on verifie que toutes les variable envoyer via le formulaire ne contient pas de caractère&nbs p;interdit qui pourrai servir a utiliser ton site comme envoi de spam.
*/
$erreurs = '';
foreach($_POST as $clef => $valeur)
{
if(!has_no_newlines($valeur) && !has_no_emailheaders($valeur))
{
$_POST[$clef] = $valeur;
}
else
{
$erreurs .= '<p>'.htmlentities($clef).' contient des caractères interdits</p>';
}
}
if(!empty($erreurs))
exit($erreurs);


// on defini toujours une variable avant de l'utiliser de cette façon :
$msg = '';


/*
Toutes les variables de cette page être vérifié avant d'être utilisé.
genre : $nom = htmlentities($_POST['nom'], ENT_QUOTES);
et ceci pour chaque variable.
*/
$nom = htmlentities($_POST['nom'], ENT_QUOTES);
$prenom = htmlentities($_POST['prenom'], ENT_QUOTES);
$age = htmlentities($_POST['age'], ENT_QUOTES);
$sexe = htmlentities($_POST['sexe'], ENT_QUOTES);
$adresse = htmlentities($_POST['adresse'], ENT_QUOTES);
$ville = htmlentities($_POST['ville'], ENT_QUOTES);
$code postal = htmlentities($_POST['code postal'], ENT_QUOTES);
$e.mail = htmlentities($_POST['e.mail'], ENT_QUOTES);
$telephone = htmlentities($_POST['telephone'], ENT_QUOTES);
$votre statut le jour de votre arrivée = htmlentities($_POST['votre statut le jour de votre arrivée'], ENT_QUOTES);
$vos revenus mensuels = htmlentities($_POST['vos revenus mensuels'], ENT_QUOTES);
$logement souhaite = htmlentities($_POST['logement souhaité'], ENT_QUOTES);
$autre demande = htmlentities($_POST['autre demande'], ENT_QUOTES);
$date d'arrivée souhaitée = htmlentities($_POST['date d'arrivée souhaitée'], ENT_QUOTES);
$msg .= "Nom:\t$nom\n";
$msg .= "Prénom:\t$prenom\n";
$msg .= "Age:\t$age\n";
$msg .= "Sexe:\t$sexe\n";
$msg .= "Adresse:\t$adesse\n";
$msg .= "Ville:\t$ville\n";
$msg .= "Code Postal:\t$codepostal\n";
$msg .= "E.Mail:\t$email\n";
$msg .= "Téléphone:\t$telephone\n";
$msg .= "Votre statut le jour de votre arrivée:\t$statut\n";
$msg .= "Vos revenus mensuels:\t$revenus\n";
$msg .= "Logement souhaité:\t$logementSouhaite\n";
$msg = "Autre demande:\t$autredemande\n";
$msg .= "Date d'arrivée souhaitée:\t$arrive\n";
$msg = "Message:\t$text\n";

$recipient = "omercier@fjtlaval.org";
php mail(omercier@fjtlaval.org)
$subject = "Demande de logement";

$mailheaders .= "Reply-To: $email\n\n";

if(mail($recipient, $subject, $msg, $mailheaders))
{
header("Location: mail_envoye.html");
}
else
{
header("Location: mail_non_envoye.html");
}
?>
en vous remerciant par avance!

_______________________
Aucun
 
Réponse à : Problème de formulaire en php     Posté le 24/11/2007 à 01:17
sky
Administrateur
Avatar
Site perso
4179 posts
Inscrit le : 13/08/2003
Bonsoir

Dans le nom des variable, il ne doit pas y avoir d'espace. C'est pas une recomendation, mais une obligation.

Le nom des champs dans le formulaire peuvent avoir des espaces, mais par soucis de compatibité, vaut mieu ne pas en utiliser.

Si tu veut voir ce qui passe dans le formulaire, à la place du fichier qui envoi le mail, écrit juste ceci :
<?php
echo '<pre>';
print_r($_POST);
echo 
'</pre>';
?>


_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net