File "inserer_partie.php"
Full Path: /home/analogde/www/copy/inserer_partie.php
File size: 24.33 KB
MIME-type: text/x-php
Charset: utf-8
<?php
//session_start();
//include('correlation.php'); // nouveau
include('chessmaster.php'); // nouveau
include('database.php');
DB_connexion();
if(!isset($_SESSION['logged']) )
{
header ('Location: interdiction.php');
}
if($_SESSION['logged']== "no")
{
header ('Location: interdiction.php');
}
if(!empty($_POST) )
{
$_SESSION['sauvegarde_formulaire'] = $_POST ;
$page_actuelle = $_SERVER['PHP_SELF'] ;
if(!empty($_SERVER['QUERY_STRING']))
{
$page_actuelle .= '?' . $_SERVER['QUERY_STRING'] ;
}
header('Location: ' . $page_actuelle);
exit;
}
if(isset($_SESSION['sauvegarde_formulaire']))
{
$_POST = $_SESSION['sauvegarde_formulaire'] ;
unset($_SESSION['sauvegarde_formulaire']);
}
if( isset($_POST['valide_form']) && $_POST['valide_form'] == "ok" )
{
//echo $_POST['selection_score'];
$flag_validation = false;
switch ($_POST['selection_score'])
{
case "Blanc gagne":
$score_blanc = "1";
$score_noir = "0";
$flag_validation = true;
break;
case "Blanc perd":
$score_blanc = "0";
$score_noir = "1";
$flag_validation = true;
break;
case "Noir gagne":
$score_blanc = "0";
$score_noir = "1";
$flag_validation = true;
break;
case "Noir perd":
$score_blanc = "1";
$score_noir = "0";
$flag_validation = true;
break;
case "Match nul":
$score_blanc = "0.5";
$score_noir = "0.5";
$flag_validation = true;
break;
}
if($flag_validation == true)
{
$jour = $_POST['jour'];
$mois = $_POST['mois'];
$annee = $_POST['annee'];
$tab_associatif = array();
$tab_associatif ['Janvier']='1';
$tab_associatif ['Février']='2';
$tab_associatif ['Mars']='3';
$tab_associatif ['Avril']='4';
$tab_associatif ['Mai']='5';
$tab_associatif ['Juin']='6';
$tab_associatif ['Juillet']='7';
$tab_associatif ['Aôut']='8';
$tab_associatif ['Septembre']='9';
$tab_associatif ['Octobre']='10';
$tab_associatif ['Novembre']='11';
$tab_associatif ['Décembre']='12';
$mois = $tab_associatif[$mois];
if(strlen($jour) == 1);
{
$jour = '0' .$jour;
}
if(strlen($mois) == 1);
{
$mois = '0' .$mois;
}
$date_format = $jour ."-" .$mois ."-" .$annee;
if(check_date($date_format) == "Erreur")
{
$message = '<div id="message_traitement" style="display:block">Date non valide.</div>';
}
else
{
$timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
echo $_POST['date_reference'];
echo $_POST['option_date'];
if($_POST['option_date'] == "avant")
{
echo $timestamp ." **** " .$_POST['date_reference'];
if($timestamp <= $_POST['date_reference'])
{
$plage_date = "Ok";
}
else
{
$plage_date = "Erreur_avant";
}
}
if($_POST['option_date'] == "apres")
{
echo $timestamp ." **** " .$_POST['date_reference'];
if($timestamp >= $_POST['date_reference'])
{
$plage_date = "Ok";
}
else
{
$plage_date = "Erreur_apres";
}
}
echo "Plage Date " .$plage_date;
if($plage_date == "Ok")
{
$donnees = array();
$donnees[0] = $jour ."/" .$mois ."/" .$annee;
$donnees[1] = $_POST['J1'];
$donnees[2] = $_POST['J2'];
$donnees[3] = $score_blanc;
$donnees[4] = $score_noir;
// print_r($donnees);
//$sql = "SELECT * FROM parties ORDER by date asc";
$sql = "SELECT * FROM " .$_SESSION['parties'] ." ORDER by date asc";
$results = mysql_query($sql);
$nb_parties = mysql_num_rows($results);
while($row = mysql_fetch_assoc($results))
{
$blanc = $row['w_name'];
$noir = $row['b_name'];
$date = $row['date'];
$resultat = $row['result'];
$date_partie = date('d/m/Y', $date);
if($resultat == 1)
{
$_score_blanc = 1;
$_score_noir = 0;
}
if($resultat == 2)
{
$_score_blanc = 0;
$_score_noir = 1;
}
if($resultat == 3)
{
$_score_blanc = 0.5;
$_score_noir = 0.5;
}
$table_csv[0] = $date_partie;
$table_csv[1] = $blanc;
$table_csv[2] = $noir;
$table_csv[3] = $_score_blanc;
$table_csv[4] = $_score_noir;
$table_fichier[] = $table_csv;
}
$nom_fichier = "sauvegarde_insertion.txt";
$fp = fopen($nom_fichier, 'w');
for ($i=0; $i < $nb_parties; $i++)
{
$str_comma_separated = implode(";", $table_fichier[$i]);
fputs ($fp, $str_comma_separated);
if($i != $nb_parties - 1)
fputs($fp, "\n");
}
fclose($fp);
// creation du fichier modifie
$nom_fichier = "new_insertion.txt";
if($_POST['option_date'] == "avant")
{
$id_position = $_POST['id_partie'] -1;
}
if($_POST['option_date'] == "apres")
{
$id_position = $_POST['id_partie'] ;
}
$tab1 = array();
$tab2 = array();
$fp = fopen($nom_fichier, 'w');
for ($i=0; $i <= $id_position - 1; $i++)
{
$tab1[] = $table_fichier[$i];
}
$table[] = $donnees;
for ($i=$id_position ; $i < $nb_parties; $i++)
{
$tab2[] = $table_fichier[$i];
}
$tab_global = array_merge($tab1,$table,$tab2);
$fp = fopen($nom_fichier, 'w');
for ($i=0; $i < count($tab_global); $i++)
{
$str_comma_separated = implode(";", $tab_global[$i]);
fputs ($fp, $str_comma_separated);
if($i != count($tab_global) - 1)
{
fputs($fp, "\n");
}
}
fclose($fp);
// joueur
$joueur = array();
//$sql = "SELECT * FROM classement ORDER by joueur asc";
$sql = "SELECT * FROM " .$_SESSION['classement'] ." ORDER by joueur asc";
$results = mysql_query($sql);
while($row = mysql_fetch_assoc($results))
{
$joueur[] = $row['joueur'];
}
// regenerer le classement
//mysql_query('TRUNCATE TABLE classement;');
//mysql_query('TRUNCATE TABLE evolution;');
//mysql_query('TRUNCATE TABLE parties;');
$str1 = "TRUNCATE TABLE " .$_SESSION['classement'];
$str2 = "TRUNCATE TABLE " .$_SESSION['evolution'];
$str3 = "TRUNCATE TABLE " .$_SESSION['parties'];
$str4 = "TRUNCATE TABLE " .$_SESSION['chessmaster']; // nouveau
// pourquoi la table chessmaster n'est pas mise à jour ??????
mysql_query($str1);
mysql_query($str2);
mysql_query($str3);
mysql_query($str4);
stockage_joueurs_DB($joueur);
$file = fopen ("new_insertion.txt","r");
$indice = 1;
while(! feof($file))
{
$tmp = fgets($file);
$tmp = strtolower($tmp);
//echo $tmp ."<BR>";
//$tmp = str_to_noaccent($tmp);
$pieces = explode(";", $tmp);
$donnees[0] = $pieces[0];
list($jour, $mois, $annee) = explode('/', $donnees[0]);
$timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
$donnees[0] = $timestamp;
$donnees[1] = $pieces[1];
$donnees[2] = $pieces[2];
$donnees[3] = $pieces[3];
$donnees[4] = $pieces[4];
algo_elo($donnees, "nostatistique", "sql", $indice );
$indice = $indice + 1;
// nouveau
chess_master($donnees,$indice);
}
echo "<br><br><br>";
echo "Base modifiée: " .$_POST['J1'] ." ".$_POST['J2'] ." " .$score_blanc ." - " .$score_noir;
$message = '<div id="message_traitement" style="display:block">Partie insérée dans la database.</div>';
}
else
{
$message = '<div id="message_traitement" style="display:block">Date non valide dans la plage définie !.</div>';
}
}
}
else
{
$message = '<div id="message_traitement" style="display:block">Erreur dans le traitement.</div>';
}
}
function check_date($data)
{
if (date('d-m-Y', strtotime($data)) == $data)
{
return "OK";
}
else
{
return "Erreur";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Description" content="Site perso,cours,ouvrages" />
<meta name="Keywords" content="WEBSITE perso " />
<meta name="Distribution" content="Global" />
<meta name="Robots" content="" />
<meta http-equiv="Content-Language" content="fr" />
<meta name="rating" content="general" />
<meta name="author" content="Patrice DELPY" />
<meta name="copyright" content="Copyright 2013" />
<meta name="generator" content="Patoche" />
<title>Patoche WEBSITE - 2013 - Template du site - en cours de développemment ...</title>
<META http-equiv="Cache-Control" content="no-cache">
<!--
en php
header("Cache-Control: no-cache, must-revalidate");
-->
<!---------------------------------------------------------->
<?php
include('include_css_template_commun.php');
include('include_css.php');
include('css_tools_skill.php');
include('include_javascript.php');
?>
<!--
<link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
-->
<link rel="stylesheet" href="//code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js"></script>
<style type="text/css">
#bloc_table_forum { float: left;
width: 831px;
padding: 50px 50px 25px 50px;
}
#navigation_tournoi{
float: left;
width: 910px; // 870
padding: 10px 0px 0px 10px;
}
.marge {
margin: auto;
width: 60%;
padding: 10px ;
}
label
{
display:block;
float:left;
width:100px;
}
</style>
<script type="text/javascript">
function call_update()
{
//ajax_routine();
scruter();
setTimeout("call_update()", 1000); //appelle la fonction 1 fois par seconde
}
function scruter()
{
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
//alert(xhr.responseText);
retour = xhr.responseText
if(retour == 0)
{
$(function()
{
$( "#message_expiration" ).dialog({
modal: true,
title: "Infos",
buttons: {
Ok: function()
{
$( this ).dialog( "close" );
document.location.href = "logout_expire.php";
}
}
});
});
}
}
}
xhr.open("GET","session_timeout.php",true);
xhr.send(null);
}
function active()
{
document.getElementById("score").style.visibility='visible';
document.getElementById('valide_form').value="ok";
}
function active_sauver()
{
document.getElementById('send').disabled = false;
}
function check_date()
{
document.getElementById("joueur1").style.visibility='visible';
}
function getXhr()
{
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject)
{ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
function go()
{
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
document.getElementById("souscategorie").style.visibility='visible';
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('souscategorie').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax_joueur.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de Catégorie
sel = document.getElementById('J1');
idcategorie = sel.options[sel.selectedIndex].value;
xhr.send("idcategorie="+idcategorie);
}
function bascule(val)
{
document.getElementById('option_date').value = val;
//alert(val)
}
function start()
{
document.getElementById("message_patience").style.display='block';
var xhr = getXhr();
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
retour = xhr.responseText;
document.getElementById("message_patience").style.display='none';
document.getElementById('message').innerHTML = retour;
//affiche = "La nouvelle partie a été enregistrée dans la base.";
/*$(function()
{
$( "#message_ajout" ).dialog({
modal: true,
title: "Infos",
buttons: {
Ok: function()
{
$( this ).dialog( "close" );
window.location.reload();
}
}
});
});*/
}
}
xhr.open("POST","traitement_inserer_partie.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
jour = document.getElementById('jour').value;
mois = document.getElementById('mois').value;
annee = document.getElementById('annee').value;
sel = document.getElementById('J1');
J1 = sel.options[sel.selectedIndex].value;
sel = document.getElementById('J2');
J2 = sel.options[sel.selectedIndex].value;
sel = document.getElementById('selection_score');
selection_score = sel.options[sel.selectedIndex].value;
option_date = document.getElementById('option_date').value
id_partie = document.getElementById('id_partie').value
date_reference = document.getElementById('date_reference').value
//alert(jour+mois+annee+J1+J2+selection_score+etat_checkbox+id_partie+date_reference);
//alert(date_reference);
//11 fevrier 2015
//1423612800
//1423695600
// partie 345 1 mai 2015
//xhr.send("J1="+J1+"&J2="+J2+"&jour="+jour+"&mois="+mois+"&annee="+annee+"&selection_date="+selection_date+"&selection_score="+selection_score);
xhr.send("J1="+J1+"&J2="+J2+"&jour="+jour+"&mois="+mois+"&annee="+annee+"&selection_score="+selection_score+"&option_date="+option_date+"&id_partie="+id_partie+"&date_reference="+date_reference);
}
function starting()
{
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
document.getElementById("probabilite").style.visibility='visible';
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('probabilite').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
//xhr.open("POST","ajax_probabilite.php",true);
xhr.open("POST","echec03.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de Catégorie
sel = document.getElementById('J1');
J1 = sel.options[sel.selectedIndex].value;
sel = document.getElementById('J2');
J2 = sel.options[sel.selectedIndex].value;
xhr.send("J1="+J1+"&J2="+J2);
}
</script>
<!---------------------------------------------------------->
</head>
<body>
<!---------------------------------------------------------->
<div class="main"> <!-- main -->
<!---------------------------------------------------------->
<div class="header">
<div class="balise_titre">Patoche</div>
<div class="balise_citation">
"Etre conscient que l'on est ignorant est un grand pas vers le savoir"
</div>
</div>
<div class="banniere"></div>
<!---------------------------------------------------------->
<?php
/* include("include_barre_login.php");
echo '<div id="box_icon">';
include("debug_connexion_membre.php");
echo '</div>';
include("include_menu.php");*/
echo '<div id="box_infos">';
include("include_menu.php");
echo '<div id="box_icon2">';
include("connexion_membre.php");
echo '</div>';
echo '<div id="box_icon3">';
include("include_barre_login.php");
echo '</div>';
echo '</div>';
$_SESSION['page_active'] = basename (__FILE__ );
?>
<!---------------------------------------------------------->
<div class="contenu"> <!-- contenu -->
<!---------------------------------------------------------->
<div class="barre_vide"></div>
<div id="navigation_tournoi">
<ul id="menu_horiz">
<li class="tournoi_partie_tag"><a href="partie.php" title="aller à la section">Duel</a></li>
<li class="tournoi_simulation_tag"><a href="simulation.php" title="aller à la section">Sim</a></li>
<li class="tournoi_classement_tag"><a href="classement02.php" title="aller à la section">ELO</a></li>
<li class="tournoi_master_tag"><a href="on_chess_master02.php" title="aller à la section">Master</a></li>
<li class="tournoi_liste_joueurs_tag"><a href="joueurs_echec.php" title="aller à la section">Players</a></li>
<li class="tournoi_stats_tag_selected"><a href="historique.php" title="aller à la section">Games</a></li>
<li class="tournoi_reglement_tag"><a href="reglement.php" title="aller à la section">Rules</a></li>
<li class="tournoi_securite_tag"><a href="admin.php" title="aller à la section">Admin</a></li>
</ul>
</div>
<?php
$id_partie = $_GET["id"] + 1;
$J1 = $_GET["J1"] ;
$J2 = $_GET["J2"] ;
$score = $_GET["score"] ;
$date_partie = $_GET["date"] ;
list($jour, $mois, $annee) = explode('/', $date_partie);
$date_reference = mktime (0, 0, 0, $mois, $jour, $annee);
?>
<div id="bloc_table_forum">
<!-- <form method="post" id="form_selection_joueurs" action="inserer_partie.php" > <!-- onsubmit="return valider_inscription(this)" -->
<input type="hidden" name="valide_form" id="valide_form" value="" />
<input type="hidden" name="id_partie" id="id_partie" value="<?php echo $id_partie ?>" />
<input type="hidden" name="date_reference" id="date_reference" value="<?php echo $date_reference ?>" />
<input type="hidden" name="option_date" id="option_date" value="avant" />
<fieldset style="width: 600px">
<legend>Insérer une partie </legend>
<p>
<?php
echo "Référence : " .$J1 ." contre " .$J2 ." " .$score ." le " .$date_partie;
?>
</p>
<p>
<input type="radio" name="option_date" id="option_date" value="avant" onclick="bascule('avant')" checked> Avant
<input type="radio" name="option_date" id="option_date" value="apres" onclick="bascule('apres')"> Aprés
</p>
<p>
<div class="center">
<label>Date: </label>
<select name="jour" id="jour">
<?php
for ($i = 1; $i <= 31; $i++)
{
echo "<option>$i</option>\n";
}
?>
</select>
<select name="mois" id="mois">
<?php
echo "<option>Janvier</option>";
echo "<option>Février</option>";
echo "<option>Mars</option>";
echo "<option>Avril</option>";
echo "<option>Mai</option>";
echo "<option>Juin</option>";
echo "<option>Juillet</option>";
echo "<option>Aôut</option>";
echo "<option>Septembre</option>";
echo "<option>Octobre</option>";
echo "<option>Novembre</option>";
echo "<option>Décembre</option>";
?>
</select>
<select name="annee" id="annee" onchange='check_date()'>
<?php
for ($i = 2022; $i <= 2025; $i++)
{
echo "<option>$i</option>";
}
?>
</select>
</div>
</p>
<div id='message'></div>
<div id='joueur1' style="visibility: hidden;" >
<div class="center">
<label>Blanc: </label>
<select style="width:200px" name='J1' id='J1' onchange='go()'>
<option value="vide">- - - Choisissez le Joueur 1 - - -</option>
<?php
//$sql = "SELECT * FROM classement";
$sql = "SELECT * FROM " .$_SESSION['classement'];
$res = mysql_query($sql);
while($val = mysql_fetch_array($res))
{
echo "<option>".$val["joueur"]."</option>\n";
}
?>
</select>
</div>
</div>
<p>
<div id='souscategorie' style="visibility: hidden;" > <!-- style='display:inline' -->
<div class="center">
</br>
<label>Noir: </label>
<select style="width:200px" name='J2' id='J2' "> <!-- -->
</select>
</div>
</div>
</p>
<p>
<div id="score" style="visibility: hidden; ">
<label>Résultat :</label>
<select style="width:200px" name="selection_score" id="selection_score" size="1" style='display:inline' onchange='active_sauver()' >
<option value="vide">- - - Resultat de la partie - - -</option>
<?php
$J1_nom = $_SESSION['$J1_nom'];
$J2_nom = $_SESSION['$J2_nom'];
echo '<option>Blanc gagne</option>';
echo '<option>Blanc perd</option>';
echo '<option>Noir gagne</option>';
echo '<option>Noir perd</option>';
echo '<option>Match nul</option>';
?>
</select>
</div>
</p>
<br/>
<div>
<input id="send" name="send" type="submit" disabled value="Enregistrer" onclick="start()" />
</div>
<br>
<br>
<div id='message_patience' style="display: none">
<img src="loader.gif" name = "image" id="image"> Traitement en cours ...
</div>
<div id="message_ajout" style="display: none">
<p>
<span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
La partie a été ajoutée à la base.
</p>
</div>
<div id="message_expiration" style="display: none">
<p>
<span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
La session a expirée. veuillez vous reconnecter.
</p>
</div>
<div id="message"></div>
<?php
if($_SESSION['message'] == "ok")
{ //echo '<div id="message_traitement" style="display:block">Partie sauvée dans la database.</div>';
echo $message;
$_SESSION['message'] = "none";
}
?>
</fieldset>
<!-- </form> -->
</div>
<br/>
<br/>
<br/>
<br/>
<br/>
<!---------------------------------------------------------->
<?php
include('include_pied_page.php');
include('include_publicite.php');
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
?>
<!---------------------------------------------------------->
</div> <!-- contenu -->
<!---------------------------------------------------------->
</div> <!-- main -->
<!---------------------------------------------------------->
<script type="text/javascript">
call_update();
</script>
</body>
</html>