From fa971dc6a0d6811ac0ddf96dbcd416be3175efc7 Mon Sep 17 00:00:00 2001 From: Daniel Tartavel Date: Sun, 24 Nov 2019 21:57:36 +0100 Subject: [PATCH] premier commit --- atelier.kdev4 | 3 + atelier.php | 7 ++ config.inc.php | 14 ++++ include/db.class.php | 62 ++++++++++++++++ include/entete_mail.php | 7 ++ include/log.php | 155 ++++++++++++++++++++++++++++++++++++++++ include/recap.php | 66 +++++++++++++++++ session_init.php | 6 ++ 8 files changed, 320 insertions(+) create mode 100644 atelier.kdev4 create mode 100644 atelier.php create mode 100755 config.inc.php create mode 100644 include/db.class.php create mode 100644 include/entete_mail.php create mode 100644 include/log.php create mode 100644 include/recap.php create mode 100644 session_init.php diff --git a/atelier.kdev4 b/atelier.kdev4 new file mode 100644 index 0000000..50ead2c --- /dev/null +++ b/atelier.kdev4 @@ -0,0 +1,3 @@ +[Project] +Name=atelier +Manager=KDevGenericManager diff --git a/atelier.php b/atelier.php new file mode 100644 index 0000000..d588613 --- /dev/null +++ b/atelier.php @@ -0,0 +1,7 @@ + diff --git a/config.inc.php b/config.inc.php new file mode 100755 index 0000000..ad6a62c --- /dev/null +++ b/config.inc.php @@ -0,0 +1,14 @@ + + diff --git a/include/db.class.php b/include/db.class.php new file mode 100644 index 0000000..2271e8b --- /dev/null +++ b/include/db.class.php @@ -0,0 +1,62 @@ +database = $database; + $this->open(); + } + + + function open() + { + if ( ! $this->connect ) + { + $this->connect = new mysqli( $this->server, $this->user, $this->passwd, $this->database ); + if ( $this->connect->connect_errno ) + { + log_error( "Échec de la connexion : " . " => " . $this->connect->connect_error . "
" . __file__ . esp( 'ligne' ) . __line__, false, true); + return false; + } + } + return true; + } + + function close() + { + $this->connect->close(); + $this->connect = 0; + } + + function query( $string ) + { + if ( empty( $this->connect ) ) $this->open(); + + $this->result = $this->connect->query( $string ) ; + if ( $this->connect->error ) log_error( "Échec de la commande query" . " => ". $this->connect->error . "
" . __file__ . esp( 'ligne' ) . __line__ . "\n" . $string, false, true ); + } + + function error() + { + print_r( $this ); + $this->error = $this->error; + return $this->error; + } +} + +?> diff --git a/include/entete_mail.php b/include/entete_mail.php new file mode 100644 index 0000000..d640173 --- /dev/null +++ b/include/entete_mail.php @@ -0,0 +1,7 @@ + diff --git a/include/log.php b/include/log.php new file mode 100644 index 0000000..3eefdbe --- /dev/null +++ b/include/log.php @@ -0,0 +1,155 @@ + INFO, ALERT, ERROR +function log_write($log, $level=INFO) +{ + global $table_prefix, $webmaster, $headers; + $user = ( !empty( $_SERVER["PHP_AUTH_USER"])?$_SERVER["PHP_AUTH_USER"]:'' ); + $log_mail = str_replace ( "
", "\n", $log ) . "\n"; + $log_mail .= ( !empty( $_SERVER["REQUEST_METHOD"])?'$_SERVER["REQUEST_METHOD"]' . $_SERVER["REQUEST_METHOD"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["QUERY_STRING"])?'$_SERVER["QUERY_STRING"]' . $_SERVER["QUERY_STRING"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["HTTP_ACCEPT_LANGUAGE"])?'$_SERVER["HTTP_ACCEPT_LANGUAGE"]' . $_SERVER["HTTP_ACCEPT_LANGUAGE"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["HTTP_USER_AGENT"])?'$_SERVER["HTTP_USER_AGENT"]' . $_SERVER["HTTP_USER_AGENT"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["REMOTE_ADDR"])?'$_SERVER["REMOTE_ADDR"]' . $_SERVER["REMOTE_ADDR"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["REMOTE_HOST"])?'$_SERVER["REMOTE_HOST"]' . $_SERVER["REMOTE_HOST"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["REMOTE_USER"])?'$_SERVER["REMOTE_USER"]' . $_SERVER["REMOTE_USER"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["REQUEST_URI"])?'$_SERVER["REQUEST_URI"]' . $_SERVER["REQUEST_URI"] . "\n":'' ); + $log_mail .= "Utilisateur: $user \n"; + $log_mail .= ( !empty( $_SERVER["ORIG_PATH_INFO"])?'$_SERVER["ORIG_PATH_INFO"]' . $_SERVER["ORIG_PATH_INFO"] . "\n":'' ); + $log_mail .= ( !empty( $_SERVER["PATH_INFO"])?'$_SERVER["PATH_INFO"]' . $_SERVER["PATH_INFO"] . "\n":'' ); + $db1 = new db('log'); + $db1->open(); + if( !empty( $db1->connect ) ) + { + $query = 'INSERT INTO ' . $table_prefix . 'logs SET date=NOW(), auteur="' . $db1->protect( $user ) . '", log="' . $db1->protect($log) . '", niveau="' . $level . '"'; + $db1->query( $query ); + if ( !$db1->result ) + { + $text = $db1->error() . "\n\n" . $log_mail; + mail( $webmaster, "Erreur écriture logs => " . __file__ . " ligne " . __line__, $text, $headers ); + } + $db1->close(); + }else + { + echo $db1->error(); + mail( $webmaster, "Erreur écriture logs => " . __file__ . " ligne " . __line__ , $log_mail, $headers ); + } + if ( $level == ALERT ) + { + mail( $webmaster, "Alerte Site Web", $log_mail, $headers ); + }elseif ( $level == ERROR ) + { + mail( $webmaster, "Erreur Site Web", $log_mail, $headers ); + } +} + +// $db = true -> écrire les logs dans la base (défaut) +// $die = true -> execute die() +function log_error($log, $w_db=true, $die=false) +{ + global $webmaster, $headers, $accueil, $db; + if ( $w_db ) log_write($log, ERROR); + echo "$log
\n"; + $log_err = 'erreur dans la requête
un rapport détaillé a été envoyé au webmaster'; + if ( $die ) + { + echo "\n"; + die( $log_err ); + }else + { + $_SESSION['error'] = $log_err; + //header( 'Location: ' . $accueil ); + } +} + +function affich_log( $nl, $np = 1, $level=INFO ) +{ + global $table_prefix, $webmaster, $headers, $base_url , $path , $page; + if( !empty( $db->open() ) ) + { + $level_s = array( "aucune" , "info" , "alerte" , "erreur" ); + $query = 'SELECT * FROM ' . $table_prefix . 'logs'; + if ( $level != 0 ) + { + $query .= " WHERE niveau='" . $level . "'"; + } + $db->query($query) OR log_error($db->error() . "
" . __file__ . " ligne " . __line__ ); + $total_lignes = $db->result->num_rows(); + if ($total_lignes != 0 ) + { + + $n_pages = round( $total_lignes / $nl ) +1; + + if ( $np == 0 ) + { + $np = 1; + }elseif ( $np > $n_pages ) + { + $np = $n_pages; + } + echo ''; + if ( $np > 1 ) + { + echo '"; + if ( $np < $n_pages ) + { + echo ''; + } + echo "\n"; + $query = 'SELECT * FROM ' . $table_prefix . 'logs'; + if ( $level != 0 ) + { + $query .= " WHERE niveau='" . $level . "'"; + } + + $query .= ' ORDER BY date DESC LIMIT ' . ( ( ( $np - 1 ) * $nl ) ) . ',' . $nl; + $db->query( $query ) OR log_error( $db->error( ) . "
" . __file__ . " ligne " . __line__ ); + echo "
Page précédente'; + } + echo "\n" . '
'; + echo 'Page n° '; + echo "
\n
Page suivante" . '
'; + echo "niveau de log" . ' '; + echo "
\n
\n"; + while ( $db->connect->mysqli_fetch_array( $db->result ) ) + { + $niveau = $donnees["niveau"]; + echo "\n"; + } + echo "
dateauteurlogniveau
" . $donnees["date"] . "" . $donnees["auteur"] . "" . $donnees["log"] . "" . $level_s[ $niveau ] . "
\n"; + }else + { + "aucune réponse"; + } + } +} +?> diff --git a/include/recap.php b/include/recap.php new file mode 100644 index 0000000..f0b3db7 --- /dev/null +++ b/include/recap.php @@ -0,0 +1,66 @@ +query($query); + while( $sondage = $db->result->fetch_array() ) + { + // tri des résultats des sondages + //print_r($sondage); + $tab =array(); + $nom_atelier = explode( ",", $sondage["sujet"] ); + $query = "SELECT * FROM llx_opensurvey_user_studs WHERE id_sondage='" . $sondage["id_sondage"] . "'"; + $id = $sondage["id_sondage"]; + $db2->query($query); + while( $reponse = $db2->result->fetch_array() ) + { + + $r = str_split( $reponse["reponses"] ); + $l = count( $r ); + for ($x=0; $x<$l; $x++) + { + if ( !isset($tab[$x]) ) + { + $tab[$x] = 0; + } + $tab[$x] += $r[$x]; + } + } + $resultat[$id]["titre"] = $sondage["titre"] . "\n"; + $resultat[$id]["nom_atelier"] = $nom_atelier; + arsort($tab); + $x = 0; + $resultat[$id]["reponse"][$x] = key($tab); + $value = current($tab); + echo $resultat[$id]["titre"]; + while ($r = next($tab)) + { + echo $value . "====>>>" . $r . "\n"; + if ( ($r == $value) ) + { + $x++; + $resultat[$id]["reponse"][$x] = key($tab); + }else + { + break; + } + + } + } + print_r($resultat); + + foreach( $resultat as $resume) + { + echo $resume["titre"] . "\n"; + foreach( $resume["reponse"] as $atelier ) + { + echo "\t" . strstr( $resume["nom_atelier"][$atelier] ) . "\n"; + } + + } +} +?> diff --git a/session_init.php b/session_init.php new file mode 100644 index 0000000..3aee0d1 --- /dev/null +++ b/session_init.php @@ -0,0 +1,6 @@ +