MOD Passage de MySQL à un vrai SGBDR : PostgreSQL
[cl7.git] / php / connexion.php
index 0701270..49c68a1 100644 (file)
@@ -1,39 +1,78 @@
-<?php\r
-/*\r
- * Connexion à la base de donnée + résolutiondu participant.\r
- * Produit une variable globale nommée '$le_participant'.\r
- */
-\r
-include_once("config_bd.php");
-include_once("class_participant.php");\r
+<?php # coding: utf-8
 
-$lien_mysql = mysql_connect($SQL_HOTE, $SQL_LOGIN, $SQL_PASS);
-mysql_select_db($NOM_BASE);\r
-mysql_set_charset("UTF8");\r
-mysql_query('SET AUTOCOMMIT=0');
+include_once("participant.php");
 
-if (isset($_POST['effacer_cookie'])) # le membre se délogue
+/*
+ * Connexion à la base de données et création du participant courant.
+ */
+class Connexion
 {
-   setcookie("COOKIE_INFO_PATICIPANT", "", time() - 100); # 'efface' le cookie membre
-   unset($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"]);
-       unset($log);
-}
+   # Message à destination de l'utilisateur, par exemple pour lui indiquer une erreur.
+   public $message_utilisateur = NULL;
 
-if (isset($_POST['log'])) # le membre se logue
-{              
-   $le_participant = new Participant($_POST['pseudo'], $_POST['password']);
-   if ($le_participant->valide)
+   public $participant;
+   
+   function Connexion()
    {
-      setcookie ("COOKIE_INFO_PATICIPANT", $le_participant->info->id, time() + 31104000);              
+      if (!file_exists("php/config_bd.php"))
+      {
+         echo "Le fichier 'php/config_bd.php' n'existe pas, création en cours...\n";
+         if (!is_writable("."))
+         {
+           echo "Le dossier 'php' n'est pas accessible en écriture, veuillez changer les droits et recommencer.";
+           exit();
+         }
+         $f = fopen("php/config_bd.php", "w");
+         fwrite($f, '<?php # encoding:utf-8
+            # Parametres de connexion à la BD
+            $SQL_HOTE = "localhost";
+            $SQL_LOGIN = "";
+            $SQL_PASS = "";
+            $NOM_BASE = "corcelles_lan_7";?>'
+         );
+         fclose($f);
+         echo "Le fichier a été créé, veuillez le compléter et recommencer.";
+         exit();
+      }
+      
+      include_once("config_bd.php");
+      
+      $conn_bd = pg_connect(sprintf("host=%s dbname=%s user=%s password=%s", $SQL_HOTE, $NOM_BASE, $SQL_LOGIN, $SQL_PASS));
+      if (!$conn_bd)
+      {
+        echo "Connexion à la base de données impossible. Voir le fichier 'php/config_bd.php'";
+        exit();
+      }
+
+      //mysql_set_charset("UTF8");
+      //mysql_query('SET AUTOCOMMIT=0');
+
+      if (isset($_POST['effacer_cookie'])) # le membre se délogue
+      {
+         setcookie("COOKIE_INFO_PARTICIPANT", "", time() - 100); # 'efface' le cookie membre
+         unset($_COOKIE["COOKIE_INFO_PARTICIPANT"]);
+      }
+
+      if (isset($_POST['log'])) # le membre se logue
+      {
+         $this->participant = new Participant($_POST['pseudo'], $_POST['password']);
+         if ($this->participant->valide)
+         {
+            setcookie("COOKIE_INFO_PARTICIPANT", $this->participant->info->id, time() + 31104000);
+            $this->message_utilisateur = "Loggation ok";
+         }
+         else
+            $this->message_utilisateur = "Erreur de loggation";
+      }
+      else if (isset($_COOKIE["COOKIE_INFO_PARTICIPANT"])) # le cookie existe deja chez le participant
+      {
+         $this->participant = new Participant($_COOKIE["COOKIE_INFO_PARTICIPANT"]);
+      }
+      else
+      {
+         $this->participant = new Participant();
+      }
    }
 }
-else if (isset($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"])) # le cookie existe deja chez le participant\r
-{
-   $le_participant = new Participant($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"]);\r
-}
-else\r
-{
-       $le_participant = new Participant();\r
-}
 
 ?>
\ No newline at end of file