affichage, enregistrement et recuperation de l'url

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage, enregistrement et recuperation de l'url

Re: affichage, enregistrement et recuperation de l'url

par bedidaquin01 » 16 sept. 2011, 13:13

bonjour,
merci pour ta réponse.
oui j'ai fait comme tu me l'a renseigné et voici ce qui il affiche:

Code : Tout sélectionner

INSERT INTO paramcom (Code, Marque, Val1, Val2) VALUES ("55", "hg", "uy", "h")L'insertion a été correctement effectuée


concernant le code voici la premeire page: marqapeil.php
<div id="divContent">
        <h1>Fichier -> Marque appareil</h1>
        <form action="marqapeil.php" method="post" >
  <fieldset>
		<p>code:<input name="Code" type="text" size="10" maxlength="3"/>
          <input type="submit" name="Affiche" value="Afficher" /></p>
        
  </fieldset>
  </form>
        <?php
          include('Connections/dbb.php');
		  
            //recuperation du numero de l'ami
			if(isset($_POST['Affiche'])){
             $Code=$_POST['Code'];
			 
		  
         //on se connecte a MYSQL
	$dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());
		
		// on sélectionne la base 
	mysql_select_db($database_dbb,$dbb) or die('Erreur de selection ' . mysql_error());
	
        // on crée la requête SQL
          $requet="SELECT Code, Marque, Val1, Val2 FROM paramcom WHERE Code=".$Code;
		  
		// on execute la requete
          $execute_requet=mysql_query($requet)or die('selection echouée' . mysql_error());
		  
         // affichage des données
			if($result=mysql_fetch_object($execute_requet)){
				
			
?>
       <form method="post" action="marqapeil.php">
       <fieldset> 
              <p>code:<input name="Code" type="text" value="<?php echo($result->Code) ;?>" size="10" maxlength="3"/></p>   
		     <p>Designation:<input type="text" name="Marque" tabindex="20" align="texttop"  value="<?php echo($result->Marque) ;?>"/></p>
            <p>Premiere position:<input type="text" name="Val1" tabindex="20" align="texttop" value="<?php echo($result->Val1) ;?>"/></p>
	      <p>Deuxieme position:<input type="text" name="Val2" tabindex="20" align="texttop" value="<?php echo($result->Val2) ;?>"/></p>
          <input type="submit" value="Modiffier" name="modif"/>
          <input type="submit" value="Valider" name="Valider" />
          <input type="reset" value="annuler" />
          </fieldset>
		  </form> 
		  
<?php
		}else{
			if(isset($_POST['Code'])){
             $Codeparamcom=$_POST['Code'];
		   echo'Ce code n\'existe pas , voulez-vous le créer?';
				   echo'<span align="center"><a href="ajout.php?Codeparamcom='.$Code.'"> Oui </a><a href="#"> Non</a></span>';
}
		}
     mysql_close();
      }
?>
		
			</div>
aussi celle qui récupère l’URL et effectue l'enregistrement
ajout.php
<div id="divContent">
        <h1>Fichier -> Marque appareil</h1>
       
        <?php 
//recuperation des valeurs dans l'url

    if(isset($_GET['Codeparamcom'])){
      $Codep= $_GET['Codeparamcom'];
    }else{}
        ?>
        <form method="post" action="ajout.php">
    <fieldset> 
  <p>code:<input name="Code" type="text" value="<?php echo htmlentities($Codep); ?>" size="10" maxlength="3"/></p>   
		    <p>Designation:<input type="text" name="Marque" tabindex="20" align="texttop"/></p>
           <p>Premiere position:<input type="text" name="Val1" tabindex="20" align="texttop"/></p>
	      <p>Deuxieme position:<input type="text" name="Val2" tabindex="20" align="texttop"/></p> 
          <input type="submit" value="Valider" name="Valider" />
          <input type="reset" value="annuler" />
          </fieldset>
		  </form>
        
        <?php
          include('Connections/dbb.php');
		  
		  //recuperation des valeurs des variables
		if(isset($_POST['Code'])) $Code=$_POST['Code'];
	else $Code="";
	
	if(isset($_POST['Marque'])) $Marque=$_POST['Marque'];
	else $Marque="";
	
	
	if(isset($_POST['Val1'])) $Val1=$_POST['Val1'];
	else $Val1="";
	
	if(isset($_POST['Val2'])) $Val2=$_POST['Val2'];
	else $Val2="";
	if(empty($Code) || empty($Marque) || empty($Val1) || empty($Val2)) echo 'Remplir tous les champs';
	else
	{
               
         //on se connecte a MYSQL
	$dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());
		
		// on sélectionne la base 
	mysql_select_db($database_dbb) or die('Erreur de selection ' . mysql_error());
	
        // on crée la requête SQL
  $requet= 'INSERT INTO paramcom (Code, Marque, Val1, Val2) VALUES ("'.$Code.'", "'.$Marque.'", "'.$Val1.'", "'.$Val2.'")';
		  
		  echo $requet;
		// on execute la requete
          $insert_requet=mysql_query($requet)or die('selection echouée' . mysql_error());
		  
         // affichage des données
			if($insert_requet){
				 echo('L\'insertion a été correctement effectuée');
		
	           }
          else
          {
             echo('L\'insertion à échouée');
		  }
	
     mysql_close();
      }
?>
		
			</div>
merci encore

Re: affichage, enregistrement et recuperation de l'url

par moogli » 16 sept. 2011, 11:40

comme déjà indiqué le code fournit ne contient pas la ligne indiqué par le message d'erreur (ligne 78 il y a 42 dans le message et l'index en question n'y est pas présent) je ne que me répéter : à la ligne 78 du fichier ajout.php il y a l'utilisation de 'Codeparamcom' comme index d'un tableau or celui ci n'existe pas. Classique il s'agit de l'emploi de valeur issu de formulaire ou d'url qui n'y sont pas ($_GET['Codeparamcom'] ou $_POST['Codeparamcom'] alors que Codeparamcom n'est pas dans l'url ou le formulaire). sans le code en question (et le formulaire ou l'url prévu) je ne peu en dire plus

je ne la comprend pa bien ,pouvez vous mieu la poser?
ajoute : echo $requet; avant le mysql_query($requet) dans le code et colle sur le forum ce que cela affiche !


@+

Re: affichage, enregistrement et recuperation de l'url

par bedidaquin01 » 16 sept. 2011, 03:18

Notice:indefined index :Codeparamcom
Il n'y a pas d'index de ce nom dans le code, c'est quoi le message d'erreur exact ?

que donne un echo $requet; avant le mysql_query ?


@+
bonjour
merci pour la reponse
voila le message qu'il m'envoi dans le champ code

Code : Tout sélectionner

<br /><b>Notice</b>: Undefined index: Codeparamcom in <b>F:\EasyPHP-5.3.7.0\www\siteessai\ajout.php</b> on line <b>78</b><br />
a la question de savoir

Code : Tout sélectionner

que donne un echo $requet; avant le mysql_query ?
je ne la comprend pa bien ,pouvez vous mieu la poser?
merci de me veni en aide

Re: affichage, enregistrement et recuperation de l'url

par moogli » 15 sept. 2011, 20:03

Notice:indefined index :Codeparamcom
Il n'y a pas d'index de ce nom dans le code, c'est quoi le message d'erreur exact ?

que donne un echo $requet; avant le mysql_query ?


@+

Re: affichage, enregistrement et recuperation de l'url

par bedidaquin01 » 15 sept. 2011, 19:00

merci pour la réponse,
car j'ai modifier mon code de cette façon:
 //recuperation des valeurs des variables
		if(isset($_POST['Code'])) $Code=$_POST['Code'];
	else $Code="";
	
	if(isset($_POST['Marque'])) $Marque=$_POST['Marque'];
	else $Marque="";
	
	
	if(isset($_POST['Val1'])) $Val1=$_POST['Val1'];
	else $Val1="";
	
	if(isset($_POST['Val2'])) $Val2=$_POST['Val2'];
	else $Val2="";
	if(empty($Code) || empty($Marque) || empty($Val1) || empty($Val2)) echo 'Remplir tous les champs';
	else
	{
               
         //on se connecte a MYSQL
	$dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());
		
		// on sélectionne la base 
	mysql_select_db($database_dbb) or die('Erreur de selection ' . mysql_error());
	
        // on crée la requête SQL
  $requet= 'INSERT INTO paramcom (Code, Marque, Val1, Val2) VALUES ("'.$Code.'", "'.$Marque.'", "'.$Val1.'", "'.$Val2.'")';
		  
		// on execute la requete
          $insert_requet=mysql_query($requet)or die('selection echouée' . mysql_error());
		  
         // affichage des données
			if($insert_requet){
				 echo('L\'insertion a été correctement effectuée');
		
	           }
          else
          {
             echo('L\'insertion à échouée');
		  }
	
     mysql_close();
      }
?>
mais comme erreur il m'envoie toujours le formulaire avec erreur:
- Notice:indefined index :Codeparamcom
-Quand j'actualise cette page envoyé sa insert encore ces même enregistrement.
merci de me venir en aide.

Re: affichage, enregistrement et recuperation de l'url

par moogli » 15 sept. 2011, 18:43

au pif vu que les numéros de lignes ne sont pas les mêms le soucis vient de la ?
$Code = $_POST['Code'] ;
//Code
$Marque = $_POST['Marque'] ;
//Marque:
$Val1 = $_POST['Val1'] ;
//Val1:
$Val2 = $_POST['Val2'] ;

il ne faut utiliser directement des valeurs qui viennent de formulaire ou d'url tu ne peux être certain que le formulaire soit comme tu l'a envoyé au navigateur (oui oui c'est modifiable coté client !)

tu peux t'inspirer du tuto de cyrano pour cela faq-tutoriels/valider-formulaire-comple ... 12858.html

les lignes vides sont dûe au fait que lors du premier affichage du formulaire les variables utilisées dans la requête sont vide (parce que $_POST est vide vu que le formulaire n'a pas était soumis) et donc insertion vide.

regarde le tuto et essai de modifier ton code dans ce sens :)

@+

Re: affichage, enregistrement et recuperation de l'url

par bedidaquin01 » 15 sept. 2011, 16:48

merci de vous sourcillez de mon problème.
oui c'est bien la mise en oeuvre qui me pose des problemes.

au faire quand je recois le code dans la page ajout.php, il m'envoie comme erreur:

Notice: Undefined index: Codeparamcom in C:\Program Files\EasyPHP-5.3.7.0\www\siteessai\ajout.php on line 87Notice: Undefined index: Code in C:\Program Files\EasyPHP-5.3.7.0\www\siteessai\ajout.php on line 114
Notice: Undefined index: Marque in C:\Program Files\EasyPHP-5.3.7.0\www\siteessai\ajout.php on line 116
Notice: Undefined index: Val1 in C:\Program Files\EasyPHP-5.3.7.0\www\siteessai\ajout.php on line 118
Notice: Undefined index: Val2 in C:\Program Files\EasyPHP-5.3.7.0\www\siteessai\ajout.php on line 120
L'insertion a été correctement effectuée


et aussi il n'enregistre pas dans la base de donnée mais enregistre plutot des champs vide.

merci encore

Re: affichage, enregistrement et recuperation de l'url

par moogli » 15 sept. 2011, 15:56

salut,

c'est quoi le soucis en fait ?

je suis désolé mais je vais lire les 3 pages et valider le code. indique nous quel est le soucis le ou les eventuels messages d'erreurs et on devrais pouvoir t'aider.

a priori tu a réfléchie a la structure de ton application est ce la mise en œuvre qui pose problème ?

@+

affichage, enregistrement et recuperation de l'url

par bedidaquin01 » 15 sept. 2011, 15:45

je dois réaliser une page avec un formulaire d'enregistrement qui se présente comme suite:

on saisie un code dans un formulaire:

-si ce code existe dans la base de donnée après validation on affiche un formulaire avec les autres champs de cette table dans la même page.

-si ce code n'existe pas dans la base de donnée on envoie un message disant que se code n'existe pas et on pose la question demandant si oui ou non vouloir créer ce code:

-si oui, on envoi un formulaire vide avec le code intégré ensuite on remplir les autres champs et on valide.

je pense que c'est tout .
voici un exemple de mes page code
page 1:marqapeil.php
<div id="divContent">
        <h1>Fichier -> Marque appareil</h1>
        <form action="marqapeil.php" method="post" >
  <fieldset>
		<p>code:<input name="Code" type="text" size="10" maxlength="3"/>
          <input type="submit" name="Affiche" value="Afficher" /></p>
        
  </fieldset>
  </form>
        <?php
          include('Connections/dbb.php');
		  
            //recuperation du numero de l'ami
			if(isset($_POST['Affiche'])){
             $Code=$_POST['Code'];
			 
		  
         //on se connecte a MYSQL
	$dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());
		
		// on sélectionne la base 
	mysql_select_db($database_dbb,$dbb) or die('Erreur de selection ' . mysql_error());
	
        // on crée la requête SQL
          $requet="SELECT Code, Marque, Val1, Val2 FROM paramcom WHERE Code=".$Code;
		  
		// on execute la requete
          $execute_requet=mysql_query($requet)or die('selection echouée' . mysql_error());
		  
         // affichage des données
			if($result=mysql_fetch_object($execute_requet)){
				
			
?>
       <form method="post" action="marqapeil.php">
       <fieldset> 
              <p>code:<input name="Code" type="text" value="<?php echo($result->Code) ;?>" size="10" maxlength="3"/></p>   
		     <p>Designation:<input type="text" name="Marque" tabindex="20" align="texttop"  value="<?php echo($result->Marque) ;?>"/></p>
            <p>Premiere position:<input type="text" name="Val1" tabindex="20" align="texttop" value="<?php echo($result->Val1) ;?>"/></p>
	      <p>Deuxieme position:<input type="text" name="Val2" tabindex="20" align="texttop" value="<?php echo($result->Val2) ;?>"/></p>
          <input type="submit" value="Modiffier" name="modif"/>
          <input type="submit" value="Valider" name="Valider" />
          <input type="reset" value="annuler" />
          </fieldset>
		  </form> 
		  
<?php
		}else{
			$Codeparamcom=$_POST['Code'];
		   echo'Ce code n\'existe pas , voulez-vous le créer?';
				   echo'<span align="center"><a href="ajout.php?Codeparamcom='.$Code.'"> Oui </a><a href="#"> Non</a></span>';
}
     mysql_close();
      }
?>
ensuite page2:ajout.php
<div id="divContent">
        <h1>Fichier -> Marque appareil</h1>
        <?php 
		//recuperation des valeurs dans l'url
			
			$Code= $_GET['Codeparamcom'];
		?>
        
        <form method="get" action="ajout.php">
       <fieldset> 
              <p>code:<input name="Code" type="text" value="<?php echo '.$Codeparamcom.';?>" size="10" maxlength="3"/></p>   
		     <p>Designation:<input type="text" name="Marque" tabindex="20" align="texttop"  value=""/></p>
            <p>Premiere position:<input type="text" name="Val1" tabindex="20" align="texttop" value=""/></p>
	      <p>Deuxieme position:<input type="text" name="Val2" tabindex="20" align="texttop" value=""/></p>
          
          <input type="submit" value="Valider" name="Valider" />
          <input type="reset" value="annuler" />
          </fieldset>
		  </form>
        
        <?php
          include('Connections/dbb.php');
		  
             
			
			
			
		  
         //on se connecte a MYSQL
	$dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());
		
		// on sélectionne la base 
	mysql_select_db($database_dbb,$dbb) or die('Erreur de selection ' . mysql_error());
	
	//recuperation des valeurs des variables
	$Code = $_POST['Code'] ;
  //Code
    $Marque = $_POST['Marque'] ;
  //Marque:
    $Val1 = $_POST['Val1'] ;
  //Val1:
    $Val2 = $_POST['Val2'] ;
  //Val2:
	
        // on crée la requête SQL
          $requet= "INSERT INTO paramcom (Code, Marque, Val1, Val2) VALUES ('$Code', '$Marque', '$Val1', '$Val2')";
		  
		// on execute la requete
          $execute_requet=mysql_query($requet)or die('selection echouée' . mysql_error());
		  
         // affichage des données
			if($execute_requet){
				 echo("L'insertion a été correctement effectuée") ;
		
	           }
          else
          {
             echo("L'insertion à échouée") ;
         	
     mysql_close();
      }
?>
		
			</div>
je vous prie de bien vouloir me venir en aide car j'ai énormément besoin de ce script pour la réalisation d'un projet comme débutant.