X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=php%2Fparticipant.php;h=e940f74854c03dc2f59c16bfc922bcf230f548c8;hb=424a8f0a34fc72fe64daaac4686f991a298933a3;hp=9f718b004f83dde8d0644667f5d24abf9fa08ffc;hpb=6b9eac51629ad6fcec7da5f48b92f4c2b54c5901;p=cl7.git diff --git a/php/participant.php b/php/participant.php index 9f718b0..e940f74 100644 --- a/php/participant.php +++ b/php/participant.php @@ -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; } /**