problème de script qui copie deux enregistrements

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 de script qui copie deux enregistrements

par Cyrano » 12 sept. 2005, 20:30

Ok, pour le premier problème, il faut que tout ceci soir englobé dans le if() d'un test qui doit débuter la page testant si ton formulaire a été envoyé: si ton bouton submit a pour valeur d'attribu name "envoi", fais en début de script:
if(isset($_POST['envoi']))
{
    // code de récupération et d'insertion
}
else
{
    // affichage du formulaire
}
Pour la fonction trim, elle permet de supprimer les espaces à gauche et à droite des chaînes: ça évite d'enregistrer des valeurs vides si un petit malin envoie le formulaire en ayant mis que des espaces dans les zones de saisie.

merci beaucoup

par munich » 12 sept. 2005, 18:03

ça marche parfaitement merci,
juste une petite question,
j'ai fait les modif du php qui se trouve au dessus de ma balise html dans ma page et je voulais savoir comment faire pour que
<p>Attention, aucune donnée n'a été envoyée, enregistrement refusé.</p>
n'apparaisse pas par défaut dans ma page?

Sinon je me demandais à quoi corrrespondait le trim que je n'ai jamais rencontré encore....

merci encore

par Cyrano » 12 sept. 2005, 17:35

Tu n'as mis aucune condition à l'insertion de données vides : proposition de corrigé avec une petite optimisation en passant :
<?php
$nom     = trim((isset($_POST['nom']))     ? $_POST['nom']     : "");
$adresse = trim((isset($_POST['adresse'])) ? $_POST['adresse'] : "");
$code    = trim((isset($_POST['code']))    ? $_POST['code']    : "");
$ville   = trim((isset($_POST['ville']))   ? $_POST['ville']   : "");
if($nom != "" && $adresse != "" && $code != "" && $ville != "")
{
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());

    // sélection de la base
    mysql_select_db('toaster',$db)  or die('Erreur de selection '.mysql_error());

    // on écrit la requête sql
    $sql = "INSERT INTO dealers(nom, adresse, code, ville) VALUES('". $nom ."','". $adresse ."','". $code ."','". $ville ."')";

    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'. $sql .'<br>'. mysql_error());

    mysql_close();  // on ferme la connexion
}
else
{
    /* Aucune des variable n'a de valeur, message d'avertissement */
?>
<p>Attention, aucune donnée n'a été envoyée, enregistrement refusé.</p>    
<?php
}
?>

problème de script qui copie deux enregistrements

par munich » 12 sept. 2005, 17:24

Bonjour,
j'ai tapé un script mais le problème est que celui copie l'enregistrement que je lui demande (formulaire) ainsi qu'un enregistement vierge....
Pouvez-vous m'aider SVP
Merci
<?php

if(isset($_POST['nom']))     	$nom=$_POST['nom'];   			else	$nom="";
if(isset($_POST['adresse']))         	$adresse=$_POST['adresse'];        		else 	$adresse="";
if(isset($_POST['code']))      	$code=$_POST['code'];    			else 	$code="";
if(isset($_POST['ville']))        	$ville=$_POST['ville'];         		else 	$ville="";
	    
	{
	
	$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
	
	// sélection de la base  
    mysql_select_db('toaster',$db)  or die('Erreur de selection '.mysql_error());
    
    // on écrit la requête sql
    $sql = "INSERT INTO dealers(ID, nom, adresse, code, ville) VALUES('','$nom','$adresse','$code','$ville')";
    
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    mysql_close();  // on ferme la connexion
	}
?>