Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    28

    [PHP/DB] Caratteri speciali

    Ciao a tutti, mi chiedevo se in PHP esistesse una funzione apposita che servisse per sostituire i caratteri speciali nelle stringhe quando devo salvarli in un DB.

    Per spiegarmi meglio, quando devo salvare la stringa "L'ape è antipatica" su un DB Access, mi dà errore perchè c'è l'apostrofo. Esiste una funzione apposita che sostituisce l'apostrofo e tutti gli altri caratteri speciali con altri caratteri e inverso oppure devo crearla io da zero? Grazie in anticipo per l'aiuto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    \'

    O altrimenti puoi codificarlo in html.

  3. #3
    addslashes($stringa)

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    28
    Non conoscevo questa funzione XD

    In ogni caso l'ho provata e adesso da questo errore:
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query ''L\'apostrofo è odiosa.',26,8,1308682134);'., SQL state 37000 in SQLExecDirect in C:\inviaPost.php on line 15.

    La pagina in questione è questa:

    [PHP]<?php session_start();
    include("highPartMono.php");
    $CodTop = $_SERVER['REQUEST_URI'];
    $CodTop = explode("=",$CodTop);
    $use = $_SESSION['CodUt'];
    $post=$_POST['postContent'];
    echo $post;
    $data = mktime();
    $stringConnect = "Driver={Microsoft Access Driver (*.mdb)}; Dbq=C:\Database.mdb; ";
    $connect = @odbc_connect($stringConnect,"","");
    $Messaggio = odbc_exec($connect,"INSERT INTO Messaggio (Contenuto,CodUt,CodTop,Data) VALUES ('$post',$use,$CodTop[1],$data);"); odbc_close($connect); ?>
    Risposta salvata con successo!


    Aspetta di essere redirezionato alla pagina successiva o clicca QUI.
    <meta http-equiv="refresh" content="3; URL=topic.php?top=<?php

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    28
    Non conoscevo questa funzione XD

    In ogni caso l'ho provata e adesso da questo errore:
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query ''L\'apostrofo è odiosa.',26,8,1308682134);'., SQL state 37000 in SQLExecDirect in C:\inviaPost.php on line 15.

    La pagina in questione è questa:

    [PHP]<?php session_start();
    include("highPartMono.php");
    $CodTop = $_SERVER['REQUEST_URI'];
    $CodTop = explode("=",$CodTop);
    $use = $_SESSION['CodUt'];
    $post=$_POST['postContent'];
    echo $post;
    $data = mktime();
    $stringConnect = "Driver={Microsoft Access Driver (*.mdb)}; Dbq=C:\Database.mdb; ";
    $connect = @odbc_connect($stringConnect,"","");
    $Messaggio = odbc_exec($connect,"INSERT INTO Messaggio (Contenuto,CodUt,CodTop,Data) VALUES ('$post',$use,$CodTop[1],$data);"); odbc_close($connect); ?>
    Risposta salvata con successo!


    Aspetta di essere redirezionato alla pagina successiva o clicca QUI.
    <meta http-equiv="refresh" content="3; URL=topic.php?to

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    285
    Io non vedo che hai usato
    Codice PHP:
    addslashes 
    ...
    Per tutte le variabili che possono contenere testo con qualsiasi carattere, devi usarla...
    es
    Codice PHP:
    $post=addslashes($_POST['postContent']); 
    Poi, in secondo luogo, ti consiglio di fare la insert così
    Codice PHP:
    $Messaggio odbc_exec($connect,"INSERT INTO Messaggio (Contenuto,CodUt,CodTop,Data) VALUES (\"$post\",$use,$CodTop[1],$data);"); odbc_close($connect); 
    Cioè al posto dell apostrofo usa \" \" quando vuoi inserire dei valori...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    285
    Io non vedo che hai usato
    Codice PHP:
    addslashes 
    ...
    Per tutte le variabili che possono contenere testo con qualsiasi carattere, devi usarla...
    es
    Codice PHP:
    $post=addslashes($_POST['postContent']); 
    Poi, in secondo luogo, ti consiglio di fare la insert così
    Codice PHP:
    $Messaggio odbc_exec($connect,"INSERT INTO Messaggio (Contenuto,CodUt,CodTop,Data) VALUES (\"$post\",$use,$CodTop[1],$data);"); odbc_close($connect); 
    Cioè al posto dell apostrofo usa \" \" quando vuoi inserire dei valori...

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.