diff --git a/Question.class.php b/Question.class.php index beba19f..9ed303b 100644 --- a/Question.class.php +++ b/Question.class.php @@ -65,7 +65,11 @@ class Question public function get_writer() { - return User::getUser($this->writer); + $u = User::getUser($this->writer); + if (isset($u)) + return $u; + else + return User::getUser("nemubot"); } public function get_validator() @@ -140,6 +144,11 @@ class Question $this->reported = $reported; } + public function isReported() + { + return $this->reported; + } + public function getId() { return $this->id; diff --git a/index.php b/index.php index 15ce59d..cb2b92f 100644 --- a/index.php +++ b/index.php @@ -53,8 +53,8 @@

Confirmer votre question

- Une fois la question ajoutée, un email vous a été envoyé pour que - vous confirmiez qu'il s'agit bien de vous. Cliquez sur le lien + Une fois la question ajoutée, un email vous sera envoyé pour que + vous confirmiez qu'il s'agisse bien de vous. Cliquez sur le lien pour confirmer.

@@ -79,7 +79,7 @@ Ce champ est là à titre indicatif. Il va permettre à la personne qui valide votre question d'aller vérifier par lui même la véracité de votre réponse ; et il permet également de filtrer - les questions en fonction des matière que chacun souhaite réviser. + les questions en fonction des matières que chacun souhaite réviser.

@@ -100,7 +100,7 @@ foreach($cs as $c)

La question

- La question sera afficher sur 1 ligne. Donc pas la peine de + La question sera affichée sur une ligne. Donc pas la peine de faire de retour à la ligne.

diff --git a/list.php b/list.php index 63a888b..9d4ec7b 100644 --- a/list.php +++ b/list.php @@ -29,10 +29,11 @@ else Liste des questions non-validées :: + report">Liste des questions rapportées :: Liste des questions validées :.

-

Liste de toutes les questions validées

+

Liste de toutes les questions validées

@@ -54,7 +55,7 @@ foreach($file->get_questions() as $q) { if (!isset($_GET["valid"])) { - if ($q->isValidated()) + if ($q->isValidated() && !$q->isReported()) continue; } else @@ -63,6 +64,12 @@ foreach($file->get_questions() as $q) continue; } + if (isset($_GET["report"])) + { + if (!$q->isReported()) + continue; + } + if (!empty($filter) && $q->getCourse()->getCode() != $filter) continue; @@ -83,6 +90,7 @@ if (!empty($_SESSION["connected"])) + " action="report.php">"> diff --git a/report.php b/report.php index bc131ab..83dac50 100644 --- a/report.php +++ b/report.php @@ -5,26 +5,39 @@ include("Question.class.php"); include("QuestionsFile.class.php"); -if (isset($_POST['id'])) +session_start(); + +if (isset($_GET['id']) || (isset($_POST['id']) && !empty($_SESSION["connected"]))) { - $id = $_POST['id']; + if (isset($_POST['id']) && !empty($_SESSION["connected"])) + $id = $_POST['id']; + else + $id = $_GET['id']; + $file = new QuestionsFile("questions.xml"); foreach($file->get_questions() as $q) { if ($q->getReportId() == $id) { - $q->setReported(); + $qm = $file->get_question($q->getId()); + $qm->setReported(!(isset($_POST['id']) && !empty($_SESSION["connected"]))); $id = null; + $file->save(); break; } } if (isset($id)) echo 'La question n\'a pas été trouvée'; + else if (isset($_POST['id']) && !empty($_SESSION["connected"])) + echo 'Le signalement de la question a bien été retiré'; else echo 'La question a été rapporté avec succès'; } else +{ + echo "Aucun identifiant n'a été passé à la page"; header("Location: ./"); +} ?>

Nemubot vous remercie de l'aider à améliorer la qualité de sa base de données.

diff --git a/subscribeAction.php b/subscribeAction.php index 61ae3ec..76d8481 100644 --- a/subscribeAction.php +++ b/subscribeAction.php @@ -3,70 +3,84 @@ include("header.html"); include("User.class.php"); -$email = $_POST['email']; -$login = $_POST['login']; - -$user = User::new_User($email, $login); - -$userList = User::getUsers(); -$userList[] = $user; -User::setUsers($userList); - -function mail_utf8($to, $subject = '(No subject)', - $message = '', $header = '') +if (count($_POST)) { - $header_ = 'MIME-Version: 1.0' . "\r\n" . - 'Content-type: text/plain; charset=UTF-8' . "\r\n"; - return (mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', - $message, $header_ . $header)); -} + $email = $_POST['email']; + $login = $_POST['login']; -$email = $_POST['email']; -$subject = "[Nemubot] Confirmation d'inscription"; -$headers = "From: Nemubot \n"; -$message = "Bonjour,\n" - ."Vous avez demandé à être ajouté à la liste des participants " - ."sur le site AskWeb.\n" - ."Si c'est le cas, vous pouvez cliquer sur le lien suivant " - ."pour confirmer :\n" + if (empty($email) || empty($login)) + die("Veuillez remplir tous les champs avant de valider le formulaire."); - . "http://".$_SERVER["SERVER_NAME"] - . dirname($_SERVER["REQUEST_URI"]) . "/subscriptionConfirmation.php?id=" - . $user->getId() + if (!preg_match("#^.+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,5}$#", $email)) + die("Votre adresse électronique ne semble pas valide."); - ."\n\n Si ce n'est pas le cas, merci de supprimer cet email\n" - ."Cordialement,\n\n" - ."-- \nNemubot"; + $us = User::getUsers(); -if (mail_utf8($email, $subject, $message, $headers)) -{ - $message = true; + $user = User::new_User($email, $login); + + if (array_key_exists($user->getId(), $us)) + die("Un utilisateur avec la même adresse électronique existe déjà."); + + function mail_utf8($to, $subject = '(No subject)', + $message = '', $header = '') + { + $header_ = 'MIME-Version: 1.0' . "\r\n" . + 'Content-type: text/plain; charset=UTF-8' . "\r\n"; + return (mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', + $message, $header_ . $header)); + } + + $email = $_POST['email']; + $subject = "[Nemubot] Confirmation d'inscription"; + $headers = "From: Nemubot \n"; + $message = "Bonjour,\n" + ."Vous avez demandé à être ajouté à la liste des participants " + ."sur le site AskWeb.\n" + ."Si c'est le cas, vous pouvez cliquer sur le lien suivant " + ."pour confirmer :\n" + + . "http://".$_SERVER["SERVER_NAME"] + . dirname($_SERVER["REQUEST_URI"]) . "/subscriptionConfirmation.php?id=" + . $user->getId() + + ."\n\n Si ce n'est pas le cas, merci de supprimer cet email\n" + ."Cordialement,\n\n" + ."-- \nNemubot"; + + if (mail_utf8($email, $subject, $message, $headers)) + { + $us[] = $user; + User::setUsers($us); + $message = true; + } + else + { + $message = false; + } } else -{ - $message = false; -} + header("Location: ./"); ?>

+ +

Merci

-

- Un email a été envoyé à l'adresse mail que vous avez précisé. +

+Un email a été envoyé à l'adresse mail que vous avez précisé. Cliquez sur le lien contenu dans l'email pour confirmer votre inscription. -

+

-

ERREUR

-

Une erreur est survenue. Dommage.

- +

Une erreur est survenue. Dommage.

+
diff --git a/subscriptionConfirmation.php b/subscriptionConfirmation.php index 509c8ae..d08a2fb 100644 --- a/subscriptionConfirmation.php +++ b/subscriptionConfirmation.php @@ -3,16 +3,20 @@ include ("header.html"); include("User.class.php"); -$id = $_GET['id']; +$users = User::getUsers(); -$user = User::getUser($id); - -if ($user == null) - $message = false; +if (!array_key_exists($_GET['id'], $users)) +{ + $message = "unknown"; +} +else if (!$users[$_GET['id']]->isValidated()) +{ + $users[$_GET['id']]->set_validated(true); + $message = "ok"; +} else { - $user->set_validated(true); - $message = true; + $message = "already"; } ?> @@ -28,6 +32,7 @@ else

Vous êtes déjà inscrit

Une erreur est survenue

+