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


Groups > it.comp.www.php > #22832

Re: uguaglianza parole con apostrofo.

From Roberto Tagliaferri <tagliaferri@bofhland.org>
Newsgroups it.comp.www.php
Subject Re: uguaglianza parole con apostrofo.
Date 2020-07-03 11:51 +0200
Organization Aioe.org NNTP Server
Message-ID <rdmv32$11oe$1@gioia.aioe.org> (permalink)
References <rdmn1t$18if$1@gioia.aioe.org> <20200703111627.6ae59ff6@nntp.aioe.org>

Show all headers | View raw


Enrico Maria Chellini wrote:

> Il giorno Fri, 03 Jul 2020 09:34:21 +0200
> Roberto Tagliaferri <tagliaferri@bofhland.org> ha scritto:
> 
>> Scenario: procedura web per gestire immobili, quindi indirizzi, zone
>> eccetera.
>> Mi chiama il cliente e mi dice che con l'apostrofo non mi segnala i
>> dati corretti.
>> Vado a controllare e vedo che la procedura salva correttamente MA poi
>> quando deve verificare se il dato è uguale ad uno dei valori della
>> lista ha sempre risultato negativo.
>> Però per popolare i campi in modo dinamico (quindi io prima scelgo la
>> provincia e c'è una chiamata ajax che tira fuori i comuni, poi lo
>> stesso per le zone) chiamo 2 script e in quel caso il match funziona.
>> Ho provato con un banale $stringa=$valore reso dal db,
>> una strcmp, entrambe con una or... nulla.
>> Ho provato anche una banale select nel db
>> select distinct(zona) as zona,zona ilike $3 as eq (db postgresql, no
>> pdo o altro)
>> funziona da psql o da pgadmin, rende sempre false da php se apro la
>> pagina da web ma rende il corretto true se lo chiamo da ajax.
>> Infine ho provato a fare un iconv e da un errore di codifica.. ma è
>> tutto utf-8 e gli header (controllati con firefox) sono utf-8.
>> Ho rimediato mettendo a fondo pagina la chiamata alle 2 ajax che
>> funzionano ma mi piacerebbe sapere dove cavolo ho sbagliato.
>> Postgres 10 in sviluppo e 9 in produzione, php 7.2 in sviluppo e 7.0
>> in produzione, server fedora 29 in sviluppo e centos 7 in produzione
>> (ovviamente con gli stessi problemi)
>> 
>> 
> 
> Probabilmente quanto passa dello script delle form l'apostrofo
> interrompe la stringa,  per tanto o ci aggiungi uno slash oppure fai
> l'encode di tutti i caratteri html
> 
> per esempi <input value=" ciao caro l'auto è la tua?">
> 
> la stringa che passa sarà:  "ciao caro l"
> poi ci sarà un errore php.
> dovresti provare a  fare un debug.
> 
> quindi o ci metti uno slash <input value=" ciao caro l\'auto è la tua?">
> o codifichi l'apostrofo con htmlspecialchar, se non erro.
> 
> Enrico
Ciao e grazie.
ho messo il debug e la cosa è divertente..
valore del db (query su tutti i comuni), valore del db (record del cliente),  risultato comparazione

prato sull'arno DIVERSO
sull'arno sull'arno DIVERSO
vaiano sull'arno DIVERSO
e par follia..

però se tiro fuori i singoli codici ascii trovo grosse differenze:
Array ( [1] => 115 [2] => 117 [3] => 108 [4] => 108 [5] => 39 [6] => 97 [7] => 114 [8] => 110 [9] => 111 )
Array ( [1] => 115 [2] => 117 [3] => 108 [4] => 108 [5] => 38 [6] => 35 [7] => 48 [8] => 51 [9] => 57 [10] => 59 [11] => 97 [12] => 114 [13] => 110 [14] => 111 ) 
se apro il db su quella scheda vedo ovviamente sull'arno
La cosa che non mi torna è che l'altra procedura (quella chiamata via ajax per popolare via via le select) è un copia e incolla di questa e funziona correttamente



-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)tosnet.it
www.robyt.eu

Back to it.comp.www.php | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

uguaglianza parole con apostrofo. Roberto Tagliaferri <tagliaferri@bofhland.org> - 2020-07-03 09:34 +0200
  Re: uguaglianza parole con apostrofo. Enrico Maria Chellini <bitit@bitit.it> - 2020-07-03 11:16 +0200
    Re: uguaglianza parole con apostrofo. Roberto Tagliaferri <tagliaferri@bofhland.org> - 2020-07-03 11:51 +0200
      Re: uguaglianza parole con apostrofo. Roberto Tagliaferri <tagliaferri@bofhland.org> - 2020-07-03 12:08 +0200

csiph-web