Création
d'entreprise
Posez votre question Signaler

[PHP]Incrémenter variable lien

thepchou 70Messages postés 7 juin 2007Date d'inscription - Dernière réponse le 21 juin 2007 à 13:33
Bonjour.
Je vous expose mon problème :
Je souhaite afficher des extensions seulement lorsque je clique sur le lien de l'extension précis, je m'explique avec un dessin :
- [BMP] :
- [TXT] :
Je clique sur BMP ->
- [BMP] : -toto.bmp -titi.bmp
- [TXT] :
J'ai crée une variable initialisé à 0, lorsque je clique sur le lien cette dernière doit incrémenter et permettre l'affichage, et c'est ce que je veux produire mais je n'y arrive pas...
Je vous passe mon code :
$dis = 0;
$ExpExt = $Extensions;
sort($ExpExt);
echo "<table cellspacing=\"1\" cellpadding=\"4\" border=\"1\">"; // On crée un tableau en html ; par la suite on affichera les extensions.

foreach($ExpExt as $findExt)
{
$getFile = browse($dir, $findExt); // Appel de fonction browse stocké dans une variable $getFile
$countFile = count($getFile); // On compte le nombre d'éléments dans $getFile et on le stock dans une variable $countFile.

if($countFile != 0)
{
echo "<tr style=\"font-size:8pt;font-family:arial;text-align=left\">"; // Purement esthétique au niveau de la police contenu dans le tableau : à modifier selon les goûts.
echo "<th><b>Fichier(s) <a href=\"$PHP_SELF?dir=".rawurlencode($dir)."\">".strtoupper($findExt)."</a></b> (".$countFile.") :</th><td> </td>"; // Affiche une catégorie d'extension et son nombre.

foreach($getFile as $myFile)
{
if($dis != 0)
{
echo "<td>- ".$myFile."</td><td> </td>"; // Affiche l'extension de la catégorie.
}
}
echo "</tr>";
}
}
echo "</table>";


J'ai déjà essayé quelques trucs mais sans succès, aidez-moi s'il vous plaît ! Sivous avez besoin des fonctions pour lancer le code, dîtes-le moi.
Merci.
Lire la suite 

[PHP]Incrémenter variable lien »

14 réponses
Réponse
+1
moins plus
Alors le probleme est surement dans le fait que tu ne devrais initialiser la variable dis à 0 que lorsque ta page est appelée pour la première fois : sinon ta variable est remise à 0 à chaque fois que ton code s'exécute. Au lieu de :

$dis=0;

Essaie plutot :

if (! isset($dis)) // la fonction isset renvoie true si la variable passée en paramètre est définie, et false sinon.
$dis = 0;

Et aussi, assure toi que tu récupères bien les variables que tu passes dans l'URL du tableau $_GET.

Avec ca, ca devrait aller mieux.
thepchou- 18 juin 2007 à 17:20
Comment faire pour récuperer cela dans l'url avec $_GET[dis] ?
J'essaye mais je ne fais que des erreurs... :s
Ajouter un commentaire
Réponse
+1
moins plus
Essaie alors un truc du genre :

if ( ! isset($_GET['dis']) ) // si la variable $_GET['dis'] n'est pas définie (le lien n'a pas été cliqué)
$dis = 0; // on initialise la variable dis à 0
else
$dis = $_GET['dis']; // sinon, on l'initialise au résultat de la requête.

avec cela, je pense que ca devrait aller mieux !
thepchou- 19 juin 2007 à 13:22
J'ai placé le code juste avant la balise <a> et ça marche bien quand je clique sur le lien, Merci !

Mais avec mon code comment faire pour ne faire apparaître que l'extension que je souhaite afficher en cliquant sur le lien approprié ?
thepchou- 19 juin 2007 à 13:42
Ton code marche seulement si j'ajoute $dis++;
if( !isset( $_GET['dis'] ) )
{
     $dis = 0;
}else
{
     $dis = $_GET['dis'];
     $dis++;
}

Si je mets en commentaire $dis = $_GET['dis']; ça marche mais c'est quand même source d'erreur.
Ajouter un commentaire
Réponse
+0
moins plus
Voici le code qui manque pour faire fonctionner le programme.

function browse($dir, $pExtension)
{
$files = array();
	if($handle = opendir($dir))
	{
		while( false !== ($file = readdir($handle)) )
		{
			$getExt = explode(".", $file);
			$countExt = count($getExt);
			$fExt = $countExt - 1;
			$myExt = $getExt[$fExt];

			if( ($myExt == $pExtension) && ($file != ".") && ($file != "..") )
			{
				$files[] = $file;
			}
		}
	}
return $files;    
closedir($handle);
}

$Extensions = array(
		"exe",
		"mp3",
		"php",
		"zip",
		"doc",
		"db",
		"txt",
		"BAT",
		"SYS",
		"log",
		"xls",
		"ppt",
		"pdf",
		"bmp",
		"gif",
		"jpg",
		"png",
		"php3",
		"htm",
		"html",
		"css",
		"js"
		);


Aidez-moi s'il vous plaît.
Merci !
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

J'ai juste regardé vite fait ton code, et je ne vois pas où tu incrémentes la variable $dis.....
thepchou- 18 juin 2007 à 16:16
Excuse-moi, je me suis mal exprimé, je veux faire incrémenter la variable en cliquant sur le lien, mais je ne sais pas comment.
J'avais essayé ça :
echo "<th><b>Fichier(s) <a href=\"$PHP_SELF?dir=".rawurlencode($dir)."&amp;dis=".($dis+1)."\">".strtoupper($findExt)."</a></b> (".$countFile.") :</th><td>&nbsp;</td>"; 

Mais ça ne marche pas...

Aidez-moi s'il vous plaît.
Merci !
Ajouter un commentaire
Réponse
+0
moins plus
DSL un tit test
111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111111111111111110000000000000000011111111111111111110000000000000000000011111111111111111111110000000000000011111111111111
Ajouter un commentaire
Réponse
+0
moins plus
Je vous rappel mon code pour afficher une extension :
$ExpExt = $Extensions;
			sort($ExpExt);
			echo "<table cellspacing=\"1\" cellpadding=\"4\" border=\"1\">"; // On crée un tableau en html ; par la suite on affichera les extensions.

			foreach($ExpExt as $findExt)
			{
				$getFile = browse($dir, $findExt); // Appel de fonction browse stocké dans une variable $getFile
				$countFile = count($getFile); // On compte le nombre d'éléments dans $getFile et on le stock dans une variable $countFile.

				if($countFile != 0)
				{
					if( !isset($_GET['dis']) )
					{
						$dis = 0;
					}else
					{
						$dis = $_GET['dis'];
						$dis++;
					}
					
					echo "<tr style=\"font-size:8pt;font-family:arial;text-align=left\">"; // Purement esthétique au niveau de la police contenu dans le tableau : à modifier selon les goûts.
					echo "<th><b>Fichier(s) <a href=\"$PHP_SELF?dir=".rawurlencode($dir)."&amp;dis\">".strtoupper($findExt)."</a></b> (".$countFile.") :</th><td>&nbsp;</td>"; // Affiche une catégorie d'extension et son nombre.

					foreach($getFile as $myFile)
					{
						if($dis != 0)
						{
							echo "<td>- ".$myFile."</td><td>&nbsp;</td>"; // Affiche l'extension de la catégorie.
						}
					}
					echo "</tr>";
				}
			}
			echo "</table>";

Grace à mam*s quand je clique sur un lien j'incrémente $dis et ça m'affiche toutes les extensions.
Comment faire pour n'afficher que sur l'extension que je souhaite visualiser en cliquant sur le lien prédéfinit ?
thepchou- 20 juin 2007 à 11:00
J'ai essayé de faire un foreach de $findExt as $Ext, mais ça ne marche pas (ça crée une erreur).

Comment faire pour chaque extension trouvée, lui affecter une variable dans mon code ?

-> $myFile correspond au fichier avec l'extension.
-> $getFile correspond à la variable contenant l'appel de fonction de browse().

Aidez-moi s'il vous plaît.
Merci !
thepchou- 20 juin 2007 à 12:35
J'ai réussi à créer une variable qui prend chaque extension.
foreach($ExpExt as $findExt)
{
  $getFile = browse($dir, $findExt);
  $countFile = count($getFile);
  if($bis != 0)
  {
    if($countFile != 0)
    {
      echo "<tr style=\"font-size:8pt;font-family:arial;text-align=left\">";
      echo "<th><b>Fichier(s) <a href=\"$PHP_SELF?dir=".rawurlencode($dir)."&bis&dis\">".strtoupper($findExt)."</a></b> (".$countFile.") :</th><td> </td>";
     
       $Ext[] = $findExt; // Cette variable prend chaque extension !
      
      foreach($getFile as $myFile)
      {
          if($dis != 0)
          {
              echo "<td>- ".$myFile."</td><td> </td>";
          }
      }
     echo "</tr>";
  }
}
}

Maintenant je cherche à faire un lien pour chaque extension, et lorsque je clique dessus, ça n'affiche que les fichiers portant la même extension.
Comment faire ? Je ne vois pas l'algorithme à mettre en place...
mam'sthepchou - 21 juin 2007 à 13:33
Ben tout simplement, tu n'as qu'à passer le nom de l'extension dans l'url du lien qui corespond !
Ajouter un commentaire
Ce document intitulé « [PHP]Incrémenter variable lien » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?