Aucun terrain n'a été selectionné. Veuillez recommencer.
";
}
else {
$requete="SELECT nb_resa_loisir_jour FROM quota_resa WHERE id_club='$club'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."nb_resa_loisir_jour > 0 and count($terrains) > 1 and $i<$resa_jour->nb_resa_loisir_jour) or ($resa_jour->nb_resa_loisir_jour == -1) or ($resa_jour->nb_resa_loisir_jour > 0 and count($terrains) == 1)) {
/* Requete si joueur invite ? */
$invite_ok=0;
$temp="Invité";
*/$temp="Invité";*/
$requete="SELECT solde, id_compte FROM compte WHERE id_joueur='$id_joueur_log' AND id_club='$club' AND statut='$temp'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$existe_invite=mysqli_num_rows($reponse);
if($existe_invite > 0) {
$compte_invite=mysqli_fetch_object($reponse);
$invite_ok=1;
}
/* COntrole si le joueur a assez de jetons pour la réservation en cours */
if(($invite_ok == 1 and $compte_invite->solde > 0) or ($type_resa=='Invite' and $compte_membre->solde > 0) or $invite_ok==0) {
$interv_occupe=0;
$id_terrain=$terrains[$i];
$requete="SELECT nom FROM reservable WHERE id_reservable='$id_terrain'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$terrain=mysqli_fetch_object($reponse);
/* controle pour chaque demi-heure */
$ts_debut=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$ts_fin=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$ts_interv=$ts_debut;
while($interv_occupe==0 and $ts_interv < $ts_fin) {
$ts_fin_interv=$ts_interv + (30 * 60);
$h_interv_deb=date("H:i:00", $ts_interv);
$h_interv_fin=date("H:i:00", $ts_fin_interv);
$requete="SELECT id_reservation, heure_resa_deb, heure_resa_fin FROM reservation WHERE date_resa='$annee-$mois-$jour' AND id_reservable='$id_terrain' AND ((heure_resa_deb >= '$h_interv_deb' AND heure_resa_deb<'$h_interv_fin') OR (heure_resa_fin>'$h_interv_deb' AND heure_resa_fin<='$h_interv_fin') OR (heure_resa_deb<='$h_interv_deb' AND heure_resa_fin>='$h_interv_fin'))";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$existe=mysqli_num_rows($reponse);
if($existe>0) {
$interv_occupe=1;
}
$ts_interv=$ts_fin_interv;
}
/* si l'intervalle est occupé */
if($interv_occupe==1) {
$message="La réservation n'a pas été prise en compte. Le terrain $terrain->nom est occupé à ces horaires ou la réservation n'a pas été validée par l'administrateur !
";
}
else {
$terrain_resa=$terrain_resa+1;
$debut="$heure_debut:$min_debut:00";
$fin="$heure_fin:$min_fin:00";
$date="$annee-$mois-$jour";
/* Positionne le flag de validation */
if($flag<=0) {
$val=0;
}
else {
$val=1;
}
if(is_numeric($type_resa)) {
if($id_adverse > 0)
$requete="INSERT INTO reservation(type, type_reservation, id_joueur, heure_resa_deb, heure_resa_fin, date_resa, id_reservable, validation, id_joueur_adverse,id_rubriquee) VALUES('Autre', '$nom_resa', '$id_joueur_log', '$debut','$fin','$date', '$id_terrain', '$val','$id_adverse','$type_resa')";
else
$requete="INSERT INTO reservation(type, type_reservation, id_joueur, heure_resa_deb, heure_resa_fin, date_resa, id_reservable, validation,id_rubrique) VALUES('Autre', '$nom_resa', '$id_joueur_log', '$debut','$fin','$date', '$id_terrain', '$val', '$type_resa')";
}
else {
if($id_adverse > 0)
$requete="INSERT INTO reservation(type, type_reservation, id_joueur, heure_resa_deb, heure_resa_fin, date_resa, id_reservable, validation, id_joueur_adverse,id_rubrique) VALUES('$type_resa', '$nom_resa', '$id_joueur_log', '$debut','$fin','$date', '$id_terrain', '$val','$id_adverse','0')";
else
$requete="INSERT INTO reservation(type, type_reservation, id_joueur, heure_resa_deb, heure_resa_fin, date_resa, id_reservable, validation,id_rubrique) VALUES('$type_resa', '$nom_resa', '$id_joueur_log', '$debut','$fin','$date', '$id_terrain', '$val','0')";
}
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$requete="SELECT nom,id_club FROM reservable WHERE id_reservable='$id_terrain'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$terrain=mysqli_fetch_object($reponse);
/* si le flag est à 0 */
/* l'administrateur doit autoriser la validation par mail */
if($flag<=0) {
/* Message d'information */
$message="L'administrateur doit autorisé votre réservation par e-mail car";
if($flag==-1) {
$message.=" vous avez dépassé le nombre de réservations en Loisir par jour autorisé.";
}
else if($flag==-2) {
$message.=" vous avez dépassé la durée autorisée d'une réservation en Loisir.";
}
else if($flag==-3) {
$message.=" vous avez dépassé la durée maximale autorisée pour une rencontre de championnat pour une journée.";
}
else if($flag==-4) {
$message.=" vous avez dépassé la durée maximale autorisée de réservations en Loisir pour une journée.";
}
else if($flag==-5) {
$message.=" vous avez dépassé le délai maximal en jour qui sépare deux réservations.";
}
else if($flag==-6) {
$message.=" vous n'avez pas effectuée votre réservation précédente.";
}
else if($flag==-7) {
$message.=" vous ne pouvez pas effectuer de réservations dans cette rubrique.";
}
$secondes=15;
if($flag<0) { $flag=0; }
$requete="SELECT MAX(id_reservation) FROM reservation";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$resa=mysqli_fetch_array($reponse);
$id_resa=$resa[0];
$lien_valide_resa="http://www.tyroltenn.net/valide_resa.php?id_resa=$id_resa&id_joueur=$id_joueur_log&club=$club";
$lien_annul_resa="http://www.tyroltenn.net/annul_resa.php?id_resa=$id_resa&id_joueur=$id_joueur_log&club=$club";
$requete="SELECT nom, prenom, e_mail, numero_fft FROM joueur WHERE id_joueur='$id_joueur_log'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$joueur=mysqli_fetch_object($reponse);
$requete="SELECT numero,type FROM telephone WHERE id_joueur='$id_joueur_log'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$tel=mysqli_fetch_object($reponse);
$requete="SELECT nom FROM reservable WHERE id_reservable='$id_terrain'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$nom_terrain=mysqli_fetch_object($reponse);
$texte="Bonjour, \n\n";
$texte.="Le joueur $joueur->prenom $joueur->nom souhaite reserver un cours dans votre club mais ne peut le faire car il a depasse son quota de reservation.\n";
$texte.="Le joueur souhaite reserver le terrain $nom_terrain->nom le $jour/$mois/$annee de $heure_debut:$min_debut a $heure_fin:$min_fin.\n\n";
if($joueur->e_mail!="") {
$texte.="Le joueur dispose d'une adresse e-mail : $joueur->e_mail.\n\n";
}
if($tel->type=='maison') {
$texte.="Voici le numero de telephone fixe du joueur : $tel->numero.\n\n";
}
if($tel->type=='portable') {
$texte.="Voici le numero de telephone portable du joueur : $tel->numero.\n\n";
}
$texte.="Voici le lien permettant de valider la reservation : \n\n$lien_valide_resa \n\net le lien permettant d'annuler la reservation :\n\n $lien_annul_resa.\n\n";
$texte.="Cordialement, \nLe webmaster Tyroltenn";
/* Recherche de l'e-mail de l'administrateur */
$requete="SELECT j.e_mail FROM compte c, joueur j WHERE c.id_club='$club' AND j.e_mail<>'' AND j.id_joueur=c.id_joueur AND c.droit='Administrateur'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$admin=mysqli_fetch_object($reponse);
$admin_email=$admin->e_mail;
/* envoi du mail */
$sujet="Depassement de reservation de $joueur->prenom $joueur->nom";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= "To: $admin_email\r\n";
$headers .= "From: tennis@airtria.fr\r\n";
mail($admin_email, $sujet, $texte, $headers);
$message.="L'administrateur doit autorisé votre réservation par e_mail car vous avez dépassé le quota de réservations de terrains pour cette journée.";
/* Message de Log */
$date_log=date("Y-m-d",time());
$heure_log=date("H:i:00",time());
$requete="SELECT MAX(id_reservation) FROM reservation";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$max_resa=mysqli_fetch_array($reponse);
/* Durée résa */
$debut_resa=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$fin_resa=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$duree=$fin_resa-$debut_resa;
$heure=$duree/3600;
$min=($duree-($heure*3600))/60;
if($min<10) { $min="0".$min; }
$duree_resa="$heure:$min";
/* Message de log de la forme Type message - joueur - durée - type_résa - message */
$requete="SELECT nom, prenom FROM joueur WHERE id_joueur='$id_joueur_log'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$joueur=mysqli_fetch_object($reponse);
if(is_numeric($type_resa)) {
$req="SELECT nom FROM rubriques_resa WHERE id_rubrique='$type_resa'";
$reponse=mysqli_query( $db_connection, $req) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$rubrique=mysqli_fetch_object($reponse);
$type_resa=$rubrique->nom;
}
$message_log="Creation - $joueur->nom $joueur->prenom - $jour/$mois/$annee - $terrain->nom - $heure_debut:$min_debut - $duree_resa - $type_resa - $nom_resa - Attente de la validation par un admin";
$requete="INSERT INTO log_reservation(date,heure,id_reservation,id_joueur,message,id_club) VALUES('$date_log','$heure_log','$max_resa[0]','$id_joueur_log','$message_log','$terrain->id_club')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
}
else {
$secondes=3;
$message.="La réservation a été prise en compte pour le terrain $terrain->nom.
";
/* Message de Log */
$date_log=date("Y-m-d",time());
$heure_log=date("H:i:00",time());
$requete="SELECT MAX(id_reservation) FROM reservation";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$max_resa=mysqli_fetch_array($reponse);
/* Durée résa */
$debut_resa=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$fin_resa=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$duree=$fin_resa-$debut_resa;
$heure=$duree/3600;
$min=($duree-($heure*3600))/60;
if($min<10) { $min="0".$min; }
$duree_resa="$heure:$min";
/* Message de log de la forme Type message - joueur - durée - type_résa - message */
$requete="SELECT nom, prenom FROM joueur WHERE id_joueur='$id_joueur_log'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$joueur=mysqli_fetch_object($reponse);
if(is_numeric($type_resa)) {
$req="SELECT nom FROM rubriques_resa WHERE id_rubrique='$type_resa'";
$reponse=mysqli_query($db_connection, $req) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$rubrique=mysqli_fetch_object($reponse);
$type_resa=$rubrique->nom;
}
$message_log="Creation - $joueur->nom $joueur->prenom - $jour/$mois/$annee - $terrain->nom - $heure_debut:$min_debut - $duree_resa - $type_resa - $nom_resa - Reservation enregistree";
$requete="INSERT INTO log_reservation(date,heure,id_reservation,id_joueur,message,id_club) VALUES('$date_log','$heure_log','$max_resa[0]','$id_joueur_log','$message_log','$terrain->id_club')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
}
}
/* Joueur principal */
/* Si le joueur est invité */
if($flag==1 and $invite_ok==1 and $compte_invite->solde > 0) {
/* Calcul de la durée de la réservation */
$horaire_debut=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$horaire_fin=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$diff=$horaire_fin-$horaire_debut;
$jetons=$diff/(3600); /* Nombre d'heures - 1 jeton par heure */
$solde_actuel=$compte_invite->solde;
$nouveau_solde=$solde_actuel-$jetons;
$cumul+=$jetons;
$requete="UPDATE compte SET solde='$nouveau_solde', cumul='$cumul' WHERE id_compte='$compte_invite->id_compte'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
}
/* Résa de type Invite, déduire un jeton sur le compte de l'adhérent */
else if($flag==1 and $type_resa=='Invite' and $compte_membre->solde > 0) {
/* Calcul de la durée de la réservation */
$horaire_debut=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$horaire_fin=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$diff=$horaire_fin-$horaire_debut;
$jetons=$diff/(3600); /* Nombre d'heures - 1 jeton par heure */
$solde_actuel=$compte_membre->solde;
$nouveau_solde=$solde_actuel-$jetons;
$cumul+=$jetons;
$requete="UPDATE compte SET solde='$nouveau_solde', cumul='$cumul' WHERE id_compte='$compte_membre->id_compte'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
}
/* Joueur adverse est-il invité ? */
if($flag==1 and $id_adverse != 0 and $id_adverse != 1693) {
/* COntrole si le joueur est invité dans le club */
$temp="Invité";
/* $temp="Invité";*/
$requete="SELECT solde, cumul, id_compte FROM compte WHERE id_joueur='$id_adverse' AND id_club='$club' AND statut='$temp'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$existe_invite=mysqli_num_rows($reponse);
if($existe_invite > 0) {
$compte_adverse_invite=mysqli_fetch_object($reponse);
$horaire_debut=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$horaire_fin=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$diff=$horaire_fin-$horaire_debut;
$jetons=$diff/(3600); /* Nombre d'heures - 1 jeton par heure */
$solde_actuel=$compte_adverse_invite->solde;
$nouveau_solde=$solde_actuel-$jetons;
$cumul+=$jetons;
$requete="UPDATE compte SET solde='$nouveau_solde', cumul='$cumul' WHERE id_compte='$compte_adverse_invite->id_compte'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
if($nouveau_solde <= 0) {
echo "Votre adversaire n'a plus de jetons. Il devra contacter le club pour recharger son compte.";
}
}
}
}
else if($invite_ok == 1 and $compte_invite->solde <= 0) {
echo "Vous n'avez plus de jetons disponibles pour cette réservation.
";
}
else if($type_resa=='Invite' and $compte_membre->solde <= 0) {
echo "Vous n'avez plus de jetons disponibles pour cette réservation.
";
}
}
else {
echo "
Vous ne pouvez pas effectuer plus de $resa_jour->nb_resa_loisir_jour réservations en Loisir par jour.";
}
}
}
}
/* Les horaires ne sont pas bons */
else if($horaires_ok==0) {
$message="Les horaires sont identiques ou l'horaire de fin se trouve avant l'horaire de début.";
}
else if($resa_ok == -1) {
$message="Vous devez avoir un adversaire obligatoire pour les réservations en Loisir !!
";
}
else if($resa_ok == -2) {
$message="Vous devez saisir un nom d'adversaire pour les réservations en mode Invité !!
";
}
else {
$message="Vous ne pouvez pas effectuer une réservation à une date et une heure dépassées.";
}
$requete="SELECT numero_fft FROM joueur WHERE id_joueur='$id_joueur_log'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
");
$joueur=mysqli_fetch_object($reponse);
/* Renvoi vers la page de réservation */
echo "";
echo "";
echo "";
echo "";
echo "Redirection";
echo "";
echo "";
echo $message."\n";
echo "Redirection automatique vers la page de réservartion
";
echo "";
}
}
else {
echo("Non autorisé - Redirection vers la page d'identification dans 2 secondes");
sleep(2);
redirection("consult_borne.php?id_club=$club");
}
/* fonction de controle de format de la licence FFT */
function verifierLicence($numero_fft){
$numero=0;
$res=1;
// controle de la licence si le numero de licence est valide (1234567K par ex,)
if(is_numeric($numero_fft[0])) {
for($i=0;$i<7;$i++){$numero=$numero+($numero_fft[$i]* pow (10,(6-$i)));}
$cle=$numero_fft[7];
$tab_lettres=array("A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z");
$mod=($numero % 23);
if ($mod==0){$mod=23;}
if(strtoupper($cle)!=$tab_lettres[$mod-1]){
$res=0;
}
}
else {
$res=0;
}
return $res;
}
/* Les horaires sont au format Unix timestamp) */
function controleHoraires($debut, $fin) {
$now=time();
if($debut < $now) {
$res=-1;
}
else if($fin<=$debut) {
$res=0;
}
else if($debut>$fin) {
$res=0;
}
else {
$res=1;
}
return $res;
}
/* Redirection vers la page indiquée en pâral */
function redirection($url) {
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "Redirection automatique en cours
";
echo "";
}
?>