ob_start();
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
require("../conf/sqlconf.php");
require("../conf/session.php"); // HTTP/1.0
sessionSecurityControl();
ob_end_flush();
// tests de cohérence
if (empty($id_tournoi))
{
$message = "Vous dévez renseigner le paramètre id_tournoi...";
}
$tournoi = new Tournoi;
if (empty($message) && !$tournoi->dbRead($id_tournoi))
{
$message = "Impossible de lire le tournoi $id_tournoi en base... ".mysql_error();
}
if (empty($message) && !$tournoi->participantExiste($membre_session->id_membre))
{
$message = "Vous pouvez soumettre des matchs seulement dans les tournois auxquels vous participez...";
}
if (empty($message) && time()>$tournoi->dt_fin_tournoi)
{
$message = "Impossible de soumettre un résultat car ce tournoi est terminé.";
}
if ($adminConfirm=='oui' && !empty($id_match))
{
if ($tournoi->id_membre_admin==$membre_session->id_membre)
{
$m = new Match($tournoi);
$m->dbRead($id_match);
$m->confirm_membre1 = 'oui';
$m->confirm_membre2 = 'oui';
$m->dbWrite($messageAvertissement);
$message = "Le résultat a été globalement confirmé";
}
else
{
$message = "Vous n'êtes pas administrateur du tournoi...";
}
}
else
{
// MODE MODIFICATION
if (!empty($id_match))
{
$m = new Match($tournoi);
$m->dbRead($id_match);
// On teste si le membre a fait ce match. Si ce n'est pas le cas, on interdit qu'il modifie ce match.
if ($m->membre1->id_membre!=$membre_session->id_membre && $m->membre2->id_membre!=$membre_session->id_membre)
{
$message = "Vous ne pouvez pas modifier ce match car vous n'y avez pas participé.";
}
else
{
// On teste si le membre a déjà confirmé. Si c'est le cas, on interdit qu'il modifie ce match.
if ( ($m->membre1->id_membre==$membre_session->id_membre && $m->confirm_membre1=='oui')
|| ($m->membre2->id_membre==$membre_session->id_membre && $m->confirm_membre2=='oui') )
{
$message = "Vous ne pouvez pas modifier ce match car vous l'avez confirmé.
Si votre adversaire ne l'a pas encore confirmé, il sera invité à le faire par mail et pourra effectuer une modification.";
}
else
{
// Gestion de la suppression du résultat
if (!empty($effacer))
{
if ($m->dbDelete())
{
$id_match = "";
$messageAvertissement = "Le résultat a été supprimé";
}
else
$messageAvertissement = "Une erreur est survenue lors de l'effacement";
}
// on écrit les modifications éventuelles en base
if (!empty($soumettre) || !empty($confirmer))
{
// cette variable stocke s'il y a eu une modification, car dans ce cas
// on demandera à l'adversaire de confirmer à nouveau le résulat du match
$modifications = false;
// échange éventuel des membres si changement entre aller et retour
if ( ($type_match=="aller" && $m->membre1->id_membre>$m->membre2->id_membre) ||
($type_match=="retour" && $m->membre1->id_membre<$m->membre2->id_membre) )
{
$modifications = true;
$m->echangeMembres();
}
// changement de l'adversaire
$membre = new Membre;
$membre->dbRead($adversaire);
if ($m->membre1->id_membre == $membre_session->id_membre)
{
if ($m->membre2->id_membre!=$adversaire)
$modifications = true;
$m->membre2 = $membre;
}
else
{
if ($m->membre1->id_membre!=$adversaire)
$modifications = true;
$m->membre1 = $membre;
}
// changement des données de score et de résultat
if (empty($score)) $score = "0";
if (empty($scoreAdversaire)) $scoreAdversaire = "0";
if ($m->membre1->id_membre==$membre_session->id_membre)
{
if ($m->resultat_membre1!=substr($resultat,0,1) ||
$m->resultat_membre2!=substr($resultat,1,1) ||
$m->score_membre1!=$score ||
$m->score_membre2!=$scoreAdversaire )
{
$modifications = true;
}
$m->resultat_membre1 = substr($resultat,0,1);
$m->resultat_membre2 = substr($resultat,1,1);
$m->score_membre1 = $score;
$m->score_membre2 = $scoreAdversaire;
if (!empty($confirmer))
{
$m->confirm_membre1 = 'oui';
$message = "Vous venez de confirmer le résultat.";
}
if ($modifications)
{
$m->confirm_membre2 = 'non';
$messageAvertissement = "Vous avez effectué des modifications sur ce match. Vous devez confirmer pour que votre adversaire soit invité à le faire à son tour.";
}
}
else
{
if ($m->resultat_membre2!=substr($resultat,0,1) ||
$m->resultat_membre1!=substr($resultat,1,1) ||
$m->score_membre2!=$score ||
$m->score_membre1!=$scoreAdversaire )
{
$modifications = true;
}
$m->resultat_membre2 = substr($resultat,0,1);
$m->resultat_membre1 = substr($resultat,1,1);
$m->score_membre2 = $score;
$m->score_membre1 = $scoreAdversaire;
if (!empty($confirmer))
{
$m->confirm_membre2 = 'oui';
$message = "Vous venez de confirmer le résultat.";
}
if ($modifications)
{
$m->confirm_membre1 = 'non';
$messageAvertissement = "Vous avez effectué des modifications sur ce match. Vous devez confirmer pour que votre adversaire soit invité à le faire à son tour.";
}
}
if (!$m->dbWrite($messageAvertissement))
$message = "";
}
else
{
// La personne n'a pas confirmé. Elle peut donc modifier ce match.
// On initialise les données pour initialisation du formulaire de modification.
if ($m->membre1->id_membre<$m->membre2->id_membre)
$type_match = "aller";
else
$type_match = "retour";
if ($m->membre1->id_membre==$membre_session->id_membre)
{
$resultat = $m->resultat_membre1.$m->resultat_membre2;
$score = $m->score_membre1;
$scoreAdversaire = $m->score_membre2;
}
else
{
$resultat = $m->resultat_membre2.$m->resultat_membre1;
$score = $m->score_membre2;
$scoreAdversaire = $m->score_membre1;
}
}
}
}
}
else
// MODE CREATION
{
if (!empty($soumettre) || !empty($confirmer))
{
$m = new Match($tournoi);
$mAdv = new Membre;
$mAdv->dbRead($adversaire);
// les matchs aller se reconnaissent par ce que l'identifiant du membre 1 est inférieur à l'identifiant du membre 2
if ( ($adversaire<$membre_session->id_membre && $type_match=="aller") ||
($adversaire>$membre_session->id_membre && $type_match=="retour") )
{
$m->membre1 = $mAdv;
$m->membre2 = $membre_session;
}
else
{
$m->membre2 = $mAdv;
$m->membre1 = $membre_session;
}
if (empty($score)) $score = "0";
if (empty($scoreAdversaire)) $scoreAdversaire = "0";
if ($m->membre1->id_membre==$membre_session->id_membre)
{
$m->resultat_membre1 = substr($resultat,0,1);
$m->resultat_membre2 = substr($resultat,1,1);
$m->score_membre1 = $score;
$m->score_membre2 = $scoreAdversaire;
if (!empty($confirmer))
{
$m->confirm_membre1 = 'oui';
$message = "Vous venez de confirmer le résultat.";
}
$m->confirm_membre2 = 'non';
$messageAvertissement = "Votre adversaire sera invité à confirmer ce résultat.";
}
else
{
$m->resultat_membre2 = substr($resultat,0,1);
$m->resultat_membre1 = substr($resultat,1,1);
$m->score_membre2 = $score;
$m->score_membre1 = $scoreAdversaire;
if (!empty($confirmer))
{
$m->confirm_membre2 = 'oui';
$message = "Vous venez de confirmer le résultat.";
$messageAvertissement = "Votre adversaire sera invité par mail à faire de même.";
}
else
$messageAvertissement = "Le résultat a été créé. Vous devez le confirmer pour que votre adversaire soit prévenu par mail de sa saisi.";
$m->confirm_membre1 = 'non';
}
if ($m->dbWrite($messageAvertissement))
$id_match = $m->id_match;
else
$message = "";
}
}
}
?>
print("$messageAvertissement"); ?>
} ?> if (!empty($message)) { ?>print("$message"); ?>
} else { ?> } if ($tournoi->id_membre_admin==$membre_session->id_membre && !empty($id_match)) { ?>En tant qu'administrateur du tournoi vous pouvez &id_match= print("$id_match"); ?>';">
} ?>">Soumettre un nouveau résultat
} } ?>