Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 122fbb99a46acecda56012f6bba6f49ba079771d
  • develop par défaut protégée
  • implement-discord-markdown-update
  • matrix-attachments-order-fix
  • fix-oversized-file-transfer
  • matrix-attachment-order-fix
  • matrix-answer-modified-fix
  • cherry-pick-moise
8 résultats

config.ts

Blame
  • Bifurcation depuis ARISE / matrix-appservice-discord
    Le projet source a une visibilité limitée.
    RegisterController.php 5,68 Kio
    <?php
    include(ROOT."/Image.php");
    class RegisterController extends Controller { // classe de contrôleur pour l'inscription au site
    
    	public function displayValid() { // la fonction d'affichage de réussite
    		$this->view->display(); // on affiche la page avec le message de réussite
    	}
    	
    	public function displayForm() { // la fonction d'affichage du formulaire
    		session_start();
    		
    		if(isset($_SESSION['registerErrCode'])) { // si message d'erreur
    			$errCode = $_SESSION['registerErrCode'];
    			if($errCode == 2) { // on détermine le message
    				$errMsg = '<h3>Pseudo déjà utilisé !</h3>';
    			} 
    			elseif($errCode == 3) {
    				$errMsg = '<h3>Adresse e-mail déjà utilisée !</h3>';
    			} 
    			elseif($errCode == 4) {
    				$errMsg = '<h3>Mots de passe différents</h3>';
    			} 
    			elseif($errCode == 5) {
    				$errMsg = '<h3>Problème sur l\'avatar</h3>';
    			} 
    			elseif($errCode == 6) {
    				$errMsg = '<h3>Le fichier n\'est pas une image</h3>';
    			} 
    			elseif($errCode == 7) {
    				$errMsg = '<h3>L\'image est trop grande</h3>';
    			}
                else{
                    $errMsg = "<h3>Exception non gérée.</h3>";
                }
    			
    			unset($_SESSION['registerErrCode']); // on retire la variable de session
    			
                $this->view->errMsg = $errMsg;
    		}
    		$this->view->display();
    	}
    
    	public function verify() { // vérifie si les données envoyées sont valides
    		if(!isset($_POST['method']) || !isset($_POST['value'])) { // si l'une des données manque, erreur
    			//appeler une fonction d'erreur
    			echo "<h1>Erreur : données absentes</h1>";
    			die();
    		}
    		
    		$method = $_POST['method'];
    		$value = $_POST['value'];
    		
    		$passed = false;
    		$retval = '';
    		switch($method) {
    			case 'checkPseudo':
    				// vérifie que le pseudo est libre
    				$slug_joueur = self::slugify($value);
    				if(Register::checkPseudo($slug_joueur)) {
    					$passed = true;
    					$retval = "Pseudo valide";
    				}
    				else {
    					$passed = false;
    					$retval = "Déjà utilisé";
    				}
    				break;
    			
    			case 'checkPassword':
    				//if(preg_match("#^[a-z0-9._-]+(@|%40)[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $value)) {
    					$passed = true;
    					$retval = "Mdp valide";
    				//}
    				//else {
    				//	$passed = false;
    				//	$retval = "Mdp invalide";
    				//}
    				break;
    			
    			case 'checkPasswordBis':
    				$mdp = explode("¤", $value);
    				if($mdp[0]==$mdp[1]) {
    					$passed = true;
    					$retval = "Mdp valide";
    				}
    				else {
    					$passed = false;
    					$retval = "Mdp différents";
    				}
    				break;
    				
    			case 'checkEmail':
    				if(preg_match("#^[a-z0-9._-]+(@|%40)[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $value)) {
    					// deuxième test : le mail est il déjà utilisé ?
    					//$value = str_replace("%40", "@", $value); // on corrige le "%40" en "@" pour vérifier l'existence
    					if(Register::checkEmail($value)) {
    						$passed = true;
    						$retval = "E-mail valide";
    					}
    					else {
    						$passed = false;
    						$retval = "Déjà utilisé";
    					}
    				}
    				else {
    					$passed = false;
    					$retval = "Format invalide";
    				}
    				break;
    		
    			default: exit;
    		}
    		
    		if($passed) {
    			// set the message colour to green and the checkbox to checked
    			echo '{"success":true, "text":"'.$retval.'", "color":"green"}';
    		
    		} 
    		else {
    			// set the message colour to red, the checkbox to unchecked and focus back on the field
    			echo '{"success":false, "text":"'.$retval.'", "color":"red"}';
    		}
    	}
    	
    	public function save() { // vérifie les données d'inscription, et enregistre les infos dans la BDD
    		if(!isset($_POST['pseudo']) || !isset($_POST['password']) || !isset($_POST['password_bis']) || !isset($_POST['nom']) || !isset($_POST['prenom']) || !isset($_POST['email'])) { // si l'une des données manque, erreur
    			//appeler une fonction d'erreur
    			echo "<h1>Erreur : variables absentes</h1>";
    			die();
    		}
    		$data = $_POST;
    
    		if($data['password'] == $data['password_bis']) {
    			$data['password'] = password_hash($data['password'], PASSWORD_DEFAULT);
    			$data['slug_joueur'] = self::slugify($_POST['pseudo']);
    			$data['avatar'] = 0;
    			$result = Register::check($data['slug_joueur'], $_POST['email']); // vérifie si le pseudo est libre et que l'adresse email n'est pas déjà utilisée
    			if ($result == 1) { // connexion valide
    				if(isset($_FILES['avatar'])) {
    					list($err, $avatar) = getImage($_FILES['avatar'], 512, 512);
    					if ($err == 0) {
    						saveImage($avatar, ROOT."/www/images/avatar/".$data['slug_joueur'].".jpg");
    						$data['avatar'] = 1;
    					} elseif ($err != 1) {
    						session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
    						$_SESSION["registerErrCode"] = $err; // on stocke le code d'erreur
    						header('Location:../inscription'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
    						die();
    					}
    				}
    				$success = Register::writedb($data);// on réalise l'inscription à l'aide d'une méthode de la classe Register
    				if ($success == 1) {
    					header('Location:valid'); // on redirige vers la  page OK
    				} else {
    					echo "<h1>Erreur : l'inscription a échoué</h1>";
    				}
    			} else {
    				session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
    				$_SESSION["registerErrCode"] = $result; // on stocke le code d'erreur
    				header('Location:../inscription'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
    			}
    		} else {
    				session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
    				$_SESSION["registerErrCode"] = 4; // on stocke le code d'erreur
    				header('Location:../inscription'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
    		}
    	}
    	
    }