Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    se inserisco una news che nel corpo ha un apostrofo, non entra nel db

    Da che ho cambiato server sto passando i guai.
    Oggi ho notato che se una news ha un apostrofo, tipo la parola:
    l'asino
    questa news non viene inserita nel db.

    Come posso fare? per risolvere?
    faccio un addslashes oppure un str_replace?
    ho provato cosi' ma non va bene, forse sbaglio la sintassi?

    $d = str_replace(''', '\'', $d);
    Mai dire Mai

  2. #2
    Ciao,

    Io farei un addslashes in inserimento con un foreach e poi, quando vai a recuperare il testo, un usi lo stripslashes e dovrebbe essere tutto in ordine.

    codice:
     	
    foreach ($_POST as $Chiave => $Valore)
    {
         $_POST[$Chiave] =  addslashes($Valore);
    }
    codice:
        stripslashes($testo_news)
    A presto!

  3. #3
    Se usi MySQL la funzione corretta da usare e' mysql_real_escape_string(), ma comunque la cosa migliore per interagire con un database e' usare un'interfaccia come PDO.

  4. #4
    questo e' il pezzo di codice che riguarda l'inserimento:
    Codice PHP:
    elseif ($mode == "doadd") {
    $a $_POST['a'];//titolo
    $b $_POST['b'];//sommario
    $d $_POST['d'];//testo
    $c nl2br($b);
    $e nl2br($d);

    $giorno date("d",time());
    $mese date("m",time());
    $anno date("Y",time());
    $ore date("H",time());
    $minuti date("i",time());

    $ora $ore $minuti;

    $sql "INSERT INTO news VALUES ('',
    '
    $giorno',
    '
    $mese',
    '
    $anno',
    '
    $ora',
    '
    $a',
    '
    $e',
    '
    $c'
    )"

    ho provato con addslashes ma lo stesso non andava, forse ho sbagliato io a metterlo? ora l'ho tolto, mi dite dove devo metterlo?
    ho anche notato che se nel campo di testo scrivo la parola
    l\'asino (con il backslash) la news entra nel db
    Mai dire Mai

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    96
    Originariamente inviato da trippacchiello
    questo e' il pezzo di codice che riguarda l'inserimento:
    Codice PHP:
    elseif ($mode == "doadd") {
    $a $_POST['a'];//titolo
    $b $_POST['b'];//sommario
    $d $_POST['d'];//testo
    $c nl2br($b);
    $e nl2br($d);

    $giorno date("d",time());
    $mese date("m",time());
    $anno date("Y",time());
    $ore date("H",time());
    $minuti date("i",time());

    $ora $ore $minuti;

    $sql "INSERT INTO news VALUES ('',
    '
    $giorno',
    '
    $mese',
    '
    $anno',
    '
    $ora',
    '
    $a',
    '
    $e',
    '
    $c'
    )"

    ho provato con addslashes ma lo stesso non andava, forse ho sbagliato io a metterlo? ora l'ho tolto, mi dite dove devo metterlo?
    ho anche notato che se nel campo di testo scrivo la parola
    l\'asino (con il backslash) la news entra nel db
    Ciao prima della insert prova ad inserire questo

    Codice PHP:
    if(get_magic_quotes_gpc())
    {
    $cognome=stripslashes($cognome);
    }
    $cognome=htmlspecialchars($cognome);
    $cognome=mysql_real_escape_string($cognome); 
    Fammi sapere

  6. #6
    Codice PHP:
    $cognome=htmlspecialchars($cognome); 
    Ma perche'?

  7. #7
    ho provato cosi' ma niente, ecco il codice completo:
    Codice PHP:
    $a $_POST['a'];//titolo
    $b $_POST['b'];//sommario
    $d $_POST['d'];//testo news
    $c nl2br($b);
    $e nl2br($d);

    $giorno date("d",time());
    $mese date("m",time());
    $anno date("Y",time());
    $ore date("H",time());
    $minuti date("i",time());

    $ora $ore $minuti;

    if(
    get_magic_quotes_gpc())
    {
    $d=stripslashes($d);
    }
    $d=htmlspecialchars($d);
    $d=mysql_real_escape_string($d);

    $sql "INSERT INTO news VALUES ('',
    '
    $giorno',
    '
    $mese',
    '
    $anno',
    '
    $ora',
    '
    $a',
    '
    $e',
    '
    $c'
    )"

    Mai dire Mai

  8. #8
    Eh grazie, $d manco compare nella query. Ma dare nomi sensati alle variabili no?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    96
    Originariamente inviato da k.b
    Ma perche'?
    forse per i caratteri speciali?

  10. #10
    Originariamente inviato da k.b
    Eh grazie, $d manco compare nella query. Ma dare nomi sensati alle variabili no?
    infatti e' uno script che prendemmo gia' fatto, quando lo commentammo scrivemmo la stessa cosa io qui ho incollato solo
    $d = $_POST['d'];//testo news
    ma in realta' c'e' anche altro... tipo, ma come caxxo programma questo??
    ad ogni modo che faccio? metto $e?
    Mai dire Mai

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.