sécurité srcypt

Répondre
jackbocar
le 02/04/2006 à 06:32
jackbocar
Bonjour,

Point de vue sécurité, qu'en pensez-vous ?

Merci

Jack Bocar


<?php
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=home">Home</a> &nbsp; ';
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=links">Links</a> &nbsp; ';
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=contact">Contact</a> &nbsp; ';
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=temple">Temple</a> &nbsp; ';
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=ordre">Ordre</a> &nbsp; ';
$pages = array('home','links','contact','temple');

// Si la page est reconnue
if ( in_array($_GET['page'], $pages) ) {
include 'pages/'.$_GET['page'].'.php';

// Autrement utilisez la page défaut...
} else {
include 'pages/home.php';
}
?>
Bzh
le 02/04/2006 à 11:07
Bzh
Oui ! Ca à l'air pas mal !

En tout cas pas de faille include à signaler !!!

C'est très propre...

Bye et bonne continuation...
jackbocar
le 02/04/2006 à 11:29
jackbocar
Bonjour,

Merci.

J'ai un problème avec ce scrypt, pour des pages mises toutes dans un répertoire /pages/, c'est bien, mais si on a 250 pages et 15 rubriques, il faut les classer par répertoires, et là, je ne comprends pas comment faire.

<?php
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=home" class="nav">Home</a>';
?>

Ceci me donne la racine du site : http://localhost/test/

pour avoir la racine de http://localhost/test/rep/ comment faire,
visiblement 'PHP_SELF', n'est pas bon dans ce ca ?

Merci de votre aide

Jack Bocar
Bzh
le 02/04/2006 à 15:27
Bzh
Utilise un tableau associatif !

$pages = array("acceuil" => "page/acceuil.php","forum"=>forum/index.php");

etc...

Voili...
jackbocar
le 03/04/2006 à 10:11
jackbocar
Bonjour,

Je teste le script, je ne connaissais pas le système. C'est assez génial, le fait de n'avoir qu'une seule page "index.php" et toutes les pages de texte en "include" sur cette page "index.php".

Ca a l'avantage de soulager les répertoires des dizaines de pages "php", qui ne sont plus nécessaire, reste que les pages "textes".

Avec ce script, est-il plus judicieux de passer toutes les pages de texte dans une base de données ou cela n'est-il pas nécessaire ?

Autre chose, j'ai dans certains répertoires plus de 50 pages. Y a t'il une limite raisonnable pour le bon fonctionnement du script dans le tableau 'array" :
$pages = array(' ');
Ou, puis-je en mettre autant que je le veux ?

Merci de m'éclairer

Jack Bocar
Bzh
le 03/04/2006 à 18:17
Bzh
J' ai pour habitude de toujours construire mon site de cette façon !

Je ne mes suis jamais retrouvé avec plus de 50 "rubriques" !

Ce que je veux dire, c'est que je crée les scripts gérants les rubriques dans des fichiers séparées MAIS le contenu se trouve dans la base de donnée.

Par exemple, imaginons pour le php facile, il y aurait 15 scripts se trouvant dans un même dossier:
* Accueil
* A propos
* Astuces
* Articles
* Chat / IRC
* Comment faire
* Cours
* Download
* Forums
* Galerie
* Livres
* Partenaires
* Scripts
* Sondage
* Wall

Et que tout le contenu de ces rubriques là ce trouvent dans la base de donnée. Donc tu te retrouve avec un ensemble de 17 pages en comptant la feuille de style et en oubliant la partie administration. Seulement 17 pages.

Ce qui n'empêche en rien de se retrouver avec des milliers de pages puisque le contenu se trouve dans la base de donné...

Enfin, j'ai pour habitude, personnelement de construire mes sites de cette façon là.

Bye...
jackbocar
le 04/04/2006 à 07:21
jackbocar
Bonjour,

J'ai besoin de conseils pour modifier un script :

/*page index.php*/

<?php
include (PATH_INCLUDE.'/includes/top.php');
include (PATH_INCLUDE.'/commanderies/pages/1_commanderies.php');
include (PATH_INCLUDE.'/menus/commanderies_A.php');
include (PATH_INCLUDE.'/includes/footer.php');
?>

/***********************************************************/

J'aimerai changer l'organisation de mon site avec ce script :



/*1_commanderies.php*/

<div id="main" class="column">
<?php
$pages = array('commanderies_A','commanderies_B','commanderies_C','commanderies_D','commanderies_E');

// Si la page est reconnue
if ( in_array($_GET['page'], $pages) ) {
include 'pages/'.$_GET['page'].'.php';

// Autrement utilisez la page défaut...
} else {
include 'pages/home.php';
}
?>
</div>

/************************************************/

/* pages commanderies lettre A */

<?php
$sql = 'SELECT id, nom, dep, infos FROM commanderies WHERE nom REGEXP "^A" ORDER BY nom ASC';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($resultat);

while ($data = mysql_fetch_array($resultat)) {
$id=$data['id'];
$nom=$data['nom'];
$dep=$data['dep'];
$date=$data['date'];
$infos=$data['infos'];

echo '<a name="'.($id).'"></a>';
echo '<p class="p">';
echo '<b class="style">'. ($nom).' &nbsp; '. ($dep).'</b>';
echo '<span class="com">'. ($infos).'</span>';
echo '</p>';
}
mysql_free_result($resultat);
?>

/********************************************************/


/*menu commanderies lettre A*/

<div id="sidebar" class="column">

<div class="menuBar">Commanderies [A]</div>
<?php
$sql = 'SELECT id, nom FROM commanderies WHERE nom REGEXP "^A" ORDER BY nom ASC';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($resultat);

while ($data = mysql_fetch_array($resultat)) {
$id=$data['id'];
$nom=$data['nom'];

echo '<a href="'.$_SERVER['PHP_SELF'].'?page=commanderies_1#'. ($id).'" class="menuNav">'. ($nom).'</a>';
}
mysql_free_result($resultat);
?>

</div>

/*******************************************************/

J'aimerais savoir, comment faire pour associer une page et un menu dans mon tableau array ?

Tout d'abord est-ce possible ?

Merci

Jack Bocar
Bzh
le 04/04/2006 à 11:29
Bzh
Et avec un tableau associatif ???

$tableau = array('clé' => 'valeur','clé 2' => 'valeur 2');

Bye...
jackbocar
le 04/04/2006 à 16:18
jackbocar
Bonjour,

Je ne suis pas très doué, alors après avoir parcouru les pages doc.php et les tableaux, j'ai pas tout compris. Je vais essayer ceci :

$pages = array('comm_1 => 'menu_1','comm_2' => 'menu_2');

Ca devrait fonctionner non ?

Merci de me corriger si ce n'est pas ça.

Jack Bocar
Bzh
le 04/04/2006 à 18:02
Bzh
Oui oui ! Enfin la syntaxe est bonne !

Maintenant, pour être sincère j'ai pas exactement tout compris ce que tu voulais faire...
Répondre
LoadingChargement en cours