Page 1 sur 1

Aide formulaire PHP

Posté : 31 oct. 2006, 02:34
par maeva75
Bonjour à tous ! je vous presente mon premier code php , malheureusement il ne fonctione pas ... ;-(


toto.php
-------------------------------------------------------------------
<html>
<head>
<TITLE> Formulaire de transmission</TITLE>
</head>
<body background="">
<left>

<form method="post" action="post.php">
<table width="725" border="0" cellpadding="0" cellspacing="0">


 
<tr>
<td >variable 1</td>
<td><input type="text" name="variable1" size="20"></td>
</tr>

<tr>
<td >variable 2</td>
<td><input type="text" name="variable2" size="20"></td>
</tr>

<tr>
<td >variable 3</td>
<td><input type="text" name="variable3">&nbsp;DD/MM/YY hh:mm </td>
</tr>

<tr>
<td >variable 4</td>
<td>
<textarea name="variable4" cols=60 rows=10></textarea>
</td>
</tr>

<tr>
<td >
<input type="submit" value="Envoyer">
<input type="reset" value="Recommencer">
</td>
<td>
<input type="checkbox" name="test" />Test
</td>
</tr>

</table>
</form>
</body>
</html>

post.php
-------------------------------------------------------------------------------
<?php

if (isset($test)){$to="[email protected]";} else {$to="[email protected]";}

$headers='[email protected]'."\r\n";
$headers.='cc:[email protected]'."\r\n";
$subject=" sujet du mail";

$message1="variable1".$variable1."\n";
$message2="variable2".$variable2."\n";
$message3="variable3".$variable3."\n";
$message4="variable4".$variable4."\n";



$message=$message1.$message2.$message3.$message4;
$message=str_replace('é','e',$message);
$message=str_replace('è','e',$message);
$message=str_replace('à','a',$message);
$message=str_replace('ù','u',$message);
$message=str_replace('ô','o',$message);
$message=str_replace('ç','c',$message);
$message=str_replace('&','et',$message);
$message=str_replace('â','a',$message);
$message=str_replace('ê','e',$message);
$message=str_replace('î','i',$message);
$message=str_replace('ô','o',$message);
$message=str_replace('û','u',$message);
$message=str_replace('ñ','n',$message);

if (mail($to, $subject, $message, $headers))
{echo "Votre message a été envoyé correctement.<br><br><br>";}
else
{echo "Votre message n'a pas été envoyé correctement.<br><br><br>";}
echo "Destinataire: ".$to."<br>";
echo "Headers: ".$headers."<br>";
echo "Objet:".$subject."<br>";
echo "Message:<br><br>".$message;

?>


Apparament les variables 1, 2, 3 et 4 ne sont pas corectement définie,j'obtient une erreur avec easyPHP lorsque je teste...
si une ame charitable souhaite m'eclairer, je vous en remercie par avance.

Posté : 31 oct. 2006, 08:24
par Cyrano
Maeva, pour un problème de PHP, il y a des forums prévus pour ça, le forum "Autres" concerne d'autres problèmes, merci d'en tenir compte.

Pour ta question :
- La balise form n'a pas d'attribut "action" dont la valeur devrait être l'url de la page de traitement;
- Dans ton code de traitement, tu ne récupères pas les valeurs du formulaire, donc les variables sont indéfinies : comme tu utilises la méthode post, il faut récupérer ces valeurs qui sont stockées dans une variable dite "super-globale" : la variable $_POST.
Tu as par uexmple en champ du formulaire avec pour l'attribut "name" la valeur "test" : alors au début de la partie traitement, commence par initialiser la valeur d'une variable $test comme ceci :
<?php
if(isset($_POST['test']))
{
    $test = $_POST['test'];
}
else
{
    $test = "";
}
//... etc...
?>
Ou la même chose en version plus courte :
<?php
$test = (isset($_POST['test'])) ? $_POST['test'] : "";
//... etc...
?>
Et ensuite, au lieu d'utiliser "if(isset($test))", utilise "if(!empty($test))".