probleme avec if isset get

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 : probleme avec if isset get

Re: probleme avec if isset get

par squallblanc » 03 nov. 2011, 23:14

oui pas assez car il manque "", avant la variable .idCom.

Re: probleme avec if isset get

par moogli » 03 nov. 2011, 20:10

Heu nan nan le message d'erreur dit que la requête ne remplie pas la ligne complètement ou de trop c'est pas du tout la même chose car le 1er champs est bien renseigner !

En clair y a trop ou pas assez de valeurs dans le value de la requête.


@+

Re: probleme avec if isset get

par squallblanc » 03 nov. 2011, 20:05

bonjour merci pour votre aide mais le code me retourne l'erreur :

Erreur SQL !INSERT INTO messages VALUES("", "2011-11-03 18:40:15", "test", "test", "[email protected]", "hgjg", "dfdsfsdfsdfsdf")
Column count doesn't match value count at row 1

Car l'id n'est pas renseigné.

Re: probleme avec if isset get

par aurel80 » 03 nov. 2011, 06:21

Bonjour,

évitez d'utilisé mysql_espace_string cette fonction est complétement dépasser depuis un moment,utilisée maintenant mysql_real_espace_string,je vous est corriger votre code et normalement l'erreur qui vous embête :
<?php 
include('../php/connexion_bd.php');     

if(isset($_GET['idCom']))
{
$idCom = $_GET['idCom'];
}

    // on teste si le formulaire a bien été soumis
    if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') { 
       if (empty($_POST['nom']) || empty($_POST['prenom']) || empty($_POST['email']) || empty($_POST['message'])) { 
          $erreur = 'Au moins un des champs est vide.'; 
       } 
       else { 
                        mysql_connect($nom_du_serveur, $nom_utilisateur, $passe);
                        mysql_select_db($nom_de_la_base) or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
          // si tout a été bien rempli, on insère le message dans notre table SQL
          $sql = 'INSERT INTO messages VALUES("'.$idCom.'", "'.date("Y-m-d H:i:s").'", "'.mysql_real_escape_string($_POST['nom']).'",
		  "'.mysql_real_escape_string($_POST['prenom']).'", "'.mysql_real_escape_string($_POST['email']).'",
		  "'.mysql_real_escape_string($_POST['message']).'")'; 
          mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
          mysql_close(); 
     
          header('Location: index.php'); 
          exit(); 
       }  
    } 
?>
 

Re: probleme avec if isset get

par squallblanc » 02 nov. 2011, 22:28

tu pense a quoi exactement ? car j'ai testé tout ce que je connaissais...

Ca je pense : "'.$idCom.'"? mais c pareil ca change rien par contre j'ai fais une bidouille qui marche mais c'est horrible comme code :
<?php 
include('../php/connexion_bd.php');	
if(isset($_GET['idCom']))
{
$_POST['idCom'] = $_GET['idCom'];
}
    // on teste si le formulaire a bien été soumis
    if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') { 
       if (empty($_POST['nom']) || empty($_POST['email']) || empty($_POST['objet']) || empty($_POST['message'])) { 
          $erreur = 'Au moins un des champs est vide.'; 
       } 
       else { 
			mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
			mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
          // si tout a été bien rempli, on insère le message dans notre table SQL
          $sql = 'INSERT INTO messages VALUES("","'.$_POST['idCom'].'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['nom']).'", "'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string($_POST['objet']).'", "'.mysql_escape_string($_POST['message']).'")'; 
          mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
          mysql_close(); 

			echo $mess="<center><span style='color:green; font-weight:bold;'>Nous avons bien reçus votre message. Nous vous répondrons prochainement<br /> Cette fenetre ce fermera automatiquement<br /></span><A HREF='javascript:window.close()'>Fermer la fenetre</A><noscript></center>";
          exit(); 
       }  
    } 
?>
et pour le formulaire : 
[code]
				 <form name="form1" method="post" action="pop_contact.php">
                 <input name="idCom" type="hidden" id="idCom" value="<?php if (isset($_POST['idCom'])) echo stripslashes(htmlentities(trim($_POST['idCom']))); ?>">
					  <table width="430" border="0" cellpadding="2" cellspacing="0" class="txt_petit_noir">
					 <tr>
					   <td bgcolor="#EAEEED">&nbsp;</td>
					   <td bgcolor="#EAEEED"><strong>Nom* </strong></td>
					   <td bgcolor="#EAEEED"><input name="nom" type="text" id="nom" size="49" value="<?php if (isset($_POST['nom'])) echo stripslashes(htmlentities(trim($_POST['nom']))); ?>"></td>

					 </tr>
					 <tr>
					   <td>&nbsp;</td>
					   <td>Pr&eacute;nom</td>
					   <td><input name="prenom" type="text" id="prenom" size="49" value="<?php if (isset($_POST['prenom'])) echo stripslashes(htmlentities(trim($_POST['prenom']))); ?>"></td>
[/code]
Ce n'est pas digne d'un codeur mais bon ca marche :shock:

Re: probleme avec if isset get

par xTG » 02 nov. 2011, 22:04

Problème de quotes. ;)

probleme avec if isset get

par squallblanc » 02 nov. 2011, 20:57

bonjours a tous :)
je sollicite votre aide car j'ai un formulaire de contact qui insert les données dans une table message. Le formulaire contact fonctionne parfaitement tous est stocké dans ma base sauf un champ :colere2: ! Celui de l'id que je recupère via un if isset get.

Voici le code:
<?php 
include('../php/connexion_bd.php');	

if(isset($_GET['idCom']))
{
$idCom = $_GET['idCom'];
}

    // on teste si le formulaire a bien été soumis
    if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') { 
       if (empty($_POST['nom']) || empty($_POST['prenom']) || empty($_POST['email']) || empty($_POST['message'])) { 
          $erreur = 'Au moins un des champs est vide.'; 
       } 
       else { 
			mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
			mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
          // si tout a été bien rempli, on insère le message dans notre table SQL
          $sql = 'INSERT INTO messages VALUES("",".$idCom.", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['nom']).'", "'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string($_POST['message']).'")'; 
          mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
          mysql_close(); 
     
          header('Location: index.php'); 
          exit(); 
       }  
    } 
?>
Le champ idCom reste vide alors que si je fais un echo sur la variable $idCom ca affiche parfaitement le numero de l id passé dans l'url.
Merci