- Home
- Categorie
- Coding e Sistemistica
- PHP
- Caratteri speciali e codici maligi, la sfida dopo form
-
[php]
include("/home/worldte1/public_html/script/config.php");
$db = mysql_connect($db_host, $db_username, $db_password, $prefix);
if ($db == FALSE)
die ("Errore nella connessione. Vi preghiamo di informare l'assistenza di questo errore.");
mysql_select_db($databse_name, $db)
or die ("Errore nella selezione del database. Vi preghiamo di informare l'assistenza di questo errore.");
mysql_query("SET NAMES utf8") or die(mysql_error());
[/php]
-
Grazie mille, e per quanto riguarda i db?
-
Imposta sia le tabelle che loro campi in utf8_general_ci.
-
Come si impostano le tabelle? i campi ci sono riuscito
-
Vai sulla tabella con phpmyadmin ed in operazioni trovi la collation.
-
Grazie mille, se hai altri consigli specie sull'importazione nel db o altro ti invito a condividerli
-
Aggiungo questo, dopo aver istallato tinymce le cose sono migliorate un pò.
Importo il testo con la funzione stripslashes, successivamente inserisco il testo in un arry:[php]
$arry_message[$number] = $message_user;
$message = serialize($arry_message);
[/php]E carico il messaggio nel db. Gli unici caratteri che non funzionano sono ' e .Sapete per caso come risolvere?
-
Che significa non funzionano? Perchè fai stripslashes, fai un addslashes nel caso in cui i magic_quotes siano su off.
-
Allora ho modificato, il magic_quotes non so se è on o off e non posso modificarlo.
Ho cambiato, ora se inserisco " oppure \ oppure ' non mi stampa l'arry, tutti i campi spariscono.
-
[php]
// Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
if(!get_magic_quotes_gpc())
{
$var1 = addslashes($var1);
$var2 = addslashes($var2);
}
[/php]
-
Ho inserito questo codice
if (get_magic_quotes_gpc())
{
$message_user = addslashes($_REQUEST['message_user']);
} else {
$message_user = $_REQUEST['message_user'];
}
è giusto? se si ho risolto il problema con ", ma \ non funziona ancora mentre ' mi da addirittura errore di connessione.
-
No, è:
[php]
if(!get_magic_quotes_gpc())
[/php]
Errore di connessione o errore di sintassi della query?
-
Allora nel caso precedente con errore intendevo
[php]
if (mysql_query($query_update, $db))
{
Completato();
}
else
{
Errore_Sql();
}
[/php]Mi da Errore_Sql();Se invece utilizzo il sistema che mi hai appena dato:
" ' \ mi sparisce tutto l'arry.
-
Ciao mi sono rassegnato e ho fatto così:
if (!get_magic_quotes_gpc())
{
$message_user = $_REQUEST['message_user'];
$message_user = str_replace('"','"', $message_user);
$message_user = str_replace('?','"', $message_user);
$message_user = str_replace('?','"', $message_user);$message_user = str_replace("'","'", $message_user);
$message_user = str_replace("?","'", $message_user);
$message_user = str_replace("?","'", $message_user);
} else {
$message_user = $_REQUEST['message_user'];
}
Solo che non riesco a farlo con \ potete aiutermi? in più volevo capire come inserire la funzione che blocca i SQL InjectionGrazie mille