8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'essaie de terminer mon formulaire PHP mais en vains.
J'aimerai que lorsque l'internaute aura envoyé le formulaire, qu'il soit dirigé sur une page web.
Comment et où place-t-on ces lignes dans le code.... si quelqu'un pouvait m'aider???
Voici le lien : www.alliage.ch/formulaire5.php
et le code PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<?php

//Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
//Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
//Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if($submit){
//Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
//Verification des champs
if(!$erreur){
//Création du message
$titre="Message de votre site";
$tete="From:Site@Alliage.ch\n";
$corps.="NOM : ".$f_1."\n";
$corps.="PRENOM : ".$f_2."\n";
$corps.="VILLE : ".$f_3."\n";
if(mail("toto@vitamine-c.ch", $titre, stripslashes($corps), $tete )){
$ok_mail="true";

}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>

<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
</head>

<body>


<form action='<?echo$PHP_SELF?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>

<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>NOM :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>PRENOM :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>VILLE :</span></td><td><textarea style='width:360 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' rows='6' cols='40'><?echo$f_3?></textarea></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>


</body>
</html>

Smiley cligne
Modifié par dups (10 Apr 2005 - 19:22)
Administrateur
Salut,

Pourrais-tu baliser tes exemples avec les boutons [ CODE] comme cela est spécifié dans les Règles ?

Merci d'avance de modifier ton message Smiley cligne
Administrateur
Gniii, que dirais-tu d'y penser tout de suite et d'éditer ton message? (à moins que je n'aie pas compris le sens de ta phrase et que tu sois en train de le faire Smiley smile )

Merci d'avance Smiley orange


EDIT: il faut placer le blabla HTML/PHP entre les balises [ code] et [ /code] mais sans les 2x1 espaces que je viens de mettre pour pas transformer le " et ".
Et EDITER le message (bouton prévu à cet effet en haut de chaque post, avant citer), pas créer un nouveau post. Smiley decu

EDIT2: modif du 1er post et ménage de fait
Modifié par Felipe (09 Apr 2005 - 23:42)
Smiley decu Désolé, je suis très fatigué
Bonjour,

J'essaie de terminer mon formulaire PHP mais en vains.
J'aimerai que lorsque l'internaute aura envoyé le formulaire, qu'il soit dirigé sur une page web.
Comment et où place-t-on ces lignes dans le code.... si quelqu'un pouvait m'aider???
Voici le lien : www.alliage.ch/formulaire5.php
et le code PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php
//Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
//Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
//Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if($submit){
//Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
//Verification des champs
if(!$erreur){
//Création du message
$titre="Message de votre site";
$tete="From:Site@Alliage.ch\n";
$corps.="NOM : ".$f_1."\n";
$corps.="PRENOM : ".$f_2."\n";
$corps.="VILLE : ".$f_3."\n";
if(mail("toto@vitamine-c.ch", $titre, stripslashes($corps), $tete )){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
</head>
<body>
<form action='<?echo$PHP_SELF?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>NOM :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>PRENOM :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>VILLE :</span></td><td><textarea style='width:360 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' rows='6' cols='40'><?echo$f_3?></textarea></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
</body>
</html>
Tu veux que ton formulaire cible vers formulaire5.php (c'est à dire la même page) puis, après traitement, redirige vers une autre page web ?
Si c'est bien ça, il te suffit de faire :
header('Location: page.php');
Et pour être réellement propre, il faudrait faire le Location avec une URI absolue. On peut la construire avec PHP en utilisant la valeur de $_SERVER['HTTP_HOST']

Sinon, à moins d'utiliser l'output buffering, il faudra mettre ce header() avant de renvoyer tout code au navigateur.
Dans ton cas, c'est largement possible... il te suffirais d'afficher le doctype juste avant <html>
Elentar > Pour éviter de s'embêter avec les header il peut également opter pour la méthode du meta tag :
<meta http-equiv="refresh" content="1; index.php" />

@micalement,
`ixM
Modifié par `ixM (10 Apr 2005 - 03:27)
`ixM a écrit :
Elentar > Pour éviter de s'embêter avec les header il peut également opter pour la méthode du meta tag :
<meta http-equiv="refresh" content="1; index.php" />

@micalement,
`ixM

Oui, mais là apparemment il cherche à faire une redirection instantanée, pas du bricolage où tu attend une seconde après avoir envoyé le formulaire... Smiley lol