Newsgroup: it.comp.www.php
Titolo: problema con stringa sql

Qualcuno magari ha gia avuto lo stesso problema....
premetto che sono nuovo di php;
se posto (in impu type hidden nel mio caso) una stringa sql
select * from tabella where nome like '%%%' and regione like '%basilicata%'
and notes like '%%%' order by nome asc LIMIT 0, 10
php me la trasforma mettendo i back slash davanti agli apici...
qualcuno ha gia risolto la questione?
ringrazio anticipatamente
M@stro



stripslashes($stringaSQL);
ciao
corrado

 php me la trasforma mettendo i back slash davanti agli apici...
Usa la funzione:
    stripslashes()
sintassi:
    $stinga_senza_slash = stripslashes($stinga_con_slash);

On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro"
<ja...@TOGLIMIpalazzojatta.org> wrote:

Si', usando le funzioni StripSlashes() e AddSlashes().
Inoltre, che succede se, ipoteticamente, io prendo la tua pagina sul
mio browser, modifico il tuo campo hidden in
	DELETE FROM tabella
e poi, dopo averla ricaricata, premo "Invio"?
Leonardo maičutico
-- 
Nior thainig ar major i dtus an lae chugainn,
is ni rabhamar fein ann i gcoir na gceart
ach mar sheolfai aoireacht bo gan aoire,
ar thaobh na greine de Sliabh na mBan.

 e poi, dopo averla ricaricata, premo "Invio"?
credo che se si impostano i diritti sul database in modo che possa accettare
solo
connessioni da localhost non ci dovrebbero essere problemi...
cmq se qualcuno ne sa di piu continui...:-)
grazie ancora!
M@stro

solo connessioni da localhost non ci dovrebbero essere problemi...
<confidenza>
La frase "non ci dovrebbero essere problemi", insieme alle compagne "non
puo' succedere" e "firewall", sono un campanello d'allarme che ci indica
di trovarci di fronte ad un sys-admin ottimista; "standard di mercato" e
"facile da configurare", ad un sys-admin incompetente.
Per evitare di sentire in seguito le frasi: "non capisco come sia potuto
accadere", "non avrebbe dovuto succedere", ed "almeno, non ha sofferto",
la mia raccomandazione e' di NON avvalersi dei servigi di costoro.
(L. Serni, "New Economy Survival Kit per Bastardoni", Keplero Hall 1998)
</confidenza>
Tornando seri: dici di connettersi solo da localhost.
Ma in questo caso non avrebbe senso il campo HIDDEN in primo luogo, no?
Se proprio DEVI, ti conviene filtrare il campo con eregi():
	// Molto, forse troppo, semplice
	$ALLOWED = "SELECT ([a-z0-9, ]*) FROM ([A-Za-z0-9, ]*) WHERE
([^;]*);";
	if (!eregi($QUERY, $ALLOWED, $campi))
	{
		// AAAGGGHHH
		/*
	Segnalare l'accaduto, loggare IP, HTTP_REFERER e tutto
	il resto, inviare una falsa pagina di errore indicante
	che non ci siamo potuti connettere al DNS "ADMIN", sul
	server database 198.81.135.177, user "TABUN", password
	"militia666".
	      *** CHILDREN, DO #NOT!# DO THIS AT HOME ***
		*/
	}
	else
	{
		$SQLQuery = "SELECT $campi[1] FROM $campi[2] WHERE
$campi[3];";
		$exec = SQLExec($conn, $SQLQuery);
		...
	}
Leonardo


 essere problemi...
La form viene processata dal tuo script, ed il tuo
script e' su localhost ...

 script e' su localhost ...
ma devi poter salvare il file php sul mio server...
o no?
M@stro

uhmm, ma i backslash davanti agli apici vanno messi (di solito uso le doppie virgolette :faccio una query del tipo like \" jfihffia \" e funziona.)

On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro" <ja...@TOGLIMIpalazzojatta.org> wrote:
sorry

On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro" <ja...@TOGLIMIpalazzojatta.org> wrote:
raga' scusate ma 
news.tin.it
 non mi fa postare messaggi piu' lunghi di due righe!!!!Sara' una benedizione per voi:)

On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro" <ja...@TOGLIMIpalazzojatta.org> wrote:

La stringa ke manda php e' corretta (se deve essere elaborata dal server sql). Infatti, nelle query bisogna mettere \ prtima di " o ' .(i.e. like \" % \" e' corretto).
Spero di aver capito la domanda:)

"m@stro" ha scritto:



Effettuare il post di qualunque cosa ad uno script che
accetti il submit di dati via post e' uno spoofing
banale.
Tu hai detto che la query e' in un campo hidden.
Dunque fare eseguire al tuo script una query e' semplice.
Nel piu' banale dei casi, considera lo script:
<?
    /* script pippo.php */
    echo "Ecco X: $X";
?>
Esso stampera' il valore di X:
se e' passato tramite form metodo POST
se e' passato tramite form metodo GET
richiamando direttamente lo script con "pippo.php?X=valore".
Quindi, OCCHIO!

 Quindi, OCCHIO!
scusate, ero io che non capivo quello che volevate dire....
chiedo venia,
si ok cmq il file serviva per la lan interna, lo so che non è una soluzione
professionale,
ma non essendo un genio di php era l'unico modo per fare la paginazione
della visualizzazione di un db...
grazie... lo stesso
M@stro

P.S.
in ogni caso con mysql è possibile limitare i permessi dello script.php
tramite lutilizzo di specifiche  nome e password....
 giusto?

"m@stro" wrote:

Certo, ma quella di passare una query in un campo resta
sempre una cosa molto pericolosa. Normalmente le si usa
a scopo dimostrativo: "ecco cosa NON fare".