Salve a tutti, ho appena attivato il mio hosting con altervista ma, aimè, se non riuscirò a risolvere questo dannato problema con le lettere accentate, sarò costretto ad abbandonarlo!!
Veniamo al dunque:
premesso che in locale funziona tutto correttamente, che mi sono sfogliato tutto il forum in cerca di risposta, che ho ricreato da pannello di controllo il database e sempre da pannello di controllo i due file (quindi senza problemi di import sql o robe varie, mi spuntano sempre i simboletti al posto delle accentate e di conseguenza il json restituisce NULL. Se non metto accentate tutto fila liscio!!!
Soluzioni???
Grazie in anticipo!
config.inc.php (connessione al database)
Codice PHP:
<?php
$username = "....";
$password = "...";
$host = "localhost";
$dbname = "....";
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try
{
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
die("Failed to connect to the database: " . $ex->getMessage());
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
{
function undo_magic_quotes_gpc(&$array)
{
foreach($array as &$value)
{
if(is_array($value))
{
undo_magic_quotes_gpc($value);
}
else
{
$value = stripslashes($value);
}
}
}
undo_magic_quotes_gpc($_POST);
undo_magic_quotes_gpc($_GET);
undo_magic_quotes_gpc($_COOKIE);
}
header('Content-Type: text/html; charset=utf-8');
session_start();
?>
random.php (visualizzazione della query in formato json)
Codice PHP:
<?php
require("config.inc.php");
$query = "SELECT * FROM comments order by RAND() LIMIT 1";
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error!";
die(json_encode($response));
}
$rows = $stmt->fetchAll();
if ($rows) {
$response["success"] = 1;
$response["message"] = "Post Available!";
$response["posts"] = array();
foreach ($rows as $row) {
$post = array();
$post["post_id"] = $row["post_id"];
$post["username"] = $row["username"];
$post["title"] = $row["title"];
$post["message"] = $row["message"];
$post["data"] = $row["data"];
array_push($response["posts"], $post);
}
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "No Post Available!";
die(json_encode($response));
}
?>