Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/07/2007, 15h04   #1
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
Par défaut Erreur de code dans les conditions d'un formulaire

Salut à tous, j'ai une page d'ajout de rendez-vous et j'ai souhaité rajouter une fonctionnalité pour empêcher le rajout de RDV les samedi et dimanche. Voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
if ($envoye)
{
$date_debut = date ("d/m/Y");
$joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
list($jour_debut, $mois_debut, $annee_debut) = explode('/', $date_debut);
$timestamp = mktime (0, 0, 0, $mois_debut, $jour_debut, $annee_debut);
$joursem[date("w",$timestamp)];
if ($joursem <= 7);
{
if ($nom AND $description AND $categorie AND $jour_debut AND $mois_debut AND $an_debut AND $hour_deb AND $minute_deb)
{
	$date_debut=array("$an_debut","$mois_debut","$jour_debut");
	$date_debut=implode("-",$date_debut);
	$heure_deb=array("$hour_deb","$minute_deb","00");
	$heure_deb=implode(":",$heure_deb);
	$rdv_debut=array("$date_debut","heure_deb");
	$rdv_debut=implode(" ",$rdv_debut);
 
	if ($jour_fin AND $mois_fin AND $an_fin AND $hour_fin AND $minute_fin)
	{
		$date_fin=array("$an_fin","$mois_fin","$jour_fin");
		$date_fin=implode("-",$date_fin);
		$heure_fin=array("$hour_fin","$minute_fin","00");
		$heure_fin=implode(":",$heure_fin);
		$rdv_fin=array("$date_fin","heure_fin");
		$rdv_fin=implode(" ",$rdv_fin);
	}
	else
	{
		$rdv_fin=$rdv_debut;
	}
	if ($url == "http://")
	{
		$url="";
	}
	if (!$lien AND $url)
	{
		$lien=$url;
	}
 
	//SI MAGIC QUOTE EST DESACTIVE
	if (!get_magic_quotes_gpc())
	{
		$nom=addslashes($nom);
		$description=addslashes($description);
		$contact=addslashes($contact);
		$adresse=addslashes($adresse);
		$lien=addslashes($lien);
	}
	//SUPPRESION DES TAGS HTML NON AUTORISES
	$nom=strip_tags($nom,$tags);
	$description=strip_tags($description,$tags);
	$contact=strip_tags($contact,$tags);
	$adresse=strip_tags($adresse,$tags);
	//AJOUT DES SAUTS DE LIGNE
	$description=nl2br($description);
	$query="INSERT INTO $table_agenda 			(date_debut,date_fin,heure_deb,heure_fin,rdv_debut,rdv_fin,nom,description,categorie,contact,adresse,email,telephone,fax,lien,url,user,actif) VALUES ('$date_debut','$date_fin','$heure_deb','$heure_fin','$rdv_debut','$rdv_fin','$nom','$description','$categorie','$contact','$adresse','$email','$telephone','$fax','$lien','$url','$_SESSION[the_user]','$actif')";
	$result=mysql_query($query);
	$nom = stripslashes($nom);
	echo "<p>L'&eacute;v&eacute;nement <b>$nom</b> a &eacute;t&eacute; ajout&eacute;.</p>";
}
else
{
	echo "<p><font color=\"red\">Erreur : merci de compl&eacute;ter tous les champs obligatoires.</font></p>";
	$erreur="1";
}
}
else
{
	echo "<p><font color=\"red\">Erreur : impossible de fixer un rendez-vous un dimanche.</font></p>";
}
}
Et j'ai une erreur au niveau de l'avant-dernier else, pourtant la hiérarchie de mes if semble bonne.
Merci d'avance pour votre aide.
DrDooM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h13   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
au niveau des accolades ouvrantes/fermantes ca "semble" bon mais je peux me tromper
c'est quoi l'erreur exacte?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h18   #3
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Bonjour

A part un ; en trop après le premier if (ce qui n'est pas une erreur critique, il me semble) je ne vois rien non plus.

Pourrais-tu préciser ton erreur ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h21   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Ah bah si voila, y a un ; apres le if, du coup le else a la fin n'a aucun sens puisqu'il ne suit plus de if.
Vive Celira
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h27   #5
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
merci à tous, c'était con comme erreur, enfin je penserai à vérifier pour la suite.
DrDooM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h32   #6
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
en revanche je ne sais pas si j'ai vu bon pour la condition pour le jour de la semaine parce que pour l'instant quelque soit le jour entré j'ai une erreur
DrDooM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h44   #7
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Bon, je deviens vraiment douée : je repère des erreurs mêmes sans savoir que ça en est

Je pense qu'il doit y avoir un souci sur ce bloc :
Code :
1
2
3
4
5
6
7
$date_debut = date ("d/m/Y");
$joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
...
$joursem[date("w",$timestamp)];
if ($joursem <= 7){
...
}
$joursem est un tableau qui contient les jours... donc il n'est pas comparable à un entier. M'est avis que tu devrais plutôt avoir quelque chose du genre :
Code :
1
2
3
4
5
$date_debut = date ("d/m/Y");
$joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
...
$jour=$joursem[date("w",$timestamp)];
if ($jour <= 7){
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 16h58   #8
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
Finalement j'ai changé mon code, j'avais une erreur monstre.
Mais je voudrais extraire le numéro de jour de la semaine de $date_debut et le mémoriser dans $ferie, vous auriez une idée de la syntaxe?
je pensais que c'était ça $ferie=$date_debut["weekday"]; mais ça semble de pas marcher
DrDooM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 09h19   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Si tu utilises W dans le paramètre format (le premier) de la fonction date() tu récupères pour la date donnée le numéro de la semaine dans l'année. Exemple pour le numéro de semaine du 5 octobre 2007 :
Code php :
$numSemaine = date("W", mktime(0,0,0,10,5,2007));
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h00.


 
 
 
 
Partenaires

Hébergement Web