Lien vers page php
Fermé
julien136
Messages postés
642
Date d'inscription
mardi 5 février 2008
Statut
Membre
Dernière intervention
31 décembre 2009
-
5 mai 2009 à 00:02
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 5 mai 2009 à 00:38
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 5 mai 2009 à 00:38
A voir également:
- Lien vers page php
- Supprimer une page word - Guide
- Lien copie - Forum Android
- Alert php ✓ - Forum PHP
- Lien url - Guide
- Windows 7 vers windows 10 - Guide
2 réponses
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
477
5 mai 2009 à 00:25
5 mai 2009 à 00:25
Un bouton de formulaire c'est pas vraiment fait pour faire des liens.
Toutefois, dans ta balise <form> tu as bien défini action="" sur une page de traitement des données de ton formulaire avec un code PHP. Tu peux donc très bien faire une redirection vers cette page.
Toutefois, dans ta balise <form> tu as bien défini action="" sur une page de traitement des données de ton formulaire avec un code PHP. Tu peux donc très bien faire une redirection vers cette page.
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
477
5 mai 2009 à 00:38
5 mai 2009 à 00:38
Tu ne sais pas faire un formulaire en HTML et tu me sors un code PHP pareil ?
A mon avis tu devrai d'abord revoir tes bases en HTML avant de te lancer dans le PHP.
Un formulaire est défini par les balise <form></form>
Cette balise doit être écrite de la manière suivante:
method correspondant à la manière dont sont envoyé les données. post étant conseillé mais tu peux choisir get.
action "redirige" vers la page de traitement. Cela peu très bien être la même page que le formulaire. Il faut donc mettre ici l'url de la page.
Entre ces deux balises (<form></form>) tu peux mettre un ensemble de champ pour les données. Je vais pas te les détailler ici.
Pour le traitement des données, et surtout s'il s'agit de la même page que pour le formulaire, je te conseille de faire un rapide contrôle pour savoir si le formulaire est bien envoyé. Ça évitera tout simple que ton code cherche à traiter des informations qui ne sont pas encore envoyé.
Exemple:
Là je vérifie juste si le formulaire à été envoyé. Dans le cas la variable $_POST['valider'] correspondant au bouton sera défini par le texte du bouton "Valider". C'est dans ce cas que je traiterai les données du forulaire.
Revois ce genre de base pour y voir plus clair.
A mon avis tu devrai d'abord revoir tes bases en HTML avant de te lancer dans le PHP.
Un formulaire est défini par les balise <form></form>
Cette balise doit être écrite de la manière suivante:
<form method="post" action="page_de_traitement.php"> ... </form>
method correspondant à la manière dont sont envoyé les données. post étant conseillé mais tu peux choisir get.
action "redirige" vers la page de traitement. Cela peu très bien être la même page que le formulaire. Il faut donc mettre ici l'url de la page.
Entre ces deux balises (<form></form>) tu peux mettre un ensemble de champ pour les données. Je vais pas te les détailler ici.
Pour le traitement des données, et surtout s'il s'agit de la même page que pour le formulaire, je te conseille de faire un rapide contrôle pour savoir si le formulaire est bien envoyé. Ça évitera tout simple que ton code cherche à traiter des informations qui ne sont pas encore envoyé.
Exemple:
<?php
if(isset($_POST['valider']) && ($_POST['valider'] == 'Valider'))
{...action de traitement du formulaire...}
?>
<form method="post" action="page_de_traitement.php">
...
<input type="submit" name="valider" value="Valider" />
</form>
Là je vérifie juste si le formulaire à été envoyé. Dans le cas la variable $_POST['valider'] correspondant au bouton sera défini par le texte du bouton "Valider". C'est dans ce cas que je traiterai les données du forulaire.
Revois ce genre de base pour y voir plus clair.
5 mai 2009 à 00:26
<?php
$champs_obligatoires = array("champ1","email","texte");
$champs_titres = array('champ1' =>'Objet','email' =>'ton mail','texte' =>'ton message',);
$destinataire = 'mon mail';
$headers = 'From: "Contacté par un membre du site" <voir_d@ans.msg>'."\n";
$headers .= 'Content-Type: text/plain; charset=iso-8859-1';
$sujet = 'un utilisateur';
if (!empty($_POST)){
$complete = true;
foreach($champs_obligatoires as $champ){
if (!isset($_POST[$champ])||trim($_POST[$champ])===''){
$complete = false; //un champ obligatoire est incomplet
break;
}elseif($champ == 'email' && !preg_match('/[.+a-zA-Z0-9-]+@[.a-zA-Z0-9-]+.[a-zA-Z]{2,6}/', $_POST[$champ])){
$complete = false; //email invalide
$_POST[$champ] = '';
break;
}
}
foreach($_POST as $champ=>$valeur){
$message = $champs_titres[$champ].': '.$valeur."\n";
}
$sent = $complete && @mail($destinataire,$sujet, $message,$headers);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head><meta http-equiv="content-type" content="text/html;charset=iso-8859-1" /><title>Formulaire de contact</title><script language="JavaScript" type="text/javascript">
<!--
function flash_labels(show) {
var i = 1;
while(document.getElementById('field'+i)){
if (document.getElementById('flabel'+i).style.color == "red"){
if (show)
document.getElementById('flabel'+i).style.visibility = "visible";
else
document.getElementById('flabel'+i).style.visibility = "hidden";
}
i++;
}
}
function verifSelection() {
var i = 1;
var retour = true;
while(document.getElementById('field'+i)){
if (document.getElementById('field'+i).value == ""){
document.getElementById('flabel'+i).style.color = "red";
retour = false;
}else{
document.getElementById('flabel'+i).style.color = "";
}
i++;
}
if (!retour) alert("Vous devez remplir le formulaire au complet !");
setTimeout("flash_labels(false)", 100);
setTimeout("flash_labels(true)", 350);
setTimeout("flash_labels(false)", 600);
setTimeout("flash_labels(true)", 850);
return retour;
}
<?php if (isset($complete) && $complete == false) echo 'onload = function() {verifSelection(); }'; ?>
// -->
</script></head><body>
<?php if (!isset($sent) || (isset($complete) && $complete == false)){ ?>
<!-- Debut formulaire -->
<form action="" method="post" onsubmit="return verifSelection()">
<table style="margin:0 auto;">
<tr><td valign="top"><label id="flabel1" for="field1">Objet <strong>*</strong></label></td><td><input type="text" id="field1" size="25" name="champ1" value="<?php echo @$_POST["champ1"]; ?>" /></td></tr>
<tr><td valign="top"><label id="flabel2" for="field2">ton mail <strong>*</strong></label></td><td><input type="text" name="email" id="field2" size="25" value="<?php echo @$_POST["email"]; ?>" /></td></tr>
<tr><td valign="top"><label id="flabel3" for="field3">ton message <strong>*</strong></label></td><td><textarea name="texte" rows="8" id="field3" cols="35"><?php echo @$_POST["texte"]; ?></textarea></td></tr>
<tr><td></td><td style="text-align:right"><input type="submit"value=Envoyer" /></td></tr>
</table>
</form>
<!-- Fin formulaire -->
<?php }elseif(!$sent){ ?>
<!-- Debut message Erreur -->
<p style="text-align:center;">Une erreur serveur est survenue, l'envoi de mail est impossible. Veuillez réessayer plus tard</p>
<!-- Fin message erreur -->
<?php }else{ ?>
<!-- Debut message succes -->
<p style="text-align:center;">Votre message a été envoyé avec succès, merci!</p>
<!-- Fin message succes -->
<?php } ?>
</body></html>