Page 1 sur 1
Champs vide lors de l'insertion
Posté : 01 sept. 2005, 13:27
par Invité
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')";
Posté : 01 sept. 2005, 13:33
par iclo
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
Re: Champs vide lors de l'insertion
Posté : 01 sept. 2005, 13:38
par Invité
form.php:
<tr>
<td>
City <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')";
Posté : 01 sept. 2005, 13:42
par zzzzZZZZZ
la balise form est ou?
Posté : 01 sept. 2005, 13:56
par Invité
<form action="index.php?menu=VerifyGuestBook" method="post" name="form">
Posté : 01 sept. 2005, 13:59
par iclo
Pourrais-tu nous mettre l'ensemble du code formulaire + traitement, en des balises
pour qu'on puisse y voir un peu plus claire, stp
Posté : 01 sept. 2005, 14:14
par truc
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')";
Posté : 01 sept. 2005, 14:16
par Invité
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 <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 <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 <font color="#FF0000">* </font>
</td>
<td>
<input type="text" name="city" maxlength="30" size="20" value="" class="input01">
</td>
</tr>
<tr>
<td>
Country <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 <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>
</td>
</tr>
<tr>
<td colspan=2>
<div align="center"><input type="submit" value="Send" class="input02"> <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');
}
?>
Posté : 01 sept. 2005, 14:17
par zzzzZZZZZ
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...
Posté : 01 sept. 2005, 14:22
par zzzzzZZZZZ
dans ce genre de situation une methode est de faire des echo $city pour savoir à quel moment tu perds ce qu'elle contient
Posté : 01 sept. 2005, 14:39
par truc
oui tout a fait dsl pr les conneries que j'ai dites
sinon est ce que la var $_POST['city'] retourne quelque chose avant meme de la placer ds $city ?