Utilisateur anonyme
-
9 janv. 2011 à 13:48
Utilisateur anonyme -
12 janv. 2011 à 20:22
Bonjour !
Je suis un peu nul en PHP et j'ai réalisé un formulaire qui fonctionne très bien en "fusionnant" deux formulaires (1 pour l'envoi de message, et 1 pour un calendrier avec date début et date de fin).
Hélas, mon formulaire est incomplet et il me manque l'affichage automatique dans ce même formulaire du nbr de jour correspondant entre la date de début choisit et la date de fin...) Et là je bloque.
Si une bonne âme pouvait me dépanner ?
Le "calendrier" est dans un dossier 'calendrier' à la racine de mon site et fonctionne bien
Voici le code de mon formulaire qui fonctionne, mais sans le nbr de jours:
<?php
// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}
// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {
// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
//On commence une session pour enregistrer les variables du formulaire...
session_start();
$_SESSION['champ1'] = $_POST['champ1'];
//Contrôle du spam...
if (eregi("http",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères http ";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères [url ";
$flag_erreur = 1;
}
if (eregi("[style.css
<!--
//<![CDATA[
function verifSelection() {
if (document.demoform.champ1.value == "") {
alert("Vous devez saisir un Nom !")
return false
}
if (document.demoform.champ2.value == "") {
alert("Vous devez saisir un Prénom !")
return false
}
if (document.demoform.champ3.value == "") {
alert("Vous devez saisir une Adresse !")
return false
}
if (document.demoform.champ4.value == "") {
alert("Vous devez saisir un Code Postal !")
return false
}
if (document.demoform.champ5.value == "") {
alert("Vous devez saisir une Ville !")
return false
}
if (document.demoform.champ6.value == "") {
alert("Vous devez saisir un Pays !")
return false
}
if (document.demoform.champ7.value == "") {
alert("Vous devez saisir un Téléphone !")
return false
}
if (document.demoform.dc1.value == "") {
alert("Vous devez saisir une Date d\'Arrivée !")
return false
}
if (document.demoform.dc2.value == "") {
alert("Vous devez saisir une Date de Départ !")
return false
}
if (document.demoform.zone_email1.value == "") {
alert("Vous devez saisir un eMail valide !")
return false
}
invalidChars = " /:,;'"
for (i=0; i < invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (document.demoform.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.demoform.zone_email1.focus()
return false
}
}
atPos = document.demoform.zone_email1.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
if (document.demoform.zone_email1.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
periodPos = document.demoform.zone_email1.value.indexOf(".",atPos)
if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
if (periodPos+3 > document.demoform.zone_email1.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
var chks = document.getElementsByName('case1[]');
nbrecases1 = chks.length
flag = 0
for (i = 0; i < nbrecases1 ; i++) {
if (chks[i].checked) {
flag = 1
}
}
if (flag == 0) {
alert("Veuillez confirmer la lecture des Conditions Générales de Vente !!!")
return false;
}
} // Fin de la fonction
//]]>
//-->
</script>
</head>
<form name="demoform" method="post" action="<?=$_SERVER['PHP_SELF']?>" onsubmit="return verifSelection()">
<?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_champ2) {
echo(stripslashes($erreur_champ2));
} else {
if ($erreur_champ3) {
echo(stripslashes($erreur_champ3));
} else {
if ($erreur_champ4) {
echo(stripslashes($erreur_champ4));
} else {
if ($erreur_champ5) {
echo(stripslashes($erreur_champ5));
} else {
if ($erreur_champ6) {
echo(stripslashes($erreur_champ6));
} else {
if ($erreur_champ7) {
echo(stripslashes($erreur_champ7));
} else {
if ($erreur_dc1) {
echo(stripslashes($erreur_dc1));
} else {
if ($erreur_dc2) {
echo(stripslashes($erreur_dc2));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
if ($erreur_case1) {
echo(stripslashes($erreur_case1));
} else {
if ($erreur_texte1) {
echo(stripslashes($erreur_texte1));
} else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
Descriptif:,
Une valise avec des roulettes
<hr style="width: 100%; height: 2px;">
On se retrouve au restaurant
<hr style="width: 100%; height: 2px;">,
----
Choix:,
Petit déjeuner
Déjeuner
Dîner
Pour tout renseignement complémentaire ---> ,
----
Disponibilité:,
Tous les jours,
,
,
----
,
,
,
,
,
----
!Important!,
,
,
,
----
,
,
,
,
,
----
Réservation:,
Nom:
<?php
if ($erreur_champ1) {
echo($icone);
}
?>,
">,
----
,
Prénom:
<?php
if ($erreur_champ2) {
echo($icone);
}
?>,
">,
----
,
Adresse:
<?php
if ($erreur_champ3) {
echo($icone);
}
?>,
">,
----
,
CPostal:
<?php
if ($erreur_champ4) {
echo($icone);
}
?>,
">,
Ville:
<?php
if ($erreur_champ5) {
echo($icone);
}
?>,
</td>
">,
----
,
Pays:
<?php
if ($erreur_champ6) {
echo($icone);
}
?>,
">,
Téléphone:
<?php
if ($erreur_champ7) {
echo($icone);
}
?>,
</td>
">,
----
,
Arrivée:
<?php
if ($erreur_dc1) {
echo($icone);
}
?>,
]
-------------------------------------->,
Départ:
<?php
if ($erreur_dc2) {
echo($icone);
}
?>,
,
----
,
e-Mail:
<?php
if ($erreur_email1) {
echo($icone);
}
?>,
">,
,
<?php
if ($erreur_case1) {
echo($icone);
}
?>,
>J'ai bien lu et j'accepte...
----,
</td>
,
,
,
----
,
Message:
<?php
if ($erreur_texte1) {
echo($icone);
}
?>,
<textarea name="zone_texte1" cols="80" rows="5"><?=stripslashes($_SESSION['zone_texte1']);?></textarea>
<!-- PopCalendar(tag name and id must match) Tags should not be enclosed in tags other than the html body tag. -->
</form></html>
</html>
La zone "Nombre de jours" qui reste vide (verrouillée) est la zone où je voudrais voir apparaître le Nbr de jours après remplissage des dates Début et Fin...
Ici le détail du formulaire (fonctionne en l'état)
<?php
// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}
// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {
// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
//On commence une session pour enregistrer les variables du formulaire...
session_start();
$_SESSION['champ1'] = $_POST['champ1'];
//Contrôle du spam...
if (eregi("http",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères http ";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères [url ";
$flag_erreur = 1;
}
if (eregi("[style.css
<!-- <script type="text/javascript" language="JavaScript"> -->
<!--
//<![CDATA[
function verifSelection() {
if (document.demoform.champ1.value == "") {
alert("Vous devez saisir un Nom !")
return false
}
if (document.demoform.champ2.value == "") {
alert("Vous devez saisir un Prénom !")
return false
}
if (document.demoform.zone_email1.value == "") {
alert("Vous devez saisir un e-Mail valide !")
return false
}
invalidChars = " /:,;'"
for (i=0; i < invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (document.demoform.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.demoform.zone_email1.focus()
return false
}
}
atPos = document.demoform.zone_email1.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
if (document.demoform.zone_email1.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
periodPos = document.demoform.zone_email1.value.indexOf(".",atPos)
if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
if (periodPos+3 > document.demoform.zone_email1.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.demoform.zone_email1.focus()
return false
}
} // Fin de la fonction
//]]>
//-->
</script>
</head><form name="demoform" method="post" action="<?=$_SERVER['PHP_SELF']?>" onsubmit="return verifSelection()">
Formulaire
de contact
<?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_champ2) {
echo(stripslashes($erreur_champ2));
} else {
if ($erreur_dc1) {
echo(stripslashes($erreur_dc1));
} else {
if ($erreur_dc2) {
echo(stripslashes($erreur_dc2));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
if ($erreur_texte1) {
echo(stripslashes($erreur_texte1));
} else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
Votre Nom : ,
<?php
if ($erreur_champ1) {
echo($icone);
}
?>,
">
Votre Prénom : ,
<?php
if ($erreur_champ2) {
echo($icone);
}
?>,
">
Votre Arrivée : ,
,
]
Votre Départ : ,
,
Nombre de Jours : ,
,
" type="text" readonly="readonly">
Votre e-Mail : ,
<?php
if ($erreur_email1) {
echo($icone);
}
?>,
">
Votre Commentaire : ,
<?php
if ($erreur_texte1) {
echo($icone);
}
?>,
<textarea name="zone_texte1" cols="45" rows="10"><?=stripslashes($_SESSION['zone_texte1']);?></textarea>
<!-- PopCalendar(tag name and id must match) Tags should not be enclosed in tags other than the html body tag. -->
</form></html>