Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Motore di ricerca & apici

    Salve.
    Sto realizzando un motore di ricerca per un sito che sto facendo.
    I contenuti sono inseriti nel database, mysql, con tinymce, un editor "grafico". Prima di inserire nel db ovviamente passo la stringa a mysql_real_escape_string.
    Ho un problema però con gli apici. Se io inserisco in una pagina la parola "l'albero", viene memorizzata nel db come "l\'albero".
    Ma se cerco la stringa "l'albero", per quanto prima di fare la query la stringa la "passi" a mysql_real_escape_string (ho anche provato con addslashes), non ottengo nessun risultato.
    Ovviamente in condizioni normali il motore di ricerca funziona.

    Esiste un modo per risolvere questo problema?

    Grazie,
    Sergej
    :: Il Deposito
    Canti di protesta politica e sociale
    Archivio di testi e accordi

  2. #2
    Verifica get_magic_quotes_gpc() ed eventualmente elimina gli slashes prima di passare i dati a mysql_real_escape_string()

  3. #3
    get_magic_quotes_gpc() mi restituisce 1, quindi è attivo (anche se il server su cui sto lavorando non è quello di pubblicazione).
    Dici di eliminare gli apici prima?
    Quindi, per esempio, la stringa "l'albero" la faccio diventare "albero"?
    Oppure potrei sostituire l'apice con uno spazio, così poi nella query vado a cercare "l" e "albero" (la stringa di ricerca la "esplodo" in un'array) e sono sicuro che è ok.
    Che dici?

    Sergej
    :: Il Deposito
    Canti di protesta politica e sociale
    Archivio di testi e accordi

  4. #4
    Originariamente inviato da filippo.toso
    Verifica get_magic_quotes_gpc() ed eventualmente elimina gli slashes prima di passare i dati a mysql_real_escape_string()

  5. #5
    Ho provato a dare stripslashes alla stringa, per poi passarla a mysql_real_escape_string, ma continua a non funzionare..
    :: Il Deposito
    Canti di protesta politica e sociale
    Archivio di testi e accordi

  6. #6

  7. #7
    $prova = $_GET['ricerca'];
    $ricerca = stripslashes($prova);
    echo $prova;
    echo $_GET['ricerca'];

    sia $prova che $_GET['ricerca'] mi stampano: l\\'albero
    :: Il Deposito
    Canti di protesta politica e sociale
    Archivio di testi e accordi

  8. #8
    Nel db i dati sono memorizzati con lo slash, quindi se lo aggiungo ottengo il risultato ottenuto..
    :: Il Deposito
    Canti di protesta politica e sociale
    Archivio di testi e accordi

  9. #9
    Codice PHP:
    <form method="post">
    <input type="hidden" name="test" value="l'albero" />
    <input type="submit" />
    </form>
    <pre>
    <?php 
    $test 
    = isset($_POST['test']) ? $_POST['test'] : '';

    var_dump(get_magic_quotes_gpc());
    var_dump($test);

    if (
    get_magic_quotes_gpc()) {
        
    $test stripslashes($test);
    }

    var_dump($test);

    ?>
    </pre>

  10. #10
    La soluzione che ho adottato è molto "sporca"?
    O è "sbagliato" che nel db i dati siano salvati con l'apice?
    :: Il Deposito
    Canti di protesta politica e sociale
    Archivio di testi e accordi

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.