www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

signup.php (5782B)


      1 <?php
      2 session_start();
      3 require_once("ressources/strings.inc");
      4 require_once("ressources/locations.inc");
      5 
      6 $SQL_DBNAME = (dirname(__FILE__) . "/db");
      7 	if (!$db = new SQlite3($SQL_DBNAME))
      8 		die($strings['err_signup_dbopen']);
      9 
     10 $location = get_location();
     11 
     12 $newpage = true;
     13 $msg = array();
     14 
     15 if(isset($_POST['signupemail'])){
     16 	$newpage = false;
     17 	$signupemail = $_POST['signupemail'];
     18 	// Regexp pour les adresses mail (incomplet, mais suffisant pour la plupart des adresses).
     19 	// http://en.wikipedia.org/wiki/Email_address
     20 	// N'implémente pas les "quotes" dans la partie locale (avant le @).
     21 	$allowed_local = "[-a-zA-Z0-9!#\$%&'*+/^=?_`{|}~]"; /* Je ne sais pas trop si l'espace est autorisée. */
     22 	$pattern_local = "$allowed_local(\\.?$allowed_local)*";
     23 	$pattern_hostname_label = '[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?';
     24 	$pattern_hostname = "$pattern_hostname_label(\\.$pattern_hostname_label)*";
     25 	$pattern_ip = "([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])";
     26 	$pattern_host = "($pattern_hostname|\\[$pattern_ip\\])";
     27 	// Note : j'ai utilisé ";" comme délimiteur de regexp car il y a un slash dans $allowed_local, et je ne sais pas comment l'échapper là
     28 	$pattern = ";^$pattern_local@$pattern_host\$;";
     29 	
     30 	if(trim($signupemail) == ""){
     31 		$msg[] = $strings['err_signup_fill_mail'];
     32 	}
     33 	else if (!preg_match($pattern, $signupemail)){
     34 		// TODO : ce message est erroné.
     35 		$msg[] = $strings['err_signup_invalid_mail'];
     36 	}
     37 	else if ($db->querySingle("SELECT mail FROM user WHERE mail='$signupemail'") != null){
     38 		$msg[] = $strings['err_signup_existing_mail'];
     39 	}
     40 }
     41 
     42 if(isset($_POST['signupid'])){
     43 	$newpage = false;
     44 	$signupid = $_POST['signupid'];
     45 	$pattern = "/^([a-zA-Z0-9])+([\.\-_][a-zA-Z0-9]*)*/";
     46 	if(trim($signupid) == ""){
     47 		$msg[] = $strings['err_signup_fill_login'];
     48 	}
     49 	else if (!preg_match($pattern, $signupid)){
     50 		$msg[] = $strings['err_signup_invalid_login'];
     51 		$signupid =	 $_POST['signupid'];
     52 	}
     53 	else if ($db->querySingle("SELECT login FROM user WHERE login='$signupid'") != null){
     54 		$msg[] = $strings['err_signup_existing_login'];
     55 	}
     56 }
     57 
     58 if(isset($_POST['signuppswd1'])){
     59 	$newpage = false;
     60 	$signuppswd1 = $_POST['signuppswd1'];
     61 	if(trim($signuppswd1) == ""){
     62 		$msg[] = $strings['err_signup_fill_passwd1'];
     63 	}
     64 	else  if(strlen($signuppswd1) < 5){
     65 		$msg[] = $strings['err_signup_invalid_passwd1'];
     66 	}
     67 }
     68 
     69 if(isset($_POST['signuppswd2'])){
     70 	$newpage = false;
     71 	$signuppswd2 = $_POST['signuppswd2'];
     72 	if(trim($signuppswd2) == ""){
     73 		$msg[] = $strings['err_signup_fill_passwd2'];
     74 	}
     75 	if(strlen($signuppswd1 != $signuppswd2)){
     76 		$msg[] = $strings['err_signup_passwords_dont_match'];
     77 	}
     78 }
     79 
     80 if(count($msg) == 0 && $newpage == false)
     81 {
     82 	$ok = ($db->query("INSERT INTO user(mail, login, hash_passwd, score, ugroup, cgCount) VALUES ('" . SQLite3::escapeString($signupemail)
     83 		. "', '" . SQLite3::escapeString($signupid)
     84 		. "', '" . SQLite3::escapeString(md5($signuppswd1))
     85 		. "', 0, 1, 0);"));
     86 
     87 	if($ok == true) {
     88 		$_SESSION['userId'] = $signupid;
     89 		return_to($location, "?show_msg=ok_signup_registered");
     90 	} else {
     91 		$msg[] = $strings['err_signup_dbinsert'];
     92 	}
     93 }
     94 
     95 ?>
     96 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     97 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     98 	<head>
     99 		<title>PtiClic sous Android™ - Version Alpha - S'inscrire</title>
    100 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    101 		<link rel="stylesheet" href="ressources/simple.css" />
    102 	</head>
    103 	<body>
    104 		<?php include("ressources/menu.inc"); ?>
    105 		<div class="content">
    106 			<h2>Inscription</h2>
    107 			<?php include("ressources/showmsg.inc"); ?>
    108 			<h3>Vous n'avez pas encore de compte ?</h3>
    109 			<p>
    110 				Inscrivez-vous pour accéder l'ensemble du site et faire parti des alpha-testeurs ! <br />
    111 				Vous pourrez ainsi télécharger l'application la tester et nous faire part de vos remarques afin de l'améliorer.<br />
    112 			</p>
    113 			<p>
    114 				Pour vous inscrire maintenant veuillez remplir le formulaire qui suit :
    115 			</p>
    116 			<?php
    117 				if(count($msg) > 0)
    118 				{
    119 					echo '<div class="message warning">'.
    120 						 '<p><b>Saisie invalide. Les erreurs sont les suivantes : </b></p>'.
    121 						 '<ul>';
    122 					foreach ($msg as $m) {
    123 						echo "<li>".htmlspecialchars($m)."</li>";
    124 					}
    125 					echo '</ul>';
    126 					echo '</div>';
    127 				}
    128 			?>
    129 			<form name="signupform" method="post" action="signup.php?return=<?php echo $location; ?>">
    130 				<table>
    131 					<tr>
    132 						<td>
    133 							<label for="signupemail">Saisissez votre adresse mail&nbsp;:</label>
    134 						</td>
    135 						<td>
    136 							<input name="signupemail" type="text"
    137 								<?php
    138 									if(isset($_POST['signupemail'])){
    139 										echo " value='$signupemail'";
    140 									}
    141 								?>
    142 							/>
    143 						</td>
    144 					</tr>
    145 					<tr>
    146 						<td>
    147 							<label for="signupid">Choisissez un identifiant&nbsp;: </label>
    148 						</td>
    149 						<td>
    150 							<input name="signupid" type="text"
    151 								<?php
    152 									if(isset($_POST['signupid'])){
    153 										echo " value='$signupid'";
    154 									}
    155 								?>
    156 							/>
    157 						</td>
    158 					</tr>
    159 					<tr>
    160 						<td>
    161 							<label for="signuppswd1">Choisissez un mot de passe&nbsp;: </label>
    162 						</td>
    163 						<td>
    164 							<input name="signuppswd1" type="password" />
    165 						</td>
    166 					</tr>
    167 					<tr>
    168 						<td>
    169 							<label for="signuppswd2">Resaisissez le mot de passe&nbsp;: </label>
    170 						</td>
    171 						<td>
    172 							<input name="signuppswd2" type="password" />
    173 						</td>
    174 					</tr>
    175 					<tr>
    176 						<td>
    177 							
    178 						</td>					
    179 						<td>
    180 							<input type="submit" name="signupsubmit" value="Valider" />
    181 						</td>
    182 					</tr>
    183 				</table>
    184 			</form>
    185 			<h3>Vous êtes déjà inscrit&nbsp;? <a href="login.php?return=<?php echo $location; ?>">Connectez-vous&nbsp;!</a></h3>
    186 		</div>
    187 		<?php include("ressources/footer.inc"); ?>
    188 	</body>
    189 </html>