Bonjour,
Mon problème est que les informations saisies par les usagers dans mon formulaire web sont retransmis à une base de données sql. Cependant, s'ils entrent un apostrophe dans un des champs (ex. commentaire=L'horaire ), une erreur survient. car l'apostrophe stop la valeur.
Comment fait-on pour éviter ceci?
voici mon code :
validtrav1
<?php
include 'connect.php';
include 'variables.php';
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$numdemande = $_GET["numdemande"] ;
//requête SQL:
$sql = "SELECT *
FROM demande, demandeur, etablissement, senior
WHERE demande.numdem=demandeur.numdem
AND demande.codeetab=etablissement.codeetab
AND demande.numsenior=senior.numsen
AND numdemande = '$numdemande'";
//exécution de la requête:
$requete = mysql_query($sql) ;
//affichage des données:
while( $row = mysql_fetch_assoc( $requete ) )
{
echo("<div align=\"center\"> Demande numero ".$row['numdemande']."<br> Date :".$row['datedemande']."<br> <br> Etablissement : ".$row['etab']." ".$row['nometab']." Téléphone : ".$row['teletab']." <br> ".$row['rueetab']." ".$row['cpetab']." ".$row['villeetab']." <br> Demandeur : ".$row['civilite']." ".$row['nomdem']." ".$row['prenomdem']." ".$row['fonctiondem']." <br>Adresse mail : ".$row['maildem']." <br>Telephone fixe : ".$row['telfixdem']." telephone mobile : ".$row['telmobiledem']." <br> Classe(s) : ".$row['classe']." nombre d'élèves : ".$row['eleveclasse']." <br> Choix du sujet :<br> 1 ".$row['sujet1']." <br> 2 ".$row['sujet2']." <br> 3 ".$row['sujet3']." <br> <br> Date et heure souhaitées : ".$row['dateheurepropo']." <br> <br>Senior : ".$row['nomsen']." ".$row['prenomsen']." <br>
<br>\n") ;
Validtrav2 :
<?php
include 'connect.php';
include 'variables.php';
//création de la requête SQL:
$sql = "UPDATE demande, junior, sujet
SET dateret = '$date',
heureret = '$heureret',
duree = '$duree',
termine = '$termine',
numsujet = '$numsuj',
numjunior = '$numjun'
WHERE numdemande = '$numdemande'" ;
//exécution de la requête SQL:
$requete = mysql_query($sql) or die( mysql_error() ) ;
$sql="INSERT INTO commentaire(numcom, datecom, destinatairecom, commentaire, numdemande) VALUES('','$date','$destinatairecom', '$commentaire', '$numdemande')";
$requete=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("Les informations ont etaient modifie") ;
}
else
{
echo("La modification à échouée") ;
}
?>
ma base de donnée SQL :
CREATE TABLE IF NOT EXISTS 'commentaire' (
'numcom' int(11) NOT NULL AUTO_INCREMENT,
'datecom' date NOT NULL,
'destinatairecom' varchar(20) NOT NULL,
'commentaire' varchar(135) NOT NULL,
'numdemande' int(11) NOT NULL,
PRIMARY KEY ('numcom')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;CREATE TABLE IF NOT EXISTS 'demande' (
'numdemande' int(11) NOT NULL AUTO_INCREMENT,
'datedemande' date NOT NULL,
'classe' varchar(20) NOT NULL,
'eleveclasse' int(11) NOT NULL,
'dateheurepropo' varchar(50) NOT NULL,
'numdem' int(11) NOT NULL,
'codeetab' int(11) NOT NULL,
'sujet1' varchar(20) NOT NULL,
'sujet2' varchar(20) NOT NULL,
'sujet3' varchar(20) NOT NULL,
'etatdemande' varchar(5) NOT NULL DEFAULT 'non',
'datevalid' date NOT NULL,
'numsenior' int(11) NOT NULL,
'numjunior' int(11) NOT NULL,
'termine' varchar(10) NOT NULL,
'dateret' varchar(15) NOT NULL,
'heureret' varchar(10) NOT NULL,
'duree' varchar(10) NOT NULL,
'numsujet' int(11) NOT NULL,
PRIMARY KEY ('numdemande')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=42 ;CREATE TABLE IF NOT EXISTS 'demandeur' (
'numdem' int(11) NOT NULL AUTO_INCREMENT,
'nomdem' varchar(20) NOT NULL,
'prenomdem' varchar(20) NOT NULL,
'fonctiondem' varchar(20) NOT NULL,
'maildem' varchar(20) NOT NULL,
'telfixdem' varchar(10) NOT NULL,
'telmobiledem' varchar(10) NOT NULL,
'civilite' varchar(5) NOT NULL,
'codeetab' int(11) NOT NULL,
PRIMARY KEY ('numdem')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;CREATE TABLE IF NOT EXISTS 'etablissement' (
'codeetab' int(11) NOT NULL AUTO_INCREMENT,
'nometab' varchar(20) NOT NULL,
'rueetab' varchar(20) NOT NULL,
'cpetab' varchar(6) NOT NULL,
'villeetab' varchar(20) NOT NULL,
'teletab' varchar(12) NOT NULL,
'etab' varchar(20) NOT NULL,
PRIMARY KEY ('codeetab')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;CREATE TABLE IF NOT EXISTS 'junior' (
'numjun' int(11) NOT NULL AUTO_INCREMENT,
'nomjun' varchar(20) NOT NULL,
'prenomjun' varchar(20) NOT NULL,
'ruejun' varchar(20) NOT NULL,
'cpjun' varchar(6) NOT NULL,
'villejun' varchar(20) NOT NULL,
'teljun' varchar(10) NOT NULL,
'mailjun' varchar(20) NOT NULL,
'responsablejun' varchar(10) NOT NULL,
'classejun' varchar(10) NOT NULL,
'ribjun' int(11) NOT NULL,
'passjun' varchar(10) NOT NULL,
'activejun' varchar(10) NOT NULL,
PRIMARY KEY ('numjun')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
CREATE TABLE IF NOT EXISTS 'senior' (
'numsen' int(11) NOT NULL AUTO_INCREMENT,
'nomsen' varchar(20) NOT NULL,
'prenomsen' varchar(20) NOT NULL,
'ruesen' varchar(20) NOT NULL,
'cpsen' varchar(6) NOT NULL,
'villesen' varchar(20) NOT NULL,
'telsen' varchar(10) NOT NULL,
'mailsen' varchar(20) NOT NULL,
'responsablesen' varchar(10) NOT NULL,
'ribsen' int(11) NOT NULL,
PRIMARY KEY ('numsen')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;CREATE TABLE IF NOT EXISTS 'sujet' (
'numsuj' int(11) NOT NULL AUTO_INCREMENT,
'libsuj' varchar(20) NOT NULL,
'description' varchar(50) NOT NULL,
PRIMARY KEY ('numsuj')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
- recherche des caractéres contenant des apostrophes :
select ---
from ---
where chaine like '%''%';
- remplacer les apostrophes par un espace dans un select
select baic_intitule,replace(baic_intitule,'''',' ') bain_num
from bx_bail
where baic_intitule like '%''%';
- Maj des apostrophes par un espace
update bx_bail set baic_intitule = replace(baic_intitule,'''',' ')
vwhere baic_intitule like '%''%';
Trouvez des réponses à vos questions sur la création de sites web, le référencement et les meilleures pratiques pour gérer un site. Échangez avec d'autres webmasters passionnés pour améliorer vos compétences en ligne et optimiser vos projets de site web.