Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #20743 > unrolled thread

errore per campo con apostrofo​

Started by"infoannu" <22013invalid@mynewsgate.net>
First post2016-04-29 09:47 +0000
Last post2016-04-30 18:33 +0000
Articles 4 — 2 participants

Back to article view | Back to it.comp.www.php


Contents

   errore per campo con apostrofo​ "infoannu" <22013invalid@mynewsgate.net> - 2016-04-29 09:47 +0000
    Re: errore per campo con apostrofo​ Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-29 14:15 +0100
      Re: errore per campo con apostrofo​ "infoannu" <22013invalid@mynewsgate.net> - 2016-04-30 15:14 +0000
        Re: errore per campo con apostrofo​ Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-30 18:33 +0000

#20743 — errore per campo con apostrofo​

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-29 09:47 +0000
Subject errore per campo con apostrofo​
Message-ID<2016042909475222013@mynewsgate.net>
questo scritte provvede a trasferire dei campi da un database a un 
altro,  solo che mi dà errore quando il campo testo annuncio contiene 
un carattere speciale tipo apostrofo,  in questo caso sul video compare 
il seguente messaggio:

netYou have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use 
near 'presse su turni per 6 giorni lavorativi. ', 'OPERAIO STAMPAGGIO 
PLASTICA TURNIS' at line 1

 se elimino l'apostrofo dal campo testo annuncio tutto funziona 
correttamente.

 come devo fare per risolvere questo problema,  allego lo script


<?
include("area_riservata.php"); 
set_time_limit(900);
include("config.inc.php");
$datacanc = $_POST['datacanc'];
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file 
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri 
nel file config.inc.php");
$query = "SELECT id,zona,testoannuncio,titolo,data,email,tipo,visite  
FROM lavqual3 WHERE bollettino = 'ATTIVATO' AND data LIKE '%$datacanc%' 
AND tipo = 'offerta' AND visite>50 ";
$result = mysql_query($query, $db); 
if (false === $result) {
die(mysql_error());
}
while ($row = mysql_fetch_array($result))
{ 
print "DATA ANNUNCIO ";
print $row[data];
print " - NUMERO ANNUNCIO ";
print $row[id];
print " - ".$row[email];
print " - ".$row[tipo];
print " - VISITE ".$row[visite];
print ("  <BR>\n\n");
print $row[testoannuncio];
print ("  <BR>\n\n");
print ("  <BR>\n\n");

$Email=$row[email];
print"E-MAIL CLIENTE";
print $Email;

$testoannuncio = $row[testoannuncio];
$titolo = $row[titolo];
$zona = $row[zona];
$tipo = $row[tipo];

# INSERIMENTO
###############################################################

# CALCOLO DATA 
$data=date("d/m/y");

$query = "INSERT INTO lavqualDL (cognome , indirizzo , cap , citta , 
provincia , telefono , email , testoannuncio , titolo , data , zona , 
bollettino , tipo ) VALUES 
('$cognome', '$indirizzo', '$cap', '$citta', '$provincia', '$telefono', 
'$email', '$testoannuncio', '$titolo', '$data', '$zona', '$bollettino', 
'$tipo')";
$result2 = mysql_query($query, $db); 
if (false === $result2) {
die(mysql_error());
}

}
mysql_close($db); 

?>


[toc] | [next] | [standalone]


#20746

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-04-29 14:15 +0100
Message-ID<doh544F3cc2U2@mid.individual.net>
In reply to#20743
On 29/04/2016 10:47, infoannu wrote:

> questo scritte provvede a trasferire dei campi da un database a un
> altro,  solo che mi dà errore quando il campo testo annuncio contiene
> un carattere speciale tipo apostrofo,  in questo caso sul video compare
> il seguente messaggio:

Se ne è parlato diverse volte negli ultimi mesi.

In breve: Usa PDO e le prepared statement. mysql_query e simili sono 
deprecate.

In un po' meno breve: cerca negli archivi del newsgroup la stringa "Usa 
PDO". :P


Bye.

[toc] | [prev] | [next] | [standalone]


#20766

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-30 15:14 +0000
Message-ID<2016043015142722013@mynewsgate.net>
In reply to#20746
Alessandro Pellizzari <shuriken@amiran.it> ha scritto:

> On 29/04/2016 10:47, infoannu wrote:
> 
> > questo scritte provvede a trasferire dei campi da un database a un
> > altro,  solo che mi dà errore quando il campo testo annuncio contiene
> > un carattere speciale tipo apostrofo,  in questo caso sul video 
compare
> > il seguente messaggio:
> 
> Se ne è parlato diverse volte negli ultimi mesi.
> 
> In breve: Usa PDO e le prepared statement. mysql_query e simili sono 
> deprecate.
> 
> In un po' meno breve: cerca negli archivi del newsgroup la stringa "Usa 
> PDO". :P
> 
> 
> Bye.
> 

 io non voglio usare PDO  in quanto dovrei modificare tutti gli script ed 
è un lavoraccio,  non esiste una soluzione più semplice per risolvere 
questo problema​

[toc] | [prev] | [next] | [standalone]


#20769

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-04-30 18:33 +0000
Message-ID<dokc36Fhv56U1@mid.individual.net>
In reply to#20766
Il Sat, 30 Apr 2016 15:14:27 +0000, infoannu ha scritto:

>  io non voglio usare PDO  in quanto dovrei modificare tutti gli script
>  ed
> è un lavoraccio,  non esiste una soluzione più semplice per risolvere
> questo problema​

Usare mysql_real_escape_string() su ogni stringa, passandosi tutti gli 
script per aggiungerlo, poi pianificare di passarsi comunque tutti gli 
script a PDO, visto che stai usando funzioni deprecate.

Se ti aspetti la bacchetta magica, l'hanno tolta da una certa versione di 
PHP in poi. E non ti dirò quale era, per evitare che tu faccia il 
downgrade di PHP solo per poterla usare. :P

Bye.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web