ecriture sur bdd qui s'effacent

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 : ecriture sur bdd qui s'effacent

Re: ecriture sur bdd qui s'effacent

par moogli » 02 sept. 2011, 21:30

Commence par virer le javascript et valide ou non le formulaire.

si tu le valide juste en virant le JS tu sais d'où viens le problème il ne reste qu'a vérifier le JS !

@+

Re: ecriture sur bdd qui s'effacent

par olivxii » 02 sept. 2011, 20:51

sur le lien que tu me donne au niveau du form il n'y a pas de name"" donc ca revient au meme, mon probleme ne vient pas de la..

mais ce qui est bizzard c'est que si je ne remplis pas tout je ne peu pas envoyé alors que la le form envoie des donnés vide meme si il n'est pas appelé donc ca doit ce passer en amond du form.

Re: ecriture sur bdd qui s'effacent

par Alf?> » 02 sept. 2011, 19:11

Salut,

Je te conseil de lire ceci :
http://www.phpdebutant.org/article67.php

Tu apprendras le HTML, le PHP et le SQL (dans la base de la base).

Re: ecriture sur bdd qui s'effacent

par leozoe » 02 sept. 2011, 09:00

bonjour,

je n'utilise pas bcp javascript, mais a première vue il manque le nom de ton formulaire dans le form pour que ça fonctionne
<FORM method="POST" action="questsec.php" name="formulaire">
sinon tu mets 2 fois le type dans cette ligne <input type="text" value="" name="retour" type="hidden" />

je pense qu'il est préférable d'utiliser la méthode en php que je t'ai indiqué plus haut, par ce que si javascript est désactivé ton formulaire ne fonctionnera pas

Bonne journée

Re: ecriture sur bdd qui s'effacent

par olivxii » 01 sept. 2011, 23:15

j'ai securisé le formulaire pour que le submit ne fonctionne que si les champs son remplis mais ca reste pareil,
les champs se remplisse bien mais des que je revient sur la page il s'effacent ... #-o

Code : Tout sélectionner

<FORM method="POST" action="questsec.php"> - Veuillez choisir une question.<br/> <select name="question" type="hidden" > <option name="question">Le prenom de ma mere</option> <option name="question">Le nom de mon animal domestique</option> <option name="question">la marque de ma premiere voiture</option> <option name="question">Le nom de mon dernier lycée</option> <option name="question">Le nom de mon proffesseur preferé</option> <option name="question">La chose qui ma le plus marqué</option> </select> <br/><br/> - Votre reponse<br/> <input type="text" value="" name="retour" type="hidden" /> <br/> <br/> <input type="submit" value="ajouter" name="ajouter" onClick="verifForm(this.form)"/><br/><br/> </form>

Code : Tout sélectionner

<SCRIPT LANGUAGE="JavaScript"> function verifForm(formulaire) { if(formulaire.retour.value == "") alert('Vous devez mettre une réponse !'); else formulaire.submit(); } </SCRIPT>
<?	
designhaut('Modifier votre profil');
	$id = intval($_SESSION[$prefix.'id']);
	$reponse = mysql_query('SELECT * FROM '.$prefix.'membres WHERE id='.$id) or die(mysql_error());
	$donnees = mysql_fetch_array($reponse);
	//Si les variables contenant le pseudo, le mot de passe et l'email contiennent quelque chose.
	if (!empty($_POST['question']) && !empty($_POST['retour']))
    $question = htmlspecialchars($_POST['question']);
    $retour = htmlspecialchars($_POST['retour']);
	// ecriture
	mysql_query('UPDATE '.$prefix."membres SET question='".$question."', retour='".$retour."' WHERE id=".$_SESSION[$prefix.'id']) OR die(mysql_error());  	
?>

Re: ecriture sur bdd qui s'effacent

par leozoe » 01 sept. 2011, 22:39

Bonsoir

Alf?> t'a donné la solution, des que tu vas sur ta page l'update s'effectue
il te faut donc une condition pour que le script s'exécute
tu peux faire par ex
rajouter cette ligne a ton formulaire sous <FORM method="POST" action="questsec.php"><input type="hidden" name="valeur" value="modifier">

et créer la condition dans laquelle tu inseres ton update

if ($_POST['valeur'] == "modifier")
{
ta requete d'update
}

Re: ecriture sur bdd qui s'effacent

par olivxii » 01 sept. 2011, 19:51

alors j'ai donc suivis vos conseils suite a mes erreur mais je me retrouve dans le meme cas,
une fois remplis je sort de la page, je regarde dans ma bdd et les deux sont presents,
mais si je revient sur la page cela efface les données deja ecritent dans la bdd.
<FORM method="POST" action="questsec.php">
- Veuillez choisir une question.<br/>
<select name="question">
<option  name="question">Le prenom de ma mere</option>
<option  name="question">Le nom de mon animal domestique</option>
<option  name="question">la marque de ma premiere voiture</option>
<option  name="question">Le nom de mon dernier lycée</option>
<option  name="question">Le nom de mon proffesseur preferé</option>
<option  name="question">La chose qui ma le plus marqué</option>
</select>
<br/><br/>
- Votre reponse<br/>
<input type="text" value="" name="retour" id="retour" />
<br/>
<br/>
<input type="submit"  value="ajouter" name="ajouter"/><br/><br/>
</form>

Re: ecriture sur bdd qui s'effacent

par Alf?> » 01 sept. 2011, 18:53

Oulalah

Désolé j'avais aussi oublié qu'il manquait tout ça :
tu n'as pas mis de value="", ici :
<input type="text" name="retour" id="retour" />
tu n'as pas mis de name="AJOUTER", ici :
<input type="submit"  value="ajouter" />
:non: C'est pas bien ! :mrgreen:

Re: ecriture sur bdd qui s'effacent

par Alf?> » 01 sept. 2011, 18:49

Salut,

Sa vient de fait que :
  • Tu ne vérifie pas si le bouton submit existe et n'est pas vide. Du coup a chaque fois que tu arrive sur la page...bah le script d'update se lance sans ta permission :mrgreen:
    Ta balise <form> n'est pas bien fermé,
    Ton bouton submit n'est pas dans le formulaire,
D'autre question ?

Re: ecriture sur bdd qui s'effacent

par AB » 01 sept. 2011, 18:45

Ils ne s'affichent plus ou sont-ils réellement effacés de ta bdd ?

ecriture sur bdd qui s'effacent

par olivxii » 01 sept. 2011, 18:35

bonjour, j'ai fais un petit script qui écrit les infos d'un formulaire dans des champs de ma bdd,
les données s’écrivent bien mais si je revient sur la page ils s'effacent sans que j'ai touché a rien..

ma requête :
<?	
designhaut('Modifier votre profil');
	$id = intval($_SESSION[$prefix.'id']);
	$reponse = mysql_query('SELECT * FROM '.$prefix.'membres WHERE id='.$id) or die(mysql_error());
	$donnees = mysql_fetch_array($reponse);
	
    $question = htmlspecialchars($_POST['question']);
    $retour = htmlspecialchars($_POST['retour']);
//Puis on met à jour la table membres
mysql_query('UPDATE '.$prefix."membres SET question='".$question."', retour='".$retour."' WHERE id=".$_SESSION[$prefix.'id']) or die(mysql_error());
   	
?>


mon formulaire :
<FORM method="POST" action="questsec.php">
- Veuillez choisir une question.<br/>
<select name="question">
<option  name="question">Le prenom de ma mere</option>
<option  name="question">Le nom de mon animal domestique</option>
<option  name="question">la marque de ma premiere voiture</option>
<option  name="question">Le nom de mon dernier lycée</option>
<option  name="question">Le nom de mon proffesseur preferé</option>
<option  name="question">La chose qui ma le plus marqué</option>
</select>
<br/><br/>
- Votre reponse<br/>
<input type="text" name="retour" id="retour" />
<form>
<br/>
<br/>
<input type="submit"  value="ajouter" />


je ne voit pas d’où cela peu provenir