Champs vide lors de l'insertion

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 : Champs vide lors de l'insertion

par truc » 01 sept. 2005, 14:39

oui tout a fait dsl pr les conneries que j'ai dites :oops:

sinon est ce que la var $_POST['city'] retourne quelque chose avant meme de la placer ds $city ?

par zzzzzZZZZZ » 01 sept. 2005, 14:22

dans ce genre de situation une methode est de faire des echo $city pour savoir à quel moment tu perds ce qu'elle contient

par zzzzZZZZZ » 01 sept. 2005, 14:17

je pense pas que ca soit des erreur....
la première c deux quotes simples
la deuxième virgule separe la première valeur (vide.. numauto) de la seconde...

par Invité » 01 sept. 2005, 14:16

form
<?php
echo "<script language=\"JavaScript\" type=\"text/javascript\"> \n";
echo "function smiley(ajj) \n";
echo "{ \n";
echo "document.form.message.value+=ajj; \n";
echo "} \n";
echo "</script> \n";
?>
<?php
echo "<script language=\"JavaScript\" type=\"text/javascript\"> \n";
echo "function bbcode(add) \n";
echo "{ \n";
echo "document.form.message.value+=add; \n";
echo "} \n";
echo "</script> \n";
?>
<form action="index.php?menu=VerifyGuestBook" method="post" name="form">
<input type="hidden" name="ajout" value="true">
<table width="100%"  class="DivStyle2">
  <tr valign="top">
    <td width="75%">

<table width="100%" class="DivStyle2">
  <tr>
    <td>
	<table width="75%" border="0" class="DivStyle2">
  <tr>
    <td align="center">Fields with <font color="#FF0000">*</font> are strictly required.</td>
  </tr>
</table>
</td>
</tr>
<tr>
<td>
	<table width="75%" border="0" class="DivStyle2" align="center">
  <tr>
    <td width="23%">Name&nbsp;&nbsp;<font color="#FF0000">* </font></td>
	<td width="77%"><input type="text" name="name" maxlength="30" size="20" value="" class="input01"></td>
  </tr>
  <tr>
    <td width="23%">E-Mail&nbsp;&nbsp;<font color="#FF0000">* </font></td>
	<td width="77%"><input type="text" name="email" maxlength="30" size="20" value="" class="input01"></td>
  </tr>
    <tr>
  <td>
City&nbsp;&nbsp;<font color="#FF0000">* </font>
  </td>
  <td>
<input type="text" name="city" maxlength="30" size="20" value="" class="input01">
   </td>
  </tr>
  <tr>
  <td>
Country&nbsp;&nbsp;<font color="#FF0000">* </font>
  </td>
  <td>
<select name="country" class="select01">
<option value="France">France</option>
<option value="UAE">UAE</option>
<option value="Morocco">Morocco</option>
  </select>
   </td>
  </tr>
  <tr>
    <td width="23%">Website</td>
	<td width="77%"><input type="text" name="url" maxlength="30" size="20" value="http://" class="input01"></td>
  </tr>
    <tr>
  <td>
  Message&nbsp;&nbsp;<font color="#FF0000">* </font>
  </td>
  <td>
  <textarea name="message" id="Counter" rows=5 cols=30 wrap="soft" class="textarea01">Your comments here...</textarea>
  </td>
  </tr>
 <tr>
<td colspan=2>&nbsp;
</td>
</tr>
  <tr>
<td colspan=2>
<div align="center"><input type="submit" value="Send" class="input02">&nbsp;&nbsp;&nbsp;<input type="reset" value="Reset" onClick="return conf();" class="input02">
<br><br><br>
<script>displaylimit("","Counter",250)</script></font>
</div>
</td>

</tr>
</table>
</td>
  </tr>
</table>
</td>
<td width="25%">
<div align="center">
<?php
include('mybook/mysmilies.php'); 
?>

</div></td>
  </tr>
</table>
</form>
<script language="JavaScript">
<!--
function conf() {
    return (confirm("Are you sure?"));
}
//-->
</script>
verif:
<?
if(isset($_POST['date'])) $date = $_POST['date'];
else $date = '';
if(isset($_POST['name'])) $name = $_POST['name'];
else $name = '';
if(isset($_POST['city'])) $city = $_POST['city'];
else $city = '';
if(isset($_POST['country'])) $country = $_POST['country'];
else $country = '';
if(isset($_POST['email'])) $email = $_POST['email'];
else $email = '';
if(isset($_POST['message'])) $message = $_POST['message'];
else $message = '';
if(isset($_POST['url'])) $url = $_POST['url'];
else $url = '';
//*****************************************************************************//
// ucfirst=> first letter in capital letter 
// strtolower=>all caracters in small letters
// trim =>erase space before and after a sentence or a word
// htmlentities don't allow convert html characters to special characters
//ENT_COMPAT  Convertit les guillemets doubles, et ignore les guillemets simples 
//ENT_QUOTES  Convertit les guillemets doubles et les guillemets simples 
// ENT_NOQUOTES  Ignore les guillemets doubles et les guillemets simples 
//********************************************************************************//
//not allow html tags with htmlentities and ENT_QUOTES to Convert dbl & simple quotation marks for secure reason
$name = ucfirst(strtolower(trim(htmlentities($_POST['name'], ENT_QUOTES)))); 
//$city = htmlentities($_POST['city'], ENT_QUOTES); // post city as var
$country = htmlentities($_POST['country'], ENT_QUOTES); // post country as var
$email = ucfirst(strtolower(trim(htmlentities($_POST['email'], ENT_QUOTES)))); // post email as var
$message = htmlentities($_POST['message'], ENT_QUOTES); // post message as var
$message = nl2br($message); // to replace "enter key" as <br> in html
$message = stripslashes($message);
$url = htmlentities($_POST['url'], ENT_QUOTES);  // post url as var
$url = substr("$url", 0, 7); // limit the characers of url as 7 ( http:// =>01234567)
$date=date("d/m/Y H:i");
$ip="$_SERVER[REMOTE_ADDR]";
//verify fields
if (empty($name)){ //nom du champ1
echo("<font face=verdana size=2>name field is empty</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\" class=navfont> Return </a>");
}
elseif (strlen($name)<5){
echo("<font face=verdana size=2>Name < 5</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\" class=navfont> Return </a>");
}
elseif (empty($city)){
echo("<font face=verdana size=2>city field is empty</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\" class=navfont> Return </a>");
}
elseif (empty($email)){
echo("<font face=verdana size=2>email field is empty</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\" class=navfont> Return </a>");
}
elseif (empty($message)){
echo("<font face=verdana size=2>message field is empty</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\" class=navfont> Return </a>");
}
elseif (strlen($message)<10){
echo("<font face=verdana size=2>message field 10 carachters minimum</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\"> Return </a>");
}
elseif (nl2br($message)>2){
echo("<font face=verdana size=2>Grrrrrrrrrrrrrrr</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
}
elseif(!eregi("^[a-z0-9_]+@[a-z0-9\-]+\.[fr\com\de\ch\be\biz\gov\ma\qa\ae\au\sa\nz\eg\ac\uk\bh\in\us]+$", $email)){
echo("<font face=verdana size=2>email invalid</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ		
}
// verify the first 7 characters for the URL
elseif ($url!="http://"){
echo("URL must start with <b>http://</b>"); 
} 
else {
//connection
$connection = mysql_connect("$host", "$user", "$pass") or die(mysql_error());
$db = mysql_select_db($db_name, $connection) or die(mysql_error());
$sql = "INSERT INTO $table_gbook VALUES('','$date','$name','$city','$country','$url','$email','$message','$ip')";
$result = mysql_query($sql,$connection) or die(mysql_error());
//after verifying everything, must be inserted then redirected :)
mysql_close ();
echo ('helllllooooooooooooooooooooooo');
}
?>

par truc » 01 sept. 2005, 14:14

Salut

c ptet rien mais y a qd meme 2 ptit erreurs:

if(isset($_POST['city'])) $city = $_POST['city'];
else $city = ''; ici manque un "

ici, c quoi cette virgule au début ?!?!

VALUES('','$date','$name','$city','$country','$url','$email','$message')";

par iclo » 01 sept. 2005, 13:59

Pourrais-tu nous mettre l'ensemble du code formulaire + traitement, en des balises
 pour qu'on puisse y voir un peu plus claire, stp

par Invité » 01 sept. 2005, 13:56

<form action="index.php?menu=VerifyGuestBook" method="post" name="form">

par zzzzZZZZZ » 01 sept. 2005, 13:42

la balise form est ou?

Re: Champs vide lors de l'insertion

par Invité » 01 sept. 2005, 13:38

form.php:

<tr>
<td>
City&nbsp;&nbsp;<font color="#FF0000">* </font>
</td>
<td>
<input type="text" name="city" maxlength="30" size="20" value="" class="input01">
</td>
</tr>

verifier.php:

if(isset($_POST['city'])) $city = $_POST['city'];
else $city = '';

$city = htmlentities($_POST['city'], ENT_QUOTES);


$sql = "INSERT INTO $table_gbook (id,date,name,city,country,url,email,message) VALUES('','$date','$name','$city','$country','$url','$email','$message')";

par iclo » 01 sept. 2005, 13:33

Il faudrait qu'on puisse voir le code du formulaire.
Sinon, vérifie que les noms des champs du formulaire correspondent bien aux noms de variables que tu essaies de récuperer

Champs vide lors de l'insertion

par Invité » 01 sept. 2005, 13:27

bonjour,

quand je fais l'insertion de mes donnees, un des champs se poste vide, exemple:

INSERT INTO `gbook` VALUES (30, '01/01/1999 01:25', 'name', 'VOILA LE CHAMPS VIDE', 'France', 'http://', '[email protected]', 'msg');

Alors que je fais ca:

if(isset($_POST['city'])) $city = $_POST['city'];
else $city = '';

$sql = "INSERT INTO $table_gbook (id,date,name,city,country,url,email,message) VALUES('','$date','$name','$city','$country','$url','$email','$message')";