formulaire d'insert raté

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 : formulaire d'insert raté

par Victor BRITO » 27 oct. 2008, 13:12

je vais même ajouter:
if (isset ($_POST['nom'])&&($_POST['nom']!='') && isset ($_POST['prenom'])&&($_POST['prenom']!=''))
Tu peux l'écrire plus proprement comme suit :
if (isset ($_POST['nom']) && !empty ($_POST['nom']) && isset ($_POST['prenom']) && !empty ($_POST['prenom']))

par Cypher_PHP » 27 oct. 2008, 13:10

merci beaucoup

j'avais pas pensé à cette condition
je vais même ajouter:
if (isset ($_POST['nom'])&&($_POST['nom']!='') && isset ($_POST['prenom'])&&($_POST['prenom']!=''))
encore merci

je mets mon post en résolu

Re: formulaire d'insert raté

par Victor BRITO » 27 oct. 2008, 12:59

Modifie le code comme suit, afin de vérifier si le formulaire est soumis ou pas.
if (isset ($_POST['nom']) && isset ($_POST['prenom']))
{
  // Ici les instructions pour l'insertion dans la base de données
}

par Cypher_PHP » 27 oct. 2008, 12:55

merci pour vos réponses

toutefois, le résultat est toujours le même: des champs vides.
Je viens de m'apercevoir qu'en ouvrant la page de formulaire, le script s'exécute avant que je remplisse le formulaire

par Victor BRITO » 27 oct. 2008, 12:38

Si tu définis tes variables après l'insertion.
Bien vu. ;)

par agité » 27 oct. 2008, 12:37

<?php
$sql    =    "INSERT INTO tuteur (id_tuteur, nom, prenom) VALUES('','$nom','$prenom')    ";
$req    =    mysql_query($sql)or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

$_POST['nom'] =    $nom;
$_POST['prenom'] =    $prenom;

?>
Si tu définis tes variables après l'insertion.

Re: formulaire d'insert raté

par Victor BRITO » 27 oct. 2008, 12:36

$_POST['nom'] =	$nom;
$_POST['prenom'] =	$prenom;
Inverse l'ordre :
$nom = $_POST['nom'] ;
$prenom = $_POST['prenom'];
De plus, corrige ta requête comme suit :
$sql    =    "INSERT INTO tuteur (id_tuteur, nom, prenom) VALUES('','".mysql_real_escape_string($nom)."','".mysql_real_escape_string($prenom)."')    ";
afin de te prémunir d'attaques par injonction SQL.

De plus, si la colonne id_tuteur comporte un système d'auto-incrémentation, il est inutile de la mentionner dans la requête d'insertion : par conséquent, tu peux te contenter de la requête suivante :
$sql    =    "INSERT INTO tuteur (nom, prenom) VALUES('".mysql_real_escape_string($nom)."','".mysql_real_escape_string($prenom)."')    ";

formulaire d'insert raté

par Cypher_PHP » 27 oct. 2008, 12:29

Bonjour mes chers

le résultat d'insertion:
une fois le formulaire rempli, le script se charge d'insérer. malheureusement, il ne prend que l'id_tuteur puisqu'il s'incrémente. donc les champs nom et prenom sont par remplis par un vide
je pense que la récupération de ces champs par un post n'es pas réussie?

avez-vous une idée du problème?

je vous remercie beaucoup de vos réponses
|id_tuteur|nom|prenom|
|1|||
|2|||
voici mon code source:
<?php

$host 		=	"xxx";
$dbbase		=	"xxx";
$dblogin	=	"xxxx";
$dbpass		=	"xxx";

$connect = mysql_connect($host,$dblogin,$dbpass) or die('Erreur de connexion '.mysql_error());
$select	=	mysql_select_db($dbbase, $connect) or die('Erreur de selection '.mysql_error());
$sql	=	"INSERT INTO tuteur (id_tuteur, nom, prenom) VALUES('','$nom','$prenom')	";
$req	=	mysql_query($sql)or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

$_POST['nom'] =	$nom;
$_POST['prenom'] =	$prenom;


// include du fichier header
	include("header.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
  <title></title>
</head>
<body>
<form method="POST" action="list_tuteur.php" name="Form_addtuteur"><br>
  <div style="text-align: center;"><span style="font-weight: bold;">Formulaire de création de tuteur</span><br>
  </div>
  <br>
  <br>
  <table style="width: 641px; height: 112px; text-align: left; margin-left: auto; margin-right: auto;";
   border="0" cellpadding="2" cellspacing="2">
    <tbody>
      <tr style="background-color: #BBCC33;">
        <td style="text-align: right;color:black">Nom de tuteur</td>
        <td> <input type="text" name="nom"></td>
      </tr>
      <tr style="background-color: #ddff00;">
        <td style="text-align: right;color:black">Prénom de tuteur</td>
        <td><input type="text" name="prenom" ></td>
      </tr>
      <tr >
	    <td colspan="2" style="text-align: center;">
	      <input type="submit" name="add_tuteur" value="Créer">
	      <input type="reset" name="reset" value="Effacer">
      	</td>
      </tr>
    </tbody>
  </table>
</form>



</body>
</html>
<?php

//	include du fichier footer
	include("footer.php") ;
?>