Help: faire 1 include différent en fonction du bouton cliqué

Petit nouveau ! | 3 Messages

04 oct. 2010, 21:11

Bonjour à tous,
Je suis débutante et nouvelle sur le site. Je réalise un site internet avec des fonctions très simple en php mais là... je bloque. J'aimerai faire un include de 3 pages php différentes. Donc 3 include. lorsque l'on cliques sur le bouton correspondant ou en cliquant sur un mot(lien). :shock:

Je m'explique... :D
Sur ma page web, j'ai 3 boutons et lorsque je clique sur 1 des 3 boutons, ca appelle la fonction "include" et insère le contenu d'une autre page php dans un <div> juste en dessous des 3 boutons.
A chaque fois que je clique sur un des 3 boutons ca ferait un appel de texte de la page correspondante au bouton. J'espère avoir été claire.. :roll:
J'espère que quelqu'un pourra m'aider

Merci

France

ViPHP
ViPHP | 2291 Messages

04 oct. 2010, 21:33

Bonsoir,

Essaye avec un switch()

:arrow: Exemple :
<?php

/**
* Exemple 3 boutons
*/

echo '<a href="'.$_SERVER['PHP_SELF'].'?bt=1">Bouton 1</a> | <a href="'.$_SERVER['PHP_SELF'].'?bt=2">Bouton 2</a> | <a href="'.$_SERVER['PHP_SELF'].'?bt=3">Bouton 3</a>';
echo '</BR>';

/**
* Initialisation des la variable action
*/

$action = (iSset($_GET['bt']) ? $_GET['bt'] : NULL );

/**
* Instruction.
*/

	switch ($action)
	 {
	  case 1:

	  		echo 'Ici include par BT 1';

	    break;

	  case 2:

	  		echo 'Ici include par BT 2';

	    break;

	  case 3:

	  		echo 'Ici include par BT 3';

	    break;

	  default;

	       echo 'Ici include par default';

	    break;
	}
?>
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 3 Messages

04 oct. 2010, 23:44

Un tout grand merci!! Et si je désire inserer une page.ph et non du texte dans le include. Je fais comment? :shock:

Merci c'est déjà super =D>

France

ViPHP
AB
ViPHP | 5818 Messages

05 oct. 2010, 01:07

Ben c'est pareil, le 1 correspondra par exemple à la page toto.php, le 2 à titi.php et le trois à tata.php. C'est à toi de faire les correspondances.

       
<?php

/**
* Exemple 3 boutons
*/

echo '<a href="'.$_SERVER['PHP_SELF'].'?bt=1">Bouton 1</a> | <a href="'.$_SERVER['PHP_SELF'].'?bt=2">Bouton 2</a> | <a href="'.$_SERVER['PHP_SELF'].'?bt=3">Bouton 3</a>';
echo '</BR>';

/**
* Initialisation des la variable action
*/

$action = (iSset($_GET['bt']) ? $_GET['bt'] : NULL );

/**
* Instruction.
*/
 switch ($action)
         {
          case 1:

                        include('toto.php');

            break;

          case 2:

                        include('titi.php');

            break;

          case 3:

                         include('tata.php');
            break;

          default:

               include('index.php'); //si mauvais nombre on renvoie dans cet exemple à la page d'index

 
        }
?>
L'important est de ne pas passer directement la page dans la variable $_GET sans faire de contrôle par la suite car ce serait une faille de sécurité MAJEURE (car un pirate pourrait inclure la page qu'il veut). L'utilisation d'un nombre que tu fais correspondre à une page est une bonne solution.

Tu pourrais faire passer le nom de la page dans la variable $_GET mais il faudrait faire un contrôle par la suite.
Par exemple tu auras le même résultat avec cette variante.
<?php

/**
* Exemple 3 boutons
*/
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=toto.php">Bouton 1</a> | <a href="'.$_SERVER['PHP_SELF'].'?page=titi.php">Bouton 2</a> | <a href="'.$_SERVER['PHP_SELF'].'?page=tata.php">Bouton 3</a>';
echo '</BR>';

$pages_autorises = array('toto.php','titi.php','tata.php');

$action = isset($_GET['page']) ? $_GET['page'] : NULL ;

if(isset($action)) 
{
	if (in_array($action,$pages_autorises)) // contrôle que $action est un élément du tableau $pages_autorises
	include ($action); 
	else 
	include('index.php');// sinon on redirige vers la page d'index
}

Eléphanteau du PHP | 18 Messages

05 oct. 2010, 01:14

petit passage pour dire qui a deux fils de discussions :


http://www.siteduzero.com/forum-83-5658 ... outon.html

ViPHP
AB
ViPHP | 5818 Messages

05 oct. 2010, 03:32

Et oui mais les réponses sont déjà ici ... alors qu'ailleurs ils dorment :)

Petit nouveau ! | 3 Messages

05 oct. 2010, 10:06

Un tout tout grand merci!!!! Ca fonctionne super!!! Vraiment un tout grand merci pour ton aide!! Suis super contente!!! yihaaaaaaaaaa!!!! =D> =D>

Bonne journée à tous