[PHP] lire fihier txt avec liste de sites

Fermé
Jérémy - 1 févr. 2007 à 01:34
askiplop Messages postés 7 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 décembre 2008 - 2 févr. 2007 à 01:15
Bonjour,
j'ai le script suivant et j'aimerais plutot que de mettre tous mes sites un a bout de lautre (if ($dom == "unsite" || "2esite") {), les mettre dans un fichier txt et faire un "array" mais je ne sais pas comment. Voici le script.

<?php 
$dom = $_GET['dom'];ue de

if ($dom == "login.live.com") { ?>
<div align="center">
	<table border="0" width="20" id="table1" cellspacing="0" cellpadding="0" height="20">
		<tr>
			<td bgcolor="#008000">
			<p align="center">
			<a href="javascript:alert('<?php echo $dom; ?>')">?</a></td>
		</tr>
	</table>
</div>
<?php } if ($dom == "astalavista.com") { ?>
<div align="center">
	<table border="0" width="20" id="table1" cellspacing="0" cellpadding="0" height="20">
		<tr>
			<td bgcolor="#800000">
			<p align="center">
			<a href="javascript:alert('<?php echo $dom; ?>')">?</a></td>
		</tr>
	</table>
</div>
<?php } else { ?>
<div align="center">
	<table border="0" width="20" id="table1" cellspacing="0" cellpadding="0" height="20">
		<tr>
			<td bgcolor="#808080">
			<p align="center">
			<a href="javascript:alert('<?php echo $dom; ?>')">?</a></td>
		</tr>
	</table>
</div><?php }

 ?>


Si vous pouvez m'aider svp, merci infiniment,
cordialement, Jérémy
A voir également:

5 réponses

plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 27
1 févr. 2007 à 06:22
Pourquoi pas :

<?php
$dom = $_GET['dom'];
$inc = "sites/$dom.php";
if(file_exists($inc))
include($inc);
else
include("sites/defaut.php");
?>

Et ensuite dans le dossier sites tu as les fichiers :
login.live.com.php
astalavista.com.php
defaut.php
Qui contiennent ce que tu as mis entre tes if là haut
Par exemple :

login.live.com.php contient :

<div align="center">
<table border="0" width="20" id="table1" cellspacing="0" cellpadding="0" height="20">
<tr>
<td bgcolor="#008000">
<p align="center">
<a href="javascript:alert('<?php echo $dom; ?>')">?</a></td>
</tr>
</table>
</div>


C'est une méthode un peu dangereuse, mais elle marche !
A l'avenir tu devrais t'intéresser à la bibliothèque Smarty.

Au faite, j'ai supposé qu'il n'y avait pas que la couleur qui changeais entre tes 3 "sites", mais s'il n'y a que la couleur qui change entre tes 3 sites, -- mort de rire, je viens de me taper un post qui sert à rien -- alors tu fais :

<?php
$trans = array("login.live.com"=>"#008000", "astalavista.com"=>"#800000");
$dom = $_GET['dom'];
if(!($coul = $trans[$dom])) $coul = "#808080";
?>
<div align="center">
<table border="0" width="20" id="table1" cellspacing="0" cellpadding="0" height="20">
<tr>
<td bgcolor="<?php echo $coul; ?>">
<p align="center">
<a href="javascript:alert('<?php echo $dom; ?>')">?</a></td>
</tr>
</table>
</div>


Voilà le travail.
0
askiplop Messages postés 7 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 décembre 2008 1
1 févr. 2007 à 23:35
Pourquoi "dangereuse" ?

Merci pour les codes, je préfère le 2e.
Mais j'aurais aimé savoir comment faire pour que tout les site "vert" soit dans un fichier txt et que les sites "rouges" soient dans un autre txt, si possible, comment fait-on ?

Merci beaucoup Plop!

Jérémy
0
plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 27
2 févr. 2007 à 00:10
Dangereuse car si quelqu'un t'envoie n'importe quoi en GET, il peut exécuter le fichier php qu'il veut.

Imaginons qu'il mette : "<ton URL>?dom=../admin/reset.php"
Même si tu as mis un .htaccess dans le dossier admin, ici c'est le serveur (système de fichiers) qui va ouvrir ce fichier et qui outrepasse la config serveur.
Autre cas : si quelqu'un arrive à uploader un fichier php sur ton serveur, il pourra le faire exécuter par cette page. Le problème vient du fait d'inclure (fonction include) quelque chose qui dépend d'une entrée utilisateur (ici get).

Je ne comprends pas ta question. Tu me parles de fichiers textes mais tu me dis que le 2e exemple te plait mieux. Dans le 2e exemple il n'y a PAS de fichiers texte !
0
askiplop Messages postés 7 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 décembre 2008 1
2 févr. 2007 à 00:34
Oui, je sais, j'aimerais qu'il en ai un !

$trans = array("login.live.com"=>"#008000", "astalavista.com"=>"#800000"); 


Parce que je compte avoir beaucoup de sites répertoriés, alors deux fichiers textes seraient mieux.

Merci pour l'explication.

Bonne soirée.
0
plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 27
2 févr. 2007 à 00:43
Ah, la vache, je viens de comprendre ! OUF !
C'est hyper simple :

deux fichiers liste_verte.txt et liste_rouge.txt contiennent les sites séparés par des retour chariots.

Ton script sera alors :

<script>
<?php
$dom = $_GET['dom'];
if(in_array($dom, file("liste_verte.php"))
$coul = "#008000";
else if(in_array($dom, file("liste_rouge.php"))
$coul = "#800000";
else
$coul = "#808080";
?>
<div align="center">
<table border="0" width="20" id="table1" cellspacing="0" cellpadding="0" height="20">
<tr>
<td bgcolor="<?php echo $coul; ?>">
<p align="center">
<a href="javascript:alert('<?php echo $dom; ?>')">?</a></td>
</tr>
</table>
</div>
</code>
0
plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 27
2 févr. 2007 à 00:47
Désolé, je me suis trompé de balise et j'ai fait des erreurs, mais y'a un bug sur CCM, je peux plus éditer l'ancien post.

<?php
$dom = $_GET['dom'];
if(in_array($dom, liste("liste_verte.txt")))
    $coul = "#008000";
else if(in_array($dom, liste("liste_rouge.txt")))
    $coul = "#800000";
else
    $coul = "#808080";

function liste($fichier)
{
    $f = file($fichier);
    foreach($f as $i=>$l)
        $f[$i] = trim($l);
    return $f;
}

?>
<div align="center">
<table border="0" width="20" id="table1" cellspacing="0" cellpadding="0" height="20">
<tr>
<td bgcolor="<?php echo $coul; ?>">
<p align="center">
<a href="javascript:alert('<?php echo $dom; ?>')">?</a></td>
</tr>
</table>
</div>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
askiplop Messages postés 7 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 décembre 2008 1
2 févr. 2007 à 01:15
YOUPIIII !!!hhaaaahaa !!

Sa marche !!!!!! Tes un génie, je t'adore :D

Merci mille fois....

:D

Si tu veux toujour discuté, jai msn, jeremy_dicaire@hotmail.com

a+
0