2017-09-16 204 views
2

我收到错误控制台连我加入UTF-8加元标记UTF-8,但HTML文档的字符编码未声明仍然得到它

The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol.

我已经在HMTL头加入。

<meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 
<meta content="utf-8" http-equiv="encoding"> 

如果我删除下面从HTML我的PHP代码,那么它的正常工作

注:$GET['Key']值来自URL(domain.com/details?key=uYxnJrS3aLv0JbJFLnnmW4TRRpF6%2FYB0JD6LUhPYu0U%3D)

if ($conn->real_escape_string($_GET['key'])){ 
    $p_id=$conn->real_escape_string($_GET['key']); 
    $decrypted_p_id = decryptIt($p_id); 
    /*display single products*/ 
    $sql_single_products="SELECT p_images, p_name, p_company, p_status FROM products WHERE p_id=?"; 
    if ($stmt = $conn->prepare($sql_single_products)) { 
      $stmt->bind_param("i", $decrypted_p_id); 
      $stmt->execute(); 
      $stmt->bind_result($p_images, $name,$company,$status); 
      $stmt->fetch(); 
    } 
} 

下面是我的ID密码改到解密的功能和反之亦然

function encryptIt($q) { 
    $cryptKey = 'qJB0rGtIn5UB1xG03efyCp'; 
    $qEncoded  = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($cryptKey), $q, MCRYPT_MODE_CBC, md5(md5($cryptKey)))); 
    return($qEncoded); 
} 

function decryptIt($q) { 
    $cryptKey = 'qJB0rGtIn5UB1xG03efyCp'; 
    $qDecoded  = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($cryptKey), base64_decode($q), MCRYPT_MODE_CBC, md5(md5($cryptKey))), "\0"); 
    return($qDecoded); 
} 

Connection.php

$servername = "localhost"; 
$username = "user"; 
$password = "Pass#@123"; 
$dbname = "dbname"; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
$conn->set_charset('utf8'); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

在数据库连接文件中添加$conn->set_charset('utf8');越来越 也加入ini_set('display_errors', 1);然后我收到错误

Allowed memory size of 268435456 bytes exhausted (tried to allocate 4294967296 bytes) 
+0

是你的数据库使用utf8的字符集? – Ramadhan

+0

我不知道。我应该在哪里设置它? –

+0

phpmyadmin,并看看你的数据库列表。在那里有关于字符集的信息 – Ramadhan

回答

0

最后,我找到了我的答案。 我做了什么,我在public_html文件夹中创建了一个php.ini文件,并在其中添加了以下代码。

memory_limit = 512M // before it was 256M if you want to check the current limit then add `php_info();` in your PHP file then run your file.and find memory_limit. 
post_max_size = 32M; 
upload_max_filesize = 32M; 

但仍然,我得到的问题。我是用事先准备好的声明,然后我加入

$stmt->store_result(); 

$stmt->bind_result()之前,这一次是工作perfeclty。

如果有人遇到同样的问题,请尝试此解决方案。

0

你应该写后:

<meta charset="utf-8" /> 
+0

我试过但也是同样的问题 –

+0

您需要检查DataBase字符集;当你创建与数据库的连接时你可以设置默认的字符集,例如:'$ conn-> set_charset('utf8')' –

+0

在数据库中添加上面的字符集后,我得到了一些不同的错误。致命错误:允许的内存大小为134217728字节耗尽(试图分配4294967296字节) –

相关问题