Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Apici da Mysql

  1. #1
    Utente di HTML.it L'avatar di Kevin
    Registrato dal
    Aug 2002
    Messaggi
    503

    Apici da Mysql

    Ciao
    mi succede una cosa strana, sul server c'è il magic_quotes_gps in on, infatti quando inserisco una stringa con l'apice all'interno non mi da nessun problema, il problema avviene quando faccio una query al db recupero i dati e questi dati li inserisco in un'altra tabella, in questo caso se all'interno di uno dei campi c'è un apice me lo vede e mi da errore. Qualcuno mi sa dare una spiegazione?
    Grazie
    Non ti accontentare mai. Raggiungi il successo e poi rinizia da capo.
    Non si ha mai una seconda possibilità per fare una bella prima impressione.
    Punti d'immersione in Italia e all'estero
    Template per siti web

  2. #2
    perche' quando l'estrai togli il carattere di escape con stripslashes.

    prima di inserire nuovamente la stringa passala con mysql_escape_string()

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Kevin
    Registrato dal
    Aug 2002
    Messaggi
    503
    No io non do nessun stripslashes se no me ne accorgevo.
    Non ti accontentare mai. Raggiungi il successo e poi rinizia da capo.
    Non si ha mai una seconda possibilità per fare una bella prima impressione.
    Punti d'immersione in Italia e all'estero
    Template per siti web

  4. #4
    Originariamente inviato da Kevin
    No io non do nessun stripslashes se no me ne accorgevo.
    magic_quote_gpc ( non gps) lavora solo sui dati entranti GET/POST/Cookie mettendo un carattere di escape (il backslashe) davanti ad alcuni caratteri, con significati anche di controllo, che potrebbero essere presenti nel testo per specificare appunto che si tratta di un carattere stringa e non di un carattere di controllo.

    se estrai da db e non togli il carattere di escape questo carattere lo visualizzeresti nella stampa. non lo specifichi ma credo che si parli di mysql come db.

    esistono varie utilities per normalizzare le stringhe. Intanto il manuale php suggerisce di non utilizzare le magic_quote_gpc in ON perche' e' pesante da gestire e molte volte inutile. Il carattere di escape lo si dovrebbe gestire solo dove e quando serve tramite il proprio script e le funzioni apposite.

    Non mi e' chiaro comunque "quando" ricevi l'errore.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di Kevin
    Registrato dal
    Aug 2002
    Messaggi
    503
    Opps pensavo al Tom Tom si vede quando scrivevo ...

    Non posso far portare il magic_quote_gpc in OFF se no molti siti che non hanno queste utility salterebbero penso.

    L'errore lo ricevo facendo la seconda query quella che inserisce i dati estrapolati con la prima query da un'altra tabella.
    Non ti accontentare mai. Raggiungi il successo e poi rinizia da capo.
    Non si ha mai una seconda possibilità per fare una bella prima impressione.
    Punti d'immersione in Italia e all'estero
    Template per siti web

  6. #6
    prima di fare la seconda query fa inquesto modo

    $var = addslashes(stripslashes($var));

    vedi se cosi va bene...
    ciao

  7. #7
    Utente di HTML.it L'avatar di Kevin
    Registrato dal
    Aug 2002
    Messaggi
    503
    probabilmente sono io che mi esprimo male, il problema l'ho risolto, volevo sapere solamente come mai i dati estrapolati da una tabella reinserendoli in un'altra se hanno un apice inserito mi da errore.
    Non ti accontentare mai. Raggiungi il successo e poi rinizia da capo.
    Non si ha mai una seconda possibilità per fare una bella prima impressione.
    Punti d'immersione in Italia e all'estero
    Template per siti web

  8. #8
    Utente di HTML.it L'avatar di Kevin
    Registrato dal
    Aug 2002
    Messaggi
    503
    up
    Non ti accontentare mai. Raggiungi il successo e poi rinizia da capo.
    Non si ha mai una seconda possibilità per fare una bella prima impressione.
    Punti d'immersione in Italia e all'estero
    Template per siti web

  9. #9
    Originariamente inviato da Kevin
    probabilmente sono io che mi esprimo male, il problema l'ho risolto, volevo sapere solamente come mai i dati estrapolati da una tabella reinserendoli in un'altra se hanno un apice inserito mi da errore.
    scusa tanto... ma avrai mica la pretesa che si indivini il codice usato?

    Se non va e' perche c'e' qualcosa di errato in quello che fai.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di Kevin
    Registrato dal
    Aug 2002
    Messaggi
    503
    Scusa non avevo capito che volevi il codice, allora all'inizio faccio la query:

    $sql="SELECT * FROM tbl_clienti WHERE username = '{$_SESSION['username']}' AND nome = '{$_SESSION['nome']}'";
    $res=safe_query($sql);
    $row=mysql_fetch_array($res);

    $sql="INSERT INTO tbl_prenotazioni (arrivo,partenza,tipologia,numero,costo,nome,cogno me,indirizzo,citta,stato,telefono,email,data,ip) VALUES ";
    $sql.="('".$_SESSION['ArrBook']['ARRIVO']."','".$_SESSION['ArrBook']['PARTENZA']."','".$_SESSION['ArrBook']['TIPO']." ".$_SESSION['ArrBook']['MODELLO']."'";
    $sql.=",'".$_SESSION['ArrBook']['N']."','".$_SESSION['ArrBook']['IMPORTO']."','{$row['nome']}','{$row['cognome']}','{$row['indirizzo']}','{$row['cap']} {$row['citta']} {$row['prov']}','{$row['stato']}','{$row['telefono']}','{$row['email']}','".(time()+(60*60*7))."','".$_SERVER['REMOTE_ADDR']."')";
    $res=safe_query($sql);

    io per far funzionare il tutto ho fatto così
    foreach($row as $key=> $val) {
    $rowSlash[$key]=mysql_escape_string($val);
    }

    $sql="INSERT INTO tbl_prenotazioni (arrivo,partenza,tipologia,numero,costo,nome,cogno me,indirizzo,citta,stato,telefono,email,data,ip) VALUES ";
    $sql.="('".$_SESSION['ArrBook']['ARRIVO']."','".$_SESSION['ArrBook']['PARTENZA']."','".$_SESSION['ArrBook']['TIPO']." ".$_SESSION['ArrBook']['MODELLO']."'";
    $sql.=",'".$_SESSION['ArrBook']['N']."','".$_SESSION['ArrBook']['IMPORTO']."','{$rowSlash['nome']}','{$rowSlash['cognome']}','{$rowSlash['indirizzo']}','{$rowSlash['cap']} {$rowSlash['citta']} {$rowSlash['prov']}','{$rowSlash['stato']}','{$rowSlash['telefono']}','{$rowSlash['email']}','".(time()+(60*60*7))."','".$_SERVER['REMOTE_ADDR']."')";
    $res=safe_query($sql);
    Non ti accontentare mai. Raggiungi il successo e poi rinizia da capo.
    Non si ha mai una seconda possibilità per fare una bella prima impressione.
    Punti d'immersione in Italia e all'estero
    Template per siti web

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.