XLAgenda
Un agenda en PHP pour votre site Web
Accueil | Présentation | Configuration nécessaire | Installation | Historique | FAQ | Forum | Utilisateurs | Démonstration
Vous n'êtes pas identifié(e).
Bonjour
c'est juste pour signaler que lorsqu'un rdv est posté, si on rafraichit la page (F5), il est a nouveau posté. On se retrouve donc avec autant de doublons que de rafraichissement de page.
Je suis sous la version 4.2
Si cela n'a pas été encore corrigé, je me propose de faire le patch et de soumettre ici la correction.
Cdt
Erwan
Hors ligne
Bonjour
voici le patch pour la 4.2 que je propose. Cela fonctionne sur mon environnement.
J'ai indenté un peu le code aussi (pour que cela soit plus lisible).
Le principe: Avant d'insérer une nouvelle demande, je vérifie qu'il n'en existe pas une identique (en tout point).
cordialement
--- admin/ajouter.php
+++ admin/ajouter.php
@@ -236,58 +236,70 @@
{
$description=nl2br($description);
}
-$query="INSERT INTO $table_agenda (date_debut,date_fin,heure_debut,heure_fin,nom,description,categorie,lieu,contact,adresse,email,telephone,fax,lien,url,id_user,actif) VALUES ('$date_debut','$date_fin','$heure_debut','$heure_fin','$nom','$description','$categorie','$lieu','$contact','$adresse','$email','$telephone','$fax','$lien','$url','$the_id','$auth_actif')";
+$query="SELECT id FROM $table_agenda
+ WHERE date_debut = '$date_debut' AND date_fin = '$date_fin' AND heure_debut = '$heure_debut'
+ AND heure_fin = '$heure_fin' AND nom = '$nom' AND description = '$description'
+ AND categorie = '$categorie' AND lieu = '$lieu' AND contact = '$contact'
+ AND adresse = '$adresse' AND email = '$email' AND telephone = '$telephone'
+ AND fax = '$fax' AND lien = '$lien' AND url = '$url'
+ AND id_user = '$the_id' AND actif = '$auth_actif'";
$result=mysql_query($query);
-//ENVOI D'UN EMAIL A L'ADMINISTRATEUR
-if ($auth_actif == "0" AND $propositions_utilisateurs)
-{
-//ON VERIFIE SI AU MOINS UNE ADRESSE EMAIL EST DANS LA BASE DE DONNEES
-$query="SELECT email FROM $table_users WHERE email LIKE '%@%' AND gerer = '1'";
-$result=mysql_query($query);
-if($result)
-{
-$total=mysql_num_rows($result);
-if ($total)
-{
-//ON ENVOIE LE MAIL
-$nom=stripslashes($nom);
-$texte ="Un événement en attente posté par : $the_user\n\n";
-$texte .="Nom de l'événement : $nom\n\n";
-$texte .="Connectez vous à l'interface d'administration pour valider ou rejeter cet événement.\n\n";
-$texte .="http://$server/$path_agenda/admin";
-$tab=explode(".",$server);
-if (isset($tab[1]) AND isset($tab[2]))
-{
-$server=array("$tab[1]","$tab[2]");
-$server=implode(".",$server);
-$test_serveur=1;
-}
-$query="SELECT email FROM $table_users WHERE email LIKE '%@%' AND gerer = '1'";
-$result=mysql_query($query);
-while($ligne=mysql_fetch_array($result))
-{
-$adresse=$ligne['email'];
-if ($email_exp)
-{
-$headers = "From: $email_exp\n";
-$headers .= "MIME-Version: 1.0\n";
-$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
-}
-elseif ($test_serveur AND ($server != "free.fr"))
-{
-$headers = "From: [email protected]{$server}\n";
-$headers .= "MIME-Version: 1.0\n";
-$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
-}
-else
-{
-$headers .= "MIME-Version: 1.0\n";
-$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
-}
[email protected]("$adresse", "XLAgenda - Evénement en attente", $texte, $headers);
-}
-}
-}
+$verif_doublon=mysql_num_rows($result);
+if (!$verif_doublon){
+ $query="INSERT INTO $table_agenda (date_debut,date_fin,heure_debut,heure_fin,nom,description,categorie,lieu,contact,adresse,email,telephone,fax,lien,url,id_user,actif)
+ VALUES ('$date_debut','$date_fin','$heure_debut','$heure_fin','$nom','$description','$categorie','$lieu','$contact','$adresse','$email','$telephone','$fax','$lien','$url','$the_id','$auth_actif')";
+ $result=mysql_query($query);
+ //ENVOI D'UN EMAIL A L'ADMINISTRATEUR
+ if ($auth_actif == "0" AND $propositions_utilisateurs)
+ {
+ //ON VERIFIE SI AU MOINS UNE ADRESSE EMAIL EST DANS LA BASE DE DONNEES
+ $query="SELECT email FROM $table_users WHERE email LIKE '%@%' AND gerer = '1'";
+ $result=mysql_query($query);
+ if($result)
+ {
+ $total=mysql_num_rows($result);
+ if ($total)
+ {
+ //ON ENVOIE LE MAIL
+ $nom=stripslashes($nom);
+ $texte ="Un événement en attente posté par : $the_user\n\n";
+ $texte .="Nom de l'événement : $nom\n\n";
+ $texte .="Connectez vous à l'interface d'administration pour valider ou rejeter cet événement.\n\n";
+ $texte .="http://$server/$path_agenda/admin";
+ $tab=explode(".",$server);
+ if (isset($tab[1]) AND isset($tab[2]))
+ {
+ $server=array("$tab[1]","$tab[2]");
+ $server=implode(".",$server);
+ $test_serveur=1;
+ }
+ $query="SELECT email FROM $table_users WHERE email LIKE '%@%' AND gerer = '1'";
+ $result=mysql_query($query);
+ while($ligne=mysql_fetch_array($result))
+ {
+ $adresse=$ligne['email'];
+ if ($email_exp)
+ {
+ $headers = "From: $email_exp\n";
+ $headers .= "MIME-Version: 1.0\n";
+ $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
+ }
+ elseif ($test_serveur AND ($server != "free.fr"))
+ {
+ $headers = "From: [email protected]{$server}\n";
+ $headers .= "MIME-Version: 1.0\n";
+ $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
+ }
+ else
+ {
+ $headers .= "MIME-Version: 1.0\n";
+ $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
+ }
+ @mail("$adresse", "XLAgenda - Ev?nement en attente", $texte, $headers);
+ }
+ }
+ }
+ }
}
$nom = stripslashes($nom);
echo "<p class=\"confirmation\">L'événement <b>$nom</b> a été ajouté.</p>\n";
@@ -299,19 +311,19 @@
}
if (!$auth_actif)
{
-echo "<p><b>Votre événement sera ajouté à l'agenda après validation par un administrateur.</b></p>\n";
+ echo "<p><b>Votre événement sera ajouté à l'agenda après validation par un administrateur.</b></p>\n";
}
echo "<p>Les champs suivis d'un * sont obligatoires.</p>\n";
if ($erreur)
{
-$nom=stripslashes($nom);
-$description=stripslashes($description);
-$lieu=stripslashes($lieu);
-$contact=stripslashes($contact);
-$adresse=stripslashes($adresse);
-$telephone=stripslashes($telephone);
-$fax=stripslashes($fax);
-$lien=stripslashes($lien);
+ $nom=stripslashes($nom);
+ $description=stripslashes($description);
+ $lieu=stripslashes($lieu);
+ $contact=stripslashes($contact);
+ $adresse=stripslashes($adresse);
+ $telephone=stripslashes($telephone);
+ $fax=stripslashes($fax);
+ $lien=stripslashes($lien);
}
?>
<form name="chooseDateForm" id="chooseDateForm" action="ajouter.php" method="post" onSubmit="return verifierFormulaire(this)">
Hors ligne