problème insertion de données

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 : problème insertion de données

resolution du pb

par rakizm » 30 juin 2006, 11:59

je vous explique comment je suis arrivé à mes fins

ma variable lors de la première insertion passe par un seul formulaire
mais quand je veux réinsérer la meme variable(c à d créer un doublon) elle passe par deux formulaire et c'est la que ça posait problème pas d'espace mais d'apostrophe qui lui a créé le pb d'espace enfin bref


ce qu'il fallait faire c'est tester si la variable est passé par 1 ou 2 formulaires
dans le premier cas on fait un addslashes et dans le deuxieme un stripslashes cause:php rajoute des "\" à chaque passage dans un formulaire.

:wink: :P

à bientot

par ouckileou » 28 juin 2006, 17:19

C'est $_POST qu'il faut utiliser, et non plus $HTTP_POST_VARS

Bon et sinon quand tu fais ton print_r() c'est bon ? la valeur est bonne ?
        print_r($_POST); // là c'est bon ?
        $query="insert into eco_nom (id_nom,nom) values ('$id_nom','$nom')";
        echo $query; // et là c'est plus bon ?
N'en dis pas plus à chaque, on adore essayer de deviner

Re: plus de détail

par rakizm » 28 juin 2006, 17:11

/echo"<pre>";		
		//print_r($HTTP_POST_VARS	);
		$query="insert into eco_nom (id_nom,nom) values ('$id_nom','$nom')";
		echo $query;
		//echo $nom;
dbi_query($db_name,$query,$db_driver);


//print "ssssssssssssssss".$nom;
		echo"<table class=menu_N4_comm width=100%>";
		echo"<form name=F method='POST' action=newPM.php>";
		echo"<input type=hidden value='$type' name=type>";
		echo"<input type=hidden value='$id_category' name=category>";
		echo"<input type=hidden value='$checked' name=checked>";
		echo"<input type=hidden value='creer' name=action>";
		echo"<input type=hidden value='$fournisseur' name=fournisseur>";
		echo"<input type=hidden value='$agence' name=agence>";
		echo"<input type=hidden value='1' name=validate>";
		$new_nom=$HTTP_POST_VARS["nom"]	;
		$new_nom=stripslashes($new_nom);
		echo $new_nom;
		echo"<input type='hidden' value=".$new_nom." name='nom'>";

		echo"<tr><td class=menu_N3_comm colspan=2><b>Liste des sociétés similaire à <font color='ffffff'>".$nom."</font></b></td></tr>";		
		$i=0;
		while($i<=sizeof($societe_name))
		{
			if($i%2!=0)
				$clo="#FFF6D5";
			else
				$clo="";
			//echo "<tr><td><b>Société $i</b></td><td>$societe</td></tr>";
			echo "<tr bgcolor=$clo><td></td><td>$societe_name[$i]</td></tr>";
			$i++;
		}
		
		echo"<tr class=menu_N3_comm><td colspan=2 align=center><input type=submit class='input_vert'  name=valider  value='Valider'><input type=button class='input_vert' value='Fermer' onclick=\"window.close();\" ></td></tr>";
		echo"</form>";
		echo"</table>";		

voilà en gros ce qu'est le code la fonctions dbi_query est une fonctions implémentée pour executer la requete.

Re: re

par ouckileou » 28 juin 2006, 16:54

Mets des echos de contrôle, à réception du formulaire et un peu après, normalement un espace ne doit pas poser problème
ça aussi c fait mais si je pose la question sur ce forum c'est parceque je bloque après tous les tests que j'ai fait

je sais ou se situe le problème au niveau de mon code mais d'ici à savoir pourquoi la variable se perd à moitié à la validation du formulaire là je ...... :? :? :? :shock:
On ne pourra pas t'en dire plus sans voir le code qui est entre le dernier affichage de la variable correcte, et celui de la variable incorrecte

re

par rakizm » 28 juin 2006, 16:51

Mets des echos de contrôle, à réception du formulaire et un peu après, normalement un espace ne doit pas poser problème
ça aussi c fait mais si je pose la question sur ce forum c'est parceque je bloque après tous les tests que j'ai fait

je sais ou se situe le problème au niveau de mon code mais d'ici à savoir pourquoi la variable se perd à moitié à la validation du formulaire là je ...... :? :? :? :shock:

Re: plus de détail

par ouckileou » 28 juin 2006, 16:43

c'est fait ça la variable passe à la requete déja tronquée
Bah alors si tu as remarqué que le problème se situe avant la création de la requête, qu'est-ce qu'on en a faire de la requête en question ???

Edition : ok désolé la requête on te l'avait demandé :oops:

Mets des echos de contrôle, à réception du formulaire et un peu après, normalement un espace ne doit pas poser problème

Re: plus de détail

par rakizm » 28 juin 2006, 16:40

Pour ton problème, regarde le SQL généré avec echo $query
c'est fait ça la variable passe à la requete déja tronquée

au fait elle se perd au milieu de la form ke je valide et je ne comprend pas pourquoi.

j'ai eu exactement le meme pb avec l'apostrophe mais ça je l'ai réglé avec les addslashes et les stripslashes.

Re: plus de détail

par ouckileou » 28 juin 2006, 16:33

pour ceux que ça intéresse regardez le probleme syntaxe sql pour comprendre comment j'en suis arrivé là!!! :)
Paye ton lien dans ce cas là, sinon personne va chercher

Pour ton problème, regarde le SQL généré avec echo $query

Et lis ça : http://www.phpfrance.com/forums/voir_sujet-19378.php

plus de détail

par rakizm » 28 juin 2006, 16:31

pour ceux que ça intéresse regardez le probleme syntaxe sql pour comprendre comment j'en suis arrivé là!!! :)

re

par rakizm » 28 juin 2006, 16:29

voila la requete:

Code : Tout sélectionner

$query="insert into eco_nom (id_nom,nom) values ('$id_nom','$nom')";

par guilt92 » 28 juin 2006, 16:23

montre ta requete pour insérer du texte stp, parce que normalement si tu mets ton texte entre ' ' ca devrait fonctionner.

problème insertion de données

par rakizm » 28 juin 2006, 16:15

re salut à tous

voilà je veux insérer des noms dans un champ sauf que quand celui ci a un espace au milieu php ou mysql ne prend en compte que la partie avant l'espace.

y a t il une fonction dans php qui serait comme addslashes ou stripslashes mais pour les espaces.

Merci d'avance. :wink: