Update to PHP 7.
[cl7.git] / php / participant.php
index 9f718b0..e940f74 100644 (file)
@@ -16,40 +16,51 @@ class Participant
      * 1) $v1 = NULL, $v2 = NULL : participant non-valide
      * 2) $v1 = id, $v2 = NULL : la participant existe et est chargé à partir de son id
      * 3) $v1 = pseudo, $v2 = password : le participant existe et est chargé à partir de son pseudo et de son password
+     * Le mot de passe est donné en clair.
      */
    public function Participant($v1=NULL, $v2=NULL)
    {      
+      $this->authentifier($v1, $v2);
+       }
+   
+   /**
+     * Est-ce que le participant existe ? C-à-d qu'il est inscrit.
+     */
+   public function existe()
+   {
+      return $this->id != 0;
+   }
+   
+   private function authentifier($v1=NULL, $v2=NULL)
+   {
       # Aucunes valeurs transmise => ce n'est pas un participant valide.
           if ($v1 == NULL && $v2 == NULL) 
          return;
-            
+
                if (is_string($v1) && is_string($v2)) # Aucun des arguments n'est vide alors c'est le pseudo et le password qui ont été transmis
-                       $res = pg_query_params("SELECT id FROM participants WHERE pseudo = $1 AND password = $2", array($v1, $v2));
+      {
+                       $res = pg_query_params("SELECT id FROM participants WHERE pseudo = $1 AND password = $2", array($v1, sha1($v2)));
+      }
                else # Sinon c'est l'id
                        $res = pg_query_params("SELECT id FROM participants WHERE id = $1", array($v1));
    
-               if (pg_result_status($res) == PGSQL_COMMAND_OK && pg_num_rows($res) === 1)
+               if (pg_result_status($res) == PGSQL_TUPLES_OK && pg_num_rows($res) === 1)
       {
          $this->id = pg_fetch_object($res)->id;
+         $this->chargerInfos();
       }
-       }
-   
-   /**
-     * Est-ce que le participant existe ? C-à-d qu'il est inscrit.
-     */
-   public function existe()
-   {
-      return $this->id != 0;
    }
    
-   public function chargerInfos()
+   public function chargerInfos($v1=NULL, $v2=NULL)
    {
+      $this->authentifier($v1, $v2);
+   
       if (!$this->existe())
          return;
          
       $res = pg_query_params("SELECT * FROM participants WHERE id = $1", array($this->id));
    
-      if (pg_result_status($res) == PGSQL_COMMAND_OK && pg_num_rows($res) === 1)
+      if (pg_result_status($res) == PGSQL_TUPLES_OK && pg_num_rows($res) === 1)
          $this->info = pg_fetch_object($res);
       else
          $this->id = 0;
@@ -74,7 +85,7 @@ class Participant
      */
    static function nombre_participant_max_atteint()
    {
-      return $this->nombre_place_restante() <= 0;
+      return Participant::nombre_place_restante() <= 0;
    }
    
    /**