quand l'utilisateur ajoute un ' dans le texte je recoit une erreur SQL lors de l'enregistrement
Si l'utilisateur ajoute \' ca marche parfaitement.
le texte de $a1[resume] est envoyé vers vers la page profile.php qui elle envoie l'information vers la base sql. sql.
et le code de la page profile.php est :
//get the info
$q1 "select * from yellow_agents where AgentID '$_SESSION[AgentID]' ";
$r1 = mysql_query($q1) or die(mysql_error());
$a1 = mysql_fetch_array($r1);
if(isset($_POST[s1]))
$q1 = "update yellow_agents set
FirstName = '$_POST[FirstName]',
LastName = '$_POST[LastName]',
city = '$_POST[city]',
state = '$_POST[state]',
country = '$_POST[country]',
resume = '$_POST[resume]',
email = '$_POST[email]',
website = '$NewWebsite',
news = '$_POST[news]',
NewsletterType = '$_POST[format]'
where AgentID = '$_SESSION[AgentID]' ";
mysql_query($q1);
if(mysql_error())
{
echo mysql_error();
}
else
Merci pour votre aide ... je suis un peu décourager car j'y arrive pas.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 22 oct. 2009 à 16:22
Salut,
La fonction addslashes, dans ton cas, est à utiliser au moment de l'insertion dans la base de données, pas lors de l'affichage du formulaire.
Ce serait davantage $resume=addslashes($_POST['resume']);
Ton code HTML n'est pas valide, les valeurs des attributs doivent être entourées de guillemets doubles "
Ton code PHP se base sur le fait que les erreurs ne sont pas affichées, pourtant tu dois avoir un paquet de Warning :
Par exemple, dans $_POST[FirstName] PHP considère que FirstName est une constante. Pour qu'il considère que c'est une chaine de caractères, il faudrait entourer FirstName avec des guillemets (simples ou doubles). A défaut de trouver une constante du nom FirstName, PHP va utiliser ça comme chaîne de caractères, mais en générant une alerte.
error_reporting(E_ALL & E_STRICT)
te montrera les erreurs commises.
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)