IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Revision d'un vieux site en PHP/MySQL avec le format actuel


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de RinaBK
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2021
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2021
    Messages : 92
    Par défaut Revision d'un vieux site en PHP/MySQL avec le format actuel
    Bonjour tout le monde,

    Comme je l'avais expliqué dans un autre sujet, je me suis rendue compte que ma manière de coder n'est plus du tout adapté à ce qui se fait de nos jours. Hé oui, avec des années d'absences, la programmation ne va pas m'attendre Donc, je vais avoir besoin d'aide pour transformer certaines lignes de codes dans un format plus correct et je me dis qu'il serait aussi bien d'opter pour une manière plus aérée et plus lisible que mes gros pâtés de codes qui ne veulent plus rien dire. Donc, je vais devoir refaire intégralement mon site principal (www.gwanda.ch). Donc, si vous voulez m'aider, c'est avec grand plaisir de recevoir vos remarques et vos corrections


    Pour commencer depuis le départ, j'ai une partie ADMIN qui gère la totalité de mes sites web. Pour simplifier les choses, je fais appel à des "préfixes" qui vont différencier chaque site web.
    Voici l'intégral de ma page sites.php :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
     
    <?
    session_start();
     
    if (!isSet($_SESSION['site'])) {
    	$siteID = '';
    	$sitePrefixe = '';
    	$siteName = '';
    } else {
    	$siteID = $_SESSION['site']['id'];
    	$sitePrefixe = $_SESSION['site']['prefixe'];
    	$siteName = $_SESSION['site']['nom'];
    }
     
     
     
     
    /***************************************************************************************************
    **********				CONTRÔL DES FICHIERS À INCLURE POUR L'AFFICHAGE DES PAGES
    *********/
    $include_files = array();
    $include_files[] = array('pheader','includes/header.php');
    $include_files[] = array('pfooter','includes/footer.php');
    $include_files[] = array('variables','includes/variables.php');
    $include_files[] = array('fonctions','includes/fonctions.php');
     
     
    $fichiers_inclus = array();
    if (count($include_files) > 0) {
    	for ($i = 0; $i < count($include_files); $i++) {
    		if (!file_exists($include_files[$i][1])) { header('Location: alerte.php?warning=500'); }
    		else { $files_includes[$include_files[$i][0]] = $include_files[$i][1]; }
    	}
    }
    include($files_includes['variables']);
    include($files_includes['fonctions']);
     
     
     
     
    /*
    CREATE TABLE adm_sites (
    	id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    	prefixe VARCHAR(200) NULL,
    	nom VARCHAR(200) NOT NULL,
    	infos TEXT NULL,
    	PRIMARY KEY (id),
    	UNIQUE (prefixe)
    );
    */
     
    //	Initialisations des valiables
    $id = 0;
    $prefixe = '';
    $nom = '';
    $infos = '';
     
     
    if ((isSet($_POST['gestion'])) || (isSet($_GET['gestion']))) {
     
    	if (($_GET['gestion'] == 'delete') && ($_GET['id'] > 0)) {
    		if (mySqli_query(db(),'DELETE FROM adm_sites WHERE id='.$_GET['id'])) {
    			header('Location: sites.php?alerte=valide');
    		} else { header('Location: sites.php?alerte=error'); }
    	}
    	else {
    		if ($_POST['prefixe'] == '') { $alerte[] = array('error','ATTENTION&nbsp;! Vous n&rsquo;avez pas sp&eacute;cifi&eacute; le pr&eacute;fixe du site'); }
    		if ($_POST['nom'] == '') { $alerte[] = array('error','ATTENTION&nbsp;! Vous n&rsquo;avez pas sp&eacute;cifi&eacute; le nom du site'); }
     
    		$prefixe = $_POST['prefixe'];
     
    		$nom = $_POST['nom'];
    		$nom = stripSlashes($nom);
    		$nom = trim($nom);
    		$nom = htmlEntities($nom);
    		$nom = str_replace('\'','&rsquo;',$nom);
     
    		$infos = $_POST['infos'];
    		$infos = stripSlashes($infos);
    		$infos = trim($infos);
    		$infos = htmlEntities($infos);
    		$infos = str_replace('\'','&rsquo;',$infos);
     
    	}
     
    	if (count($alerte) == 0) {
    		if (($_POST['gestion'] == $bt['update']) && ($_POST['id'] > 0)) {
    			if (mySqli_query(db(),'UPDATE adm_sites SET prefixe="'.$prefixe.'", nom="'.$nom.'", infos="'.$infos.'" WHERE id='.$_POST['id'])) {
    				header('Location: sites.php?alerte=valide');
    			} else { header('Location: sites.php?alerte=error'); }
    		}
     
    		if ($_POST['gestion'] == $bt['register']) {
    			if (mySqli_query(db(),'INSERT INTO adm_sites VALUES (NULL, "'.$prefixe.'", "'.$nom.'", "'.$infos.'")')) {
    				header('Location: sites.php?alerte=valide');
    			} else { header('Location: sites.php?alerte=error'); }
    		}
    	}
     
    }
    ?>
     
    <!DOCTYPE html>
    <html lang="fr-CH">
    <head>
    	<title>Administrations</title>
    	<link rel="stylesheet" href="images/designs/styles.css">
    	<script src="https://kit.fontawesome.com/2e9b34a81e.js"></script>
    </head>
     
     
    <body>
    <? include($files_includes['pheader']); ?>
     
     
    <h1>Gestion des Sites</h1>
    <div align="justify"  style="width: 600px;">
    	Concernant le nom du site ainsi que son pr&eacute;fixe, il serait important de ne pas mettre d&rsquo;accents, 
    	de caract&egrave;res sp&eacute;ciaux ou d&rsquo;espace. Il faudrait plut&ocirc;t jouer entre les majuscules 
    	et les minuscules pour diff&eacute;rencier les mots. En revanche pour les infos, aucun soucis, tous les 
    	caract&egrave;res sont accept&eacute;s et pr&eacute;senteront aucun danger niveau codage.
    </div>
    <br />
    <a href="sites.php?manage=insert" target="_parent" title="Ajouter une entr&eacute;e"><i class="fas fa-folder-plus" style="font-size: 30px;"></i></a>
    <br />
     
     
    <?
    if (isSet($_GET['alerte'])) {
    	if ($_GET['alerte'] == 'error') { $alerte[] = array('error','Op&eacute;ration impossible&nbsp;!'); }
    	if ($_GET['alerte'] == 'valide') { $alerte[] = array('valide','Op&eacute;ration r&eacute;ussi&nbsp;!'); }
    }
    if (count($alerte) > 0) { echo '<br />';
    	for($i = 0; $i < count($alerte); $i++) { echo '<div align="left" class="'.$alerte[$i][0].'">'.$alerte[$i][1].'</div>'; } echo '<br />';
    }
    ?>
     
     
    <br />
    <?
    if (isSet($_GET['manage']) && ($_GET['manage'] == 'insert')) {
    	?>
    	<br />
    	<table border="0" cellpadding="5" cellspacing="0">
    		<form method="POST">
    			<tr>
    				<td align="left" valign="top">Nom&nbsp;:</td>
    				<td align="left" valign="top"><input type="text" name="nom" value="<? if (isSet($_POST['nom'])) { echo $_POST['nom']; }?>" required style="width: 400px;"></td>
    			</tr>
    			<tr>
    				<td align="left" valign="top">Pr&eacute;fixe&nbsp;:</td>
    				<td align="left" valign="top"><input type="text" name="prefixe" value="<? if (isSet($_POST['prefixe'])) { echo $_POST['prefixe']; }?>" required style="width: 400px;"></td>
    			</tr>
    			<tr>
    				<td align="left" valign="top">Infos&nbsp;:</td>
    				<td align="left" valign="top"><textarea name="infos" cols="" rows="" style="width: 400px;"><? if (isSet($_POST['infos'])) { echo stripSlashes($_POST['infos']); }?></textarea></td>
    			</tr>
    			<tr>
    				<td align="left" valign="top">&nbsp;</td>
    				<td align="left" valign="top"><input type="submit" name="gestion" value="<?=$bt['register'];?>" style="width: 405px;"></td>
    			</tr>
    		</form>
    	</table>
    	<?
    }
    ?>
     
     
    <br />
    <br />
    <br />
     
     
    <?
    $sql = $bdd1->query('SELECT * FROM adm_sites');
    echo '<table border="0" cellpadding="2" cellspacing="0">';
    while ($data = $sql->fetch()) {
    	?>
    	<form method="POST">
    		<input type="hidden" name="id" value="<?=$data['id'];?>">
    		<tr>
    			<td align="left" valign="top"><div style="font-weight: bold; font-size: 16px;"><?=$data['id'];?></div></td>
    			<td align="right" valign="top"><a href="sites.php?gestion=delete&id=<?=$data['id'];?>" target="_parent"><i class="fas fa-trash-alt"></i></a></td>
    		</tr>
    		<tr><td colspan="2" align="left" valign="top"><input type="text" name="nom" value="<?=$data['nom'];?>" maxlength="" style="width: 400px;"></td></tr>
    		<tr><td colspan="2" align="left" valign="top"><input type="text" name="prefixe" value="<?=$data['prefixe'];?>" maxlength="" style="width: 400px;"></td></tr>
    		<tr><td colspan="2" align="left" valign="top"><textarea name="infos" cols="" rows="3" style="width: 400px;"><?=$data['infos'];?></textarea></td></tr>
    		<tr><td colspan="2" align="left" valign="top"><input type="submit" name="gestion" value="<?=$bt['update'];?>"></td></tr>
    		<tr><td colspan="2" align="left" valign="top">&nbsp;</td></tr>
    	</form>
    	<?
    }
    echo '</table>';
    $sql->closeCursor();
    ?>
     
     
    <? include($files_includes['pfooter']); ?>
    </body>
    </html>
    Pour vous expliquer un peu mes lignes de codes, je commence par initialiser ma variable session(); car une fois un site sélectionné (dans une autre page), cela me permet de naviguer sur la partie ADMIN en gardant les infos principale du site sélectionné.

    Ensuite, j'inclus différents fichiers tel que le fichier comportant mes fonctions globales, variables globales, header, footer, etc. qui sont les même pour chaque page de la partie ADMIN.

    Ensuite, il y a les codes de contrôles et les requêtes pour l'enregistrement, la modification et la suppression des données sur la BDD.

    Après, on arrive sur le corps de la page, avec une gestion d'erreur, un formulaire pour l'ajout d'une entrée, et l'affichage des entrées qui offre la possibilité de modifier directement chaque enregistrement.

    Vu que je débute en PDO, j'ai déjà modifié l'affichage et la modification de chaque entrée déjà existante.


    Je suis en ce moment, en train de refaire la gestion de contrôle sur les champs envoyé depuis le formulaire afin de les enregistrer, modifier ou effacer les données. Mais voilà, en regardant mon code, je me dis qu'il doit bien y avoir une manière de simplifier les lignes de codes afin de les rendre plus aérée et plus adapté !!?
    Qu'en pensez-vous? Avez-vous des suggestion à me donner pour rendre ma page moins bordélique et plus simplifiée ??

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    D'après ce que je vois, il n'y a pas beaucoup de choses à modifier, seulement qu'il faut bien préparer tes requêtes quand elles utilises des variables $_POST ou $_GET.

    Et vu que tu veux utiliser PDO au lieu de mysqli (ce qui est un choix judicieux), il ne faut jamais écrire ce genre de requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'UPDATE adm_sites SET prefixe="'.$prefixe.'", nom="'.$nom.'", infos="'.$infos.'" WHERE id='.$_POST['id']
    Mais plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $db=db();//récupérer l'objet de connexion 
    $stmt=$db->prepare("update adm_sites set prefix=:prefix, nom=:nom, infos=:infos where id=:id");
    $stmt->execute(array(":prefix"=>$prefix,":nom"=>$nom,":infos"=>$infos,":id"=>$_POST["id"]));
    if($stmt->rowCount()>0){
       echo "modification effectuée avec succès";.
    }
    else echo "Aucune modification n'a été effectuée !";
    La même chose pour les autres requêtes utilisant des variables...

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Bonjour,

    Une autre façon de faire est d'utiliser des '?' en lieu et place de système nommé, c'est une question de goût

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $db=db();//récupérer l'objet de connexion 
    $stmt=$db->prepare("update adm_sites set prefix=?, nom=?, infos=? where id=?");
    $stmt->execute(["$prefix,$nom,$infos,$_POST["id"]]);
    if($stmt->rowCount()>0){
       echo "modification effectuée avec succès";.
    }
    else echo "Aucune modification n'a été effectuée !";
    Les deux fonctionne bien.

    Par contre, je vois que dans vos fonctions native vous utilsez le camelCase "isSet", "mySqli_query"..... en fait, si votre serveur est un linux, vous risquez des erreurs, car la norme est "isset", "mysqli_", stripslash ......

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Après, vous êtes dans un système from scratch, qui fonctionne, mais ne respecte plus effectivement les standards.
    On essaye actuellement de séparer les couche, de ne plus avoir les requêtes de DB dans la même page, mais externaliser et l'injecter.
    Si votre projet est pour le long terme, apprendre un petit framework pour votre aprtie admin pourrais-être intéressant pour vous, genre Slim, Mezzio ou autre.

  5. #5
    Membre confirmé Avatar de RinaBK
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2021
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2021
    Messages : 92
    Par défaut
    Avant tout chose, un grand merci pour votre aide, elle m'est très précieuse !

    J'ai donc repris vos exemples, mais je me suis rendue compte que je n'arrive pas à utiliser les '?', car cela me donne à chaque fois une erreur... J'ai donc utilisé la version de Toufik83 qui fonctionne sans problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
     
    <?
    define('MAJ','25.01.2021 19:53:21');
     
     
     
    session_start();
     
    if (!isSet($_SESSION['site'])) {
    	$siteID = '';
    	$sitePrefixe = '';
    	$siteName = '';
    } else {
    	$siteID = $_SESSION['site']['id'];
    	$sitePrefixe = $_SESSION['site']['prefixe'];
    	$siteName = $_SESSION['site']['nom'];
    }
     
     
     
     
    /***************************************************************************************************
    **********				CONTRÔL DES FICHIERS À INCLURE POUR L'AFFICHAGE DES PAGES
    *********/
    $include_files = array();
    $include_files[] = array('pheader','includes/header.php');
    $include_files[] = array('pfooter','includes/footer.php');
    $include_files[] = array('variables','includes/variables.php');
    $include_files[] = array('fonctions','includes/fonctions.php');
     
     
    $fichiers_inclus = array();
    if (count($include_files) > 0) {
    	for ($i = 0; $i < count($include_files); $i++) {
    		if (!file_exists($include_files[$i][1])) { header('Location: alerte.php?warning=500'); }
    		else { $files_includes[$include_files[$i][0]] = $include_files[$i][1]; }
    	}
    }
    include($files_includes['variables']);
    include($files_includes['fonctions']);
     
     
     
     
    /*
    CREATE TABLE adm_sites (
    	id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    	prefixe VARCHAR(200) NULL,
    	nom VARCHAR(200) NOT NULL,
    	infos TEXT NULL,
    	PRIMARY KEY (id),
    	UNIQUE (prefixe)
    );
    */
     
     
     
     
    //	Initialisations des variables
    $id = 0;
    $prefixe = '';
    $nom = '';
    $infos = '';
     
     
    if ((!empty($_POST['gestion'])) || (!empty($_GET['gestion']))) {
     
    	if (($_GET['gestion'] == 'delete') && ($_GET['id'] > 0)) {
     
    		$db=db();
    		$sql = "DELETE FROM adm_sites WHERE id=:id";
    		$stmt = $db->prepare($sql);
    		$req = array('id' => $_GET['id']);
    		$stmt->execute($req);
     
    		if($stmt->rowCount()>0){ header('Location: sites.php?alerte=valide'); }
    		else { header('Location: sites.php?alerte=error'); }
    		$sql->closeCursor();
     
    	}
    	else {
    		if ($_POST['prefixe'] == '') { $alerte[] = array('error','ATTENTION&nbsp;! Vous n&rsquo;avez pas sp&eacute;cifi&eacute; le pr&eacute;fixe du site'); }
    		if ($_POST['nom'] == '') { $alerte[] = array('error','ATTENTION&nbsp;! Vous n&rsquo;avez pas sp&eacute;cifi&eacute; le nom du site'); }
     
    		$prefixe = $_POST['prefixe'];
     
    		$nom = $_POST['nom'];
    		$nom = stripSlashes($nom);
    		$nom = trim($nom);
    		$nom = htmlEntities($nom);
    		$nom = str_replace('\'','&rsquo;',$nom);
     
    		$infos = $_POST['infos'];
    		$infos = stripSlashes($infos);
    		$infos = trim($infos);
    		$infos = htmlEntities($infos);
    		$infos = str_replace('\'','&rsquo;',$infos);
     
    	}
     
    	if (count($alerte) == 0) {
     
    		if (($_POST['gestion'] == $bt['update']) && ($_POST['id'] > 0)) {
    			$db=db();
    			$stmt=$db->prepare('UPDATE adm_sites SET prefixe=:prefixe, nom=:nom, infos=:infos WHERE id=:id');
    			$stmt->execute(array(':prefixe' => $prefixe,':nom' => $nom,':infos' => $infos,':id' => $_POST['id']));
    			if($stmt->rowCount()>0){ header('Location: sites.php?alerte=valide'); }
    			else { header('Location: sites.php?alerte=error'); }
    			$stmt->closeCursor();
    		}
     
    		if ($_POST['gestion'] == $bt['register']) {
    			$db=db();
    			$stmt = $db->prepare('INSERT INTO adm_sites (prefixe, nom, infos) VALUES(:prefixe, :nom, :infos)');
    			$stmt->execute(array('prefixe' => $prefixe,'nom' => $nom,'infos' => $infos));
    			if($stmt->rowCount()>0){ header('Location: sites.php?alerte=valide'); }
    			else { header('Location: sites.php?alerte=error'); }
    			$stmt->closeCursor();
     
    		}
    	}
     
    }
     
    ?>
     
    <!DOCTYPE html>
    <html lang="fr-CH">
    <head>
    	<title>Administrations</title>
    	<link rel="stylesheet" href="images/designs/styles.css">
    	<script src="https://kit.fontawesome.com/2e9b34a81e.js"></script>
    </head>
     
     
    <body>
    <? include($files_includes['pheader']); ?>
     
     
    <h1>Gestion des Sites</h1>
    <div align="justify"  style="width: 600px;">
    	Concernant le nom du site ainsi que son pr&eacute;fixe, il serait important de ne pas mettre d&rsquo;accents, 
    	de caract&egrave;res sp&eacute;ciaux ou d&rsquo;espace. Il faudrait plut&ocirc;t jouer entre les majuscules 
    	et les minuscules pour diff&eacute;rencier les mots. En revanche pour les infos, aucun soucis, tous les 
    	caract&egrave;res sont accept&eacute;s et pr&eacute;senteront aucun danger niveau codage.
    </div>
    <br />
    <a href="sites.php?manage=insert" target="_parent" title="Ajouter une entr&eacute;e"><i class="fas fa-folder-plus" style="font-size: 30px;"></i></a>
    <br />
     
     
    <?
    if (isSet($_GET['alerte'])) {
    	if ($_GET['alerte'] == 'error') { $alerte[] = array('error','Op&eacute;ration impossible&nbsp;!'); }
    	if ($_GET['alerte'] == 'valide') { $alerte[] = array('valide','Op&eacute;ration r&eacute;ussi&nbsp;!'); }
    }
    if (count($alerte) > 0) { echo '<br />';
    	for($i = 0; $i < count($alerte); $i++) { echo '<div align="left" class="'.$alerte[$i][0].'">'.$alerte[$i][1].'</div>'; } echo '<br />';
    }
    ?>
     
     
    <br />
    <?
    if (isSet($_GET['manage']) && ($_GET['manage'] == 'insert')) {
    	?>
    	<br />
    	<table border="0" cellpadding="5" cellspacing="0">
    		<form method="POST">
    			<tr>
    				<td align="left" valign="top">Nom&nbsp;:</td>
    				<td align="left" valign="top"><input type="text" name="nom" value="<? if (isSet($_POST['nom'])) { echo $_POST['nom']; }?>" required style="width: 400px;"></td>
    			</tr>
    			<tr>
    				<td align="left" valign="top">Pr&eacute;fixe&nbsp;:</td>
    				<td align="left" valign="top"><input type="text" name="prefixe" value="<? if (isSet($_POST['prefixe'])) { echo $_POST['prefixe']; }?>" required style="width: 400px;"></td>
    			</tr>
    			<tr>
    				<td align="left" valign="top">Infos&nbsp;:</td>
    				<td align="left" valign="top"><textarea name="infos" cols="" rows="" style="width: 400px;"><? if (isSet($_POST['infos'])) { echo stripSlashes($_POST['infos']); }?></textarea></td>
    			</tr>
    			<tr>
    				<td align="left" valign="top">&nbsp;</td>
    				<td align="left" valign="top"><input type="submit" name="gestion" value="<?=$bt['register'];?>" style="width: 405px;"></td>
    			</tr>
    		</form>
    	</table>
    	<?
    }
    ?>
     
     
    <br />
    <br />
    <br />
     
     
    <?
    $db=db();
    $sql = $db->query('SELECT * FROM adm_sites');
    echo '<table border="0" cellpadding="2" cellspacing="0">';
    while ($data = $sql->fetch()) {
    	?>
    	<form method="POST">
    		<input type="hidden" name="id" value="<?=$data['id'];?>">
    		<tr>
    			<td align="left" valign="top"><div style="font-weight: bold; font-size: 16px;"><?=$data['id'];?></div></td>
    			<td align="right" valign="top"><a href="sites.php?gestion=delete&id=<?=$data['id'];?>" target="_parent"><i class="fas fa-trash-alt"></i></a></td>
    		</tr>
    		<tr><td colspan="2" align="left" valign="top"><input type="text" name="nom" value="<?=$data['nom'];?>" maxlength="" style="width: 400px;"></td></tr>
    		<tr><td colspan="2" align="left" valign="top"><input type="text" name="prefixe" value="<?=$data['prefixe'];?>" maxlength="" style="width: 400px;"></td></tr>
    		<tr><td colspan="2" align="left" valign="top"><textarea name="infos" cols="" rows="3" style="width: 400px;"><?=$data['infos'];?></textarea></td></tr>
    		<tr><td colspan="2" align="left" valign="top"><input type="submit" name="gestion" value="<?=$bt['update'];?>"></td></tr>
    		<tr><td colspan="2" align="left" valign="top">&nbsp;</td></tr>
    	</form>
    	<?
    }
    echo '</table>';
    $sql->closeCursor();
    ?>
     
     
    <? include($files_includes['pfooter']); ?>
    </body>
    </html>
    Maintenant, je me demande comment on peut encore améliorer cette page pour la rendre un peu plus au gout du jour?



    Citation Envoyé par MaitrePylos Voir le message
    Par contre, je vois que dans vos fonctions native vous utilsez le camelCase "isSet", "mySqli_query"..... en fait, si votre serveur est un linux, vous risquez des erreurs, car la norme est "isset", "mysqli_", stripslash ......
    A l'époque, l'on m'avait conseillé de coder en séparant les mots par des majuscule afin de rendre les codes plus clair lisiblement. Mais jamais je n'aurais pensé que cela pouvais causer des erreurs, bien au contraire! Bon.. Alors dans ce cas, si je veux coder correctement, je vais cesser de coder en camelCase




    Citation Envoyé par MaitrePylos Voir le message
    Après, vous êtes dans un système from scratch, qui fonctionne, mais ne respecte plus effectivement les standards.
    On essaye actuellement de séparer les couche, de ne plus avoir les requêtes de DB dans la même page, mais externaliser et l'injecter.
    Si votre projet est pour le long terme, apprendre un petit framework pour votre aprtie admin pourrais-être intéressant pour vous, genre Slim, Mezzio ou autre.
    Non, mon site personnel est surtout utilisé pour tester mes découvertes et apprendre de nouvelles combines en matière de programmations web. Cela me permet de rendre l'utile à l'agréable, car j'optimise mon site en apprenant et testant de nouvelles combines. Se serait un site professionnel avec une forte audiance, se serait différent, mais pour mon site perso, il est continuellement en transformation.

    Mais, histoire de me mette un peu à jour... Ces framework que tu me propose, c'est un genre de base pour templates? J'avais réalisé, il y a fort longtemps un site totalement sous templates. Le principe de séparer le HTML des codes de programmation est clairement bien lorsque l'on code professionnelement. Je ne dis pas que je ne veux pas me lancer à nouveau là-dedant, mais je pense que dans un premeir temps, je dois me remètre à jours sur le point de vue code. Après, pourquoi pas me lancer dans un site sous templates histoire de voir comment tout cela a évoluer

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    La ligne 73 array('id' => $_GET['id']);, tu as oublié les deux points avant le marqueur de l'id array(':id' =>...);, ça peut passer sans erreur oui, mais la bonne syntaxe est avec les deux points.

    La ligne 78 $sql->closeCursor();, ce n'est pas $sql mais $stmt, ça devrait te retourner une erreur ou avertissement je suppose... , à moins que tu n'as pas activé l'affichage des erreurs/avertissement.

Discussions similaires

  1. Cherche Hébergement gratuit site web [PHP-MySQL]
    Par HULK dans le forum Gratuit
    Réponses: 15
    Dernier message: 20/01/2010, 22h53
  2. [MySQL] Aide à la création site en php mysql
    Par nbjr1858 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/06/2007, 16h10
  3. Extranet et les sites Internet : php/mysql
    Par kagura dans le forum Outils
    Réponses: 12
    Dernier message: 21/06/2006, 10h48
  4. créer son site en php/mysql entierement
    Par zimotep dans le forum Requêtes
    Réponses: 15
    Dernier message: 24/03/2006, 23h39
  5. Cherche Hébergement gratuit site web [PHP-MySQL]
    Par HULK dans le forum Hébergement
    Réponses: 11
    Dernier message: 23/08/2005, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo