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

Langage PHP Discussion :

Passage de variable et test


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut Passage de variable et test
    Voila le code ou j'envoi la requete d'ajout, puis on va sur la page principale dont le code sous celui la :
    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
    <?php
    session_start();
    include("../../connect.php");
    //on verifie que l'utilisateur est bien connecté
    if ( isset($_SESSION) && (empty($_SESSION['utilisateur'])) && (empty($_SESSION['motdepasse'])) ) {
    // si l'utilisateur n'est pas connecté alors on le renvoi vers la page de connexion
    header("Location: ../connexion.php");
    }
    else { 
    //Création de la requete d'ajout d'une nouvelle entrée dans la table choisie
    $table = $_POST['table'];
    $sql = 'INSERT INTO '.$table.' (';
    $i = 0;
    $j = 0;
    //Boucle permettant de mettre dans la requete tous les noms de champs
    foreach($_POST as $nomchamp => $valeur) {
    	//IF permettant d'éliminer table car il est envoyé avec la méthode POST
       	if ($nomchamp != 'table') {
    		if($i > 0) $sql .= ', ';
       		$sql .= $nomchamp;
       		$i++;
       		}
    	}
    $sql .= ') VALUES (';
    //Boucle permettant de mettre dans la requete toutes les valeurs des champs
    foreach($_POST as $nomchamp => $valeur) {
    	if ($valeur <> $table) {
    		//IF permettant d'éliminer le nom de la table car il est envoyé avec la méthode POST
    		if($j > 0) $sql .= ', ';
    		$sql .= '\''.$valeur.'\'';
    		$j++;
    		}
    	}
    $sql .= ');';
    //Execution de la requete
    $etat=mysql_query($sql);
      if (!$etat) 
       $messageErreur = mysql_errno().' : '.mysql_error();
      mysql_close();
    //envoi d'une variable pour afficher un message de confirmation
    header('Location: admintable.php?afficherConfirm=1&table='.$table.'');
    }
    ?>
    Le code de la page principale :
    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
    <?php
    session_start();
    include("../../connect.php");
    //on verifie que l'utilisateur est bien connecté
    if ( isset($_SESSION) && (empty($_SESSION['utilisateur'])) && (empty($_SESSION['motdepasse'])) ) {
    // si l'utilisateur n'est pas connecté alors on le renvoi vers la page de connexion
    header("Location: ../connexion.php");
    }
    else { 
    ?>
    <html>
    <HEAD>
     <BASE HREF="http://127.0.0.1/GP/">
     <TITLE>Administration des tables</TITLE>
    </HEAD>
    <!--appel du menu-->
    <?
    include("../../menu.html"); 
    ?>
    <body BGCOLOR="#FFFFFF" topmargin="0" leftmargin="50" marginwidth="50" marginheight="0" background="images/index/arbres_gris.gif">
    <table width="696" border="0" align="center">
      <tr>
    	<td width="100">&nbsp;
     
    	</td>
        <td height="19">
          <div align="center"><font face="Comic Sans MS" size="4"><b>LE CERCLE G&Eacute;N&Eacute;ALOGIQUE 
            DE PICARDIE</b></font></div>
        </td>
    	<td width="100">
    		<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    		<a href="admin/deconnexion.php" onclick="return confirm('Voulez vous réellement vous déconnecté ?')">Déconnexion</a></font>
    	</td>
      </tr>
    </table>
    <br>
    <p align="center"><img src="images/index/familleok.gif" width="693" height="70"></p>
     
    <table width="696" border="0" align="center">
      <tr> 
        <td> 
          <div align="center"> 
            <p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="4">Administration des tables</font></b></p>
            </div>
        </td>
    	</tr>
    </table>
    <form method="POST" action="admin/page/admintable.php">
    <table width="696" align="center">
    <tr>
    	<td align="center">
    	<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Choississez une table à administrer : </font>
     
    		<select name="table">
    			<?
    			$droit=$_SESSION['droit'];
       			switch($droit)
       			{
              		//Cas quand c'est l'administrateur droit=0
    				case '0':
              		$tables = mysql_query("SHOW TABLES;");
    				while($tables_array = mysql_fetch_row($tables)) {
    					echo '<option>'.$tables_array[0].'</option><br />';
    					}
              		break;
              		//Cas quand c'est un utilisateur quelconque droit=1
    				case '1':
              		$tables = mysql_query("SHOW TABLES;");
    				//Boucle permettant de ne pas afficher la table identification pour les utilisateurs quelconques
    				while($tables_array = mysql_fetch_row($tables)) {
    					if ($tables_array[0] != 'identification') {
    						echo '<option>'.$tables_array[0].'</option><br />';
    						}
    					}
              		break;
              	}
    			?>
    		</select>
    	</td>
    </tr>
    <tr>
    	<td align="center">
    	<br><br>
    	<input type="submit" value="Administrer la table">
     
    	</td>
    </tr>
    </table>
    </form>
    <? 
    	if(array_key_exists('table', $_POST)){ 
    	$table=$_POST['table'];
    	$reqsql = 'SELECT * FROM '.$table;
    	$result = mysql_query($reqsql);
    	//commpte le nombre de champ, cela servira pour l'affichage de la table sélectionnée
    	$nb_champ = mysql_num_fields($result);
    	//Pour le nombre total de colonne avec modifier et supprimer inclus
    	$nb_champtot = $nb_champ + 2;
    ?>
     
    <table width="696" align="center">
    <tr>
    	<td align="center">
    	<br><br>
    	<font face="Verdana, Arial, Helvetica, sans-serif" size="4">
    	<b>
    	Table s&eacute;lectionn&eacute;e : <? echo $table;?>
    	<br><br>
    	</b>
    	</font>
    	</td>
    </tr>
    </table>
     
    <table width="696" border="0" cellpadding="0" cellspacing="0" bgcolor="#EEFFBB" align="center"><tr><td>
    <table width="100%" align="center" border=0 cellspacing="1" cellpadding="2">
          <tr bgcolor="#CCCCCC">
    		<td colspan="<? echo $nb_champtot?>" align="center"><a href="admin/page/ajout.php?table=<? echo $table;?>"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Ajouter une entrée dans cette table</b></font></a></td>
    	  </tr>
    	  <tr bgcolor="#666666">
         		<?
    			//affichage des noms de champs de la table choisie
    			$sql = 'DESCRIBE '.$table;
    			$champs = mysql_query($sql);
    			while($table_champs = mysql_fetch_array($champs))
    			{
    			?>
    			<th><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    			<? echo $table_champs[0]; ?>
    			</font></th>
    			<? } ?>
          		<th>&nbsp;</th><th>&nbsp;</th>
          </tr>
          <?php
    		//affichage de la table sélectionnée
    		for ($i=0; $i < mysql_num_rows($result); ++$i)
            {
              echo '<tr bgcolor="#CCCCCC">';
              mysql_data_seek($result, $i);
              $champs = mysql_fetch_array($result);
              for ($col=0; $col<$nb_champ; ++$col)
    			echo '<td align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$champs[$col].'</font></td>';
              	//demande de confirmation de suppression
    			$vars= 'ID='.$champs[0];
    			echo '<td align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="admin/page/modif.php?'.$vars.'&table='.$table.'">Modifier</a></font></td>';			
    			echo '<td align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="admin/page/suppr.php?ID='.$champs[0].'&table='.$table.'" onclick="return confirm(\'Voulez vous réellement supprimer cette entrée ?\')">Supprimer</a></font></td></tr>';
    			}
    		//Affichage d'une indication concernant l'utilisation de la colonne "nouv"
    		echo '<tr bgcolor="#666666">';
    		echo '<td colspan="'.$nb_champtot.'" align="center"><P align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>S&acute;il y a une colonne NOUV, vous pouvez indiqué si c\'est nouveau ou non. Si vous mettez &quot;o&quot;, l\'entrée sera considérée comme nouvelle et inversement si vous mettez &quot;n&quot;.</b></font></P></a></td>';
    		}
    		mysql_close();
          ?>
        </table>
      </table>
    <!-- Message de confirmation d'ajout, de modification ou de suppression -->
    <table width="696" align="center" border=0>
    <tr>
    <td align="center">
    <font face="Verdana, Arial, Helvetica, sans-serif" size="4">
    <b>
    <?
    if(array_key_exists('afficherConfirm', $_GET)){
       $confirmation=$_GET['afficherConfirm'];
       switch($confirmation)
       {
              case '1':
              echo 'Ajout dans la table effectu&eacute;e.';
              break;
              case '2':
              echo 'Modification de la table effectu&eacute;e.';
              break;
              case '3':
              echo 'Suppression dans la table effectu&eacute;e.';
              break;
             }
    }
    ?>
    </b>
    </font>
    </td>
    </tr>
    </table>
    </body>
    </html>
    <? } ?>
    en fait j'aimerais quand j'ai ajouté une nouvelle entree qu'il réaffiche la table ou on a effectué cette entrée, c'est pourquoi je fait passer la table dans l'adresse, evidemment ca ne marche pas car je ne vois comment verifier s'il y a un get en plus de la verification du post qu'il y a deja

  2. #2
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Bon j'ai lu juste les 2 dernières lignes de ton post...

    Tu dis des choses étranges :

    Citation Envoyé par budiste
    ...je ne vois comment verifier s'il y a un get en plus de la verification du post qu'il y a deja
    Tu fais tous les isset que tu veux normalement... ou alors montre-nous une portion de code plus précise... là ou ça se passe.

    Et puis tu as l'air de connaître les SESSION sert-en.

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  3. #3
    Membre éprouvé Avatar de trattos
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 000
    Points : 1 080
    Points
    1 080
    Par défaut
    Mettre 500 lignes de code àa sert à rien dis nous quel est ton problême clairement et les lignes consernées

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 55
    Points : 54
    Points
    54
    Par défaut
    De toute façon les GET tu les vois dans l'url ..

    Montre-nous la partie du code qui est concernée parce ta question

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
       if(array_key_exists('table', $_POST)){
       $table=$_POST['table'];
       $reqsql = 'SELECT * FROM '.$table;
       $result = mysql_query($reqsql);
    voila je vais essayer d'etre plus precis, en fait sur ma page principale il affiche une table en fonction du nom choisi par l'utilisateur qui peut ensuite effectuer diverse operations, moi j'aimerais que quand il a fini une operation qu'il soit renvoyer sur la page principale et en plus qu'il est toujours d'afficher la table qu'il modifié
    c'est pourquoi j'aimerais ajouter une verification du get ou passe le nom de la table en plus du post

    dites moi si c'est pas encore assez claire

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <? 
    	if((array_key_exists('table', $_POST))&&(array_key_exists('table', $_GET))){ 
    	$table=$_POST['table'];
    	$table=$_GET['table'];
    	$reqsql = 'SELECT * FROM '.$table;
    voilà j'ai mis ça mais le problème c'est que ca ne m'affiche pas ma table après, comment apres le if dire de faire soit le post soit le get ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(array_key_exists('table', $_REQUEST)){ 
    	$table=$_REQUEST['table'];
    	$reqsql = 'SELECT * FROM '.$table;
    j'ai mis ça, et maintenant ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test conditionnel et passage de variables javascript html
    Par peterpan3000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/10/2014, 14h53
  2. Passage de variable dans un lien asp
    Par VirginieGE dans le forum ASP
    Réponses: 4
    Dernier message: 27/07/2004, 10h06
  3. [Kylix] passage de variable en Libc
    Par zheng dans le forum EDI
    Réponses: 11
    Dernier message: 06/05/2004, 14h14
  4. Passage de variable par methode post ?
    Par oazar dans le forum Flash
    Réponses: 33
    Dernier message: 16/10/2003, 17h03
  5. [langage] Passage de variables...
    Par martijan dans le forum Langage
    Réponses: 8
    Dernier message: 30/07/2003, 09h48

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