Création de repositories/StaticRepo@checkParam + ajout de repositories/StaticRepo@delNumeric
This commit is contained in:
parent
5fe57e8c30
commit
e96c75d9dd
|
@ -0,0 +1,128 @@
|
||||||
|
/*******************************/
|
||||||
|
/*** RECTIFICATIONS GLOBALES ***/
|
||||||
|
/*******************************/
|
||||||
|
*{ margin: 0; padding: 0; }
|
||||||
|
|
||||||
|
body{
|
||||||
|
/* position */
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
/* background */
|
||||||
|
background-color: #233342;
|
||||||
|
|
||||||
|
/* foreground */
|
||||||
|
font: 16px 'Open Sans';
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************/
|
||||||
|
/*** FORMULAIRES ***/
|
||||||
|
/*******************/
|
||||||
|
form{
|
||||||
|
/* position */
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
left: calc( 50% - 20em/2 );
|
||||||
|
width: 20em;
|
||||||
|
height: auto;
|
||||||
|
margin: 2em;
|
||||||
|
padding: 2em;
|
||||||
|
|
||||||
|
/* border */
|
||||||
|
border-radius: 5px;
|
||||||
|
box-shadow: inset 0 0 10px #0a0f14;
|
||||||
|
|
||||||
|
/* background */
|
||||||
|
background-color: #151f28;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/************************/
|
||||||
|
/*** CHAMPS DE SAISIE ***/
|
||||||
|
/************************/
|
||||||
|
input{
|
||||||
|
/* position */
|
||||||
|
display: inline-block;
|
||||||
|
padding: 1em 2em;
|
||||||
|
margin: 1em;
|
||||||
|
width: calc( 100% - 2*2em - 5px - 2*1em );
|
||||||
|
|
||||||
|
/* border */
|
||||||
|
border-radius: 3px 0 0 3px;
|
||||||
|
border: 0;
|
||||||
|
border-right: 5px solid #aaa;
|
||||||
|
|
||||||
|
/* background */
|
||||||
|
background-color: #ddd;
|
||||||
|
|
||||||
|
/* animation */
|
||||||
|
transition: all .2s ease-in-out;
|
||||||
|
-moz-transition: all .2s ease-in-out;
|
||||||
|
-webkit-transition: all .2s ease-in-out;
|
||||||
|
-ms-transition: all .2s ease-in-out;
|
||||||
|
-o-transition: all .2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @hover */
|
||||||
|
input:focus { background-color: #fff; }
|
||||||
|
input:nth-child(4n+0):focus{ border-right-color: #f45b2a; }
|
||||||
|
input:nth-child(4n+1):focus{ border-right-color: #1b84db; }
|
||||||
|
input:nth-child(4n+2):focus{ border-right-color: #f4b92a; }
|
||||||
|
input:nth-child(4n+3):focus{ border-right-color: #b62af4; }
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************/
|
||||||
|
/*** BOUTONS DE VALIDATION ***/
|
||||||
|
/*****************************/
|
||||||
|
input[type=submit],
|
||||||
|
input[type=button]{
|
||||||
|
/* position */
|
||||||
|
width: auto;
|
||||||
|
float: right;
|
||||||
|
|
||||||
|
/* foreground */
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=submit]:hover,
|
||||||
|
input[type=button]:hover{
|
||||||
|
|
||||||
|
/* border */
|
||||||
|
border-right-color: #1b84db;
|
||||||
|
|
||||||
|
/* background */
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
/* foreground */
|
||||||
|
color: #1b84db;
|
||||||
|
|
||||||
|
/* extra */
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/****************/
|
||||||
|
/*** MESSAGES ***/
|
||||||
|
/****************/
|
||||||
|
.error{
|
||||||
|
font-size: .8em;
|
||||||
|
padding: 1em 1em;
|
||||||
|
color: #f14973;
|
||||||
|
text-shadow: 1px 1px 0 #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.success{
|
||||||
|
font-size: .8em;
|
||||||
|
padding: 1em 1em;
|
||||||
|
color: #49f16b;
|
||||||
|
text-shadow: 1px 1px 0 #000;
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<?php /* [0] VERIFICATION DE CONNECTION
|
||||||
|
=============================================*/
|
||||||
|
$postVariablesAreSet = isset($_POST['username']) && isset($_POST['mail']) && isset($_POST['password']) && isset($_POST['co']); // si les variables POST existent
|
||||||
|
$postVariablesTypeOk = $postVariablesAreSet && is_string($_POST['username']) && is_string($_POST['mail']) && is_string($_POST['password']) && is_string($_POST['co']); // si ce sont des string
|
||||||
|
$postVariablesNEmpty = $postVariablesTypeOk && strlen($_POST['username']) > 1 && strlen($_POST['mail']) > 1 && strlen($_POST['password']) > 1 && strlen($_POST['co']) > 1; // si au moins 1 caractère
|
||||||
|
$usernameCheck = $postVariablesNEmpty && preg_match("/^[\w -]{3,10}$/i", $_POST['username']); // utilisateur -> "alphanum_- " -> 3 à 10 caractères
|
||||||
|
$mailCheck = $usernameCheck && preg_match("/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i", $_POST['mail']); // mail -> bon format
|
||||||
|
$passwordCheck = $mailCheck && preg_match("/^[\w -]{8,50}$/i", $_POST['password']); // password -> "alphanum_- " -> 8 à 50 caractères
|
||||||
|
$coCheck = $passwordCheck && $_POST['co'] == 'Me connecter';
|
||||||
|
|
||||||
|
if( $coCheck ){ // si toutes les valeurs sont correctes
|
||||||
|
|
||||||
|
$user = array(); // on définit l'utilisateur
|
||||||
|
$user['name'] = $_POST['username'];
|
||||||
|
$user['mail'] = $_POST['mail'];
|
||||||
|
$user['password'] = $_POST['password'];
|
||||||
|
$user['hash'] = sha1($_POST['password']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// retourne VRAI si l'utilisateur est connecté
|
||||||
|
function connected($user){ return ($user != null); }
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Tests php</title>
|
||||||
|
|
||||||
|
<meta charset='utf-8'/>
|
||||||
|
<meta name='description' value='Site de test'/>
|
||||||
|
<meta name='author' value='{xdrm} & SeekDaSky'/>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel='stylesheet' href='globalstylesheet.css'/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<?php /* [1] AFFICHAGE DIFFÉRÉ SI CONNECTÉ
|
||||||
|
==============================================*/
|
||||||
|
|
||||||
|
echo "<form action='#auth' method='POST'>";
|
||||||
|
|
||||||
|
/* AFFICHAGE D'ERREURS */
|
||||||
|
if( $postVariablesAreSet ){ // si formulaire soumis
|
||||||
|
if( !$postVariablesNEmpty )
|
||||||
|
echo '<span class=error>Certains champs requis sont vides.</span>';
|
||||||
|
elseif( !$usernameCheck )
|
||||||
|
echo '<span class=error>Nom d\'utilisateur incorrect. (3 car. min)</span>';
|
||||||
|
elseif( !$mailCheck )
|
||||||
|
echo '<span class=error>Adresse mail incorrecte.</span>';
|
||||||
|
elseif( !$passwordCheck )
|
||||||
|
echo '<span class=error>Mot de passe incorrect. (8 car. min)</span>';
|
||||||
|
elseif( connected($user) )
|
||||||
|
echo '<span class=success>Vous êtes connectés.</span>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "<input type='text' name='username' placeholder='username' " .( (connected($user)) ? "value='".$user['name']."'" : '' ).">";
|
||||||
|
echo "<input type='mail' name='mail' placeholder='mail' " .( (connected($user)) ? "value='".$user['mail']."'" : '' ).">";
|
||||||
|
echo "<input type='password' name='password' placeholder='password' ".( (connected($user)) ? "value='".$user['password']."'" : '' ).">";
|
||||||
|
echo "<input type='submit' name='co' value='Me connecter'>";
|
||||||
|
echo "</form>";
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -31,6 +31,109 @@ class StaticRepo{
|
||||||
public static function testConnexion(){
|
public static function testConnexion(){
|
||||||
return static::getConnexion() instanceof PDO;
|
return static::getConnexion() instanceof PDO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD
|
||||||
|
*
|
||||||
|
* @fetchData<Array> le résultat d'une $requeteSQL->fetchAll() / $requeteSQL->fetch()
|
||||||
|
*
|
||||||
|
* @return newFetchData<Array> retourne le tableau donné en paramètre mais sans les valeurs à clés numériques
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function delNumeric($fetchData, $oneDimension=false){
|
||||||
|
|
||||||
|
/* [1] 2 dimensions
|
||||||
|
===============================================*/
|
||||||
|
if( !$oneDimension ){
|
||||||
|
|
||||||
|
// on supprime les doublons des entrées (indice numérique)
|
||||||
|
for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs
|
||||||
|
foreach($fetchData[$i] as $col => $val){ // pour toutes les entrées
|
||||||
|
|
||||||
|
if( !mb_detect_encoding($val, 'UTF-8') )
|
||||||
|
$fetchData[$i][$col] = utf8_encode($val);
|
||||||
|
|
||||||
|
if( is_int($col) ) // si l'indice est un entier
|
||||||
|
unset( $fetchData[$i][$col] ); // on le supprime
|
||||||
|
}
|
||||||
|
|
||||||
|
/* [2] 1 dimensions
|
||||||
|
===============================================*/
|
||||||
|
}else{
|
||||||
|
|
||||||
|
// on supprime les doublons des entrées (indice numérique)
|
||||||
|
foreach($fetchData as $i=>$val){ // pour toutes les entrées
|
||||||
|
|
||||||
|
if( !mb_detect_encoding($val, 'UTF-8') )
|
||||||
|
$fetchData[$i] = utf8_encode($val);
|
||||||
|
|
||||||
|
if( is_int($i) ) // si l'indice est un entier
|
||||||
|
unset( $fetchData[$i] ); // on le supprime
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return $fetchData;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// _ _____ ___ _ _ ___ ____
|
||||||
|
// / \ | ___|_ _| \ | |_ _| _ \
|
||||||
|
// / _ \ | |_ | || \| || || |_) |
|
||||||
|
// / ___ \ | _| | || |\ || || _ <
|
||||||
|
// /_/ \_\ |_| |___|_| \_|___|_| \_\
|
||||||
|
|
||||||
|
|
||||||
|
/* Vérifie le type d'une variable
|
||||||
|
*
|
||||||
|
* @variable<mixed> la variable à vérifier
|
||||||
|
* @dbtype<String> le type correspondant à la vérification
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return correct<Boolean> TRUE si le type est bon / FALSE si le type ne match pas
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function checkParam($variable, $dbtype){
|
||||||
|
/* [1] on vérifie que $dbtype est un String
|
||||||
|
=============================================================*/
|
||||||
|
if( !is_string($dbtype) ) return false;
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Vérifications
|
||||||
|
=============================================================*/
|
||||||
|
$checker = true; // contiendra VRAI si la vérification s'avère correcte
|
||||||
|
|
||||||
|
switch($dbtype){
|
||||||
|
// [1] 'M' / 'F'
|
||||||
|
case 'Civilité':
|
||||||
|
$checker = $checker && is_string($variable) && in_array(array('M', 'F'), $variable);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// [2] Nom de patient
|
||||||
|
case 'Nom':
|
||||||
|
$checker = $checker && is_string($variable) && in_array(array('M', 'F'), $variable);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
// [N] Type inconnu
|
||||||
|
default: $checker = false; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On retourne le résultat de la vérif
|
||||||
|
=============================================================*/
|
||||||
|
return $checker;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"host": "serveurMySql",
|
"host": "localhost",
|
||||||
"login": "leLogin",
|
"login": "php",
|
||||||
"password": "leMotDePasse",
|
"password": "Qt358nUdyeTxLDM8",
|
||||||
"database": "nomBaseDeDonnée"
|
"database": "projetphp"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue