Formulaire php : \' antislash non désiré

ViPHP
ViPHP | 5462 Messages

19 janv. 2011, 17:37

Ca marche pas !
c'est un peu vague...

un message d'erreur ?

Eléphanteau du PHP | 10 Messages

19 janv. 2011, 18:37

Quand je mets ça ça fonctionne :

{
$message .= $numero = $_POST['numero'];
$message .= $titre = $_POST['titre'];
$message .= $_POST['desc'];
$message .= $Tarif = $_POST['tarif'];
$message .= $Email = $_POST['email'];
$message .= $Site = $_POST['site'];
}

mais si je remets les \n\n pour retour à la ligne, ça plante !
Comment faut-il faire ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 janv. 2011, 21:52

Alors pour faire simple (et traduire un peu de ce chinois), ce qu'il faut savoir c'est que pour des raisons de sécurité et de lisibilité, il est préférable d'indiquer d'où proviennent les variables auxquelles tu tentes d'accéder. En gros comme $numero peut faire référence aussi bien à la variable "numero" présente dans l'url, envoyée par un formulaire, ou même stockée en session, il est préférable d'utiliser $_GET['numero'] pour dire explicitement que tu utilises celle dans l'url, $_SESSION['numero'] pour celle en session, etc.

L'idée ici est donc d'utiliser de préférence $_POST['numero']. Maintenant tu peux très bien stocker la valeur que tu as reçu de ton formulaire et la stocker dans $numero :
$numero = $_POST['numero'];
Cela permet également de ne rien avoir à changer au reste de ton code :)

Ou sans affectation, tu peux également inclure cette variable et la concaténer directement à ta chaine
$message .= "numero :\t". $_POST['numero'] ."\n\n";
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

devlop78
Invité n'ayant pas de compte PHPfrance

20 janv. 2011, 01:21

Tu peux aussi faire

$message .= "numero :\t${_POST['numero']}\n\n";

^^

Eléphanteau du PHP | 10 Messages

20 janv. 2011, 08:35

Tu peux aussi faire

$message .= "numero :\t${_POST['numero']}\n\n";

^^
Bravo !

Merci à tous.