РЕШЕНО Не сохраняются специальные символы

Статус
Закрыто для дальнейших ответов.

cristian2307

Местный
Привет, я пытаюсь написать сообщение с этими символами:

\|@#~€¬ª!"·$%/&()=?¿*^ñ

В базу данных сохраняются только:

\|@~€¬ª·$/&()=¿*^ñ

и они не сохраняются:

#!"%?

кодировка в базе такая:

utf8mb4_general_ci

Версия PHP, используемая в скрипте, — PHP5.6.

Что я могу сделать, чтобы сохранить и отобразить знаки, которые в данный момент не отображаются? #!"%?
 

pligin

Команда форума
Администратор
Привет, я пытаюсь написать сообщение с этими символами:

\|@#~€¬ª!"·$%/&()=?¿*^ñ

В базу данных сохраняются только:

\|@~€¬ª·$/&()=¿*^ñ

и они не сохраняются:

#!"%?

кодировка в базе такая:

utf8mb4_general_ci

Версия PHP, используемая в скрипте, — PHP5.6.

Что я могу сделать, чтобы сохранить и отобразить знаки, которые в данный момент не отображаются? #!"%?
У тебя есть фильтрация текста. Вот и смотри там
 

cristian2307

Местный
У тебя есть фильтрация текста. Вот и смотри там
PHP:
<?PHP include("pages/admin/head/_head_gl.php");?>

 <div class="content">
        <div class="header">
      

            <h1 class="page-title">Новости проекта</h1>
                    

        </div>
        <div class="main-content">
 
 

    



<div class="panel panel-default" >

      

<br>


            <!-- ============================================================== -->
            <div class="container-fluid">
                <!-- ============================================================== -->
                
                <!-- ============================================================== -->
              
                
<div class="row">
                    <div class="col-lg-6">
                        <div class="card" style="height: 75px;">
                            <div class="card-body">
                                <div class="table-responsive">
                                    <table class="table">
                                    <center><a href = "/?menu=admin&sel=news" ><button style="width: 220px;" type="button" class="btn waves-effect waves-light btn-block btn-primary">Список новостей</button></a></center>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="col-lg-6">
                        <div class="card" style="height: 75px;">
                            <div class="card-body">
                                <div class="table-responsive">
                                    <table class="table">
                                    <center><a href = "/?menu=admin&sel=news&add" ><button style="width: 220px;" type="button" class="btn waves-effect waves-light btn-block btn-warning">Добавить новость</button></a></center>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- row -->
                


          <?PHP
          if (!defined('AlexMoon') || AlexMoon !== true) { Header('Location: /404'); return; }
if(isset($_POST["del"])){

$ret_id = intval($_POST["del"]);

$db->Query("DELETE FROM db_news WHERE id = '$ret_id'");
    
    echo '<div class="alert alert-success"><center><b>Новость удалена</b></center></div>';

}

# добавление новости
if(isset($_GET["add"])){

    if(isset($_POST["title"], $_SESSION["add_news"]) AND $_SESSION["add_news"] == $_POST["add_news"]){
    
    unset($_SESSION["add_news"]);
    
    $title = $func->TextClean($_POST["title"]);
    $text = $_POST["ntext"];
    

            $db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");
            echo '<div class="alert alert-success"><center><b>Новость добавлена</b></center></div>';header("Refresh: 3; URL=/?menu=admin&sel=news");
            
        
    
    }

?>
<div class="row">
                    <div class="col-12">
                        <div class="card">
                                                       <div class="card-body">
<center><form action="" method="post">
<b>Заголовок:</b><BR />
<input type="text" name="title" size="45" value="<?=(isset($_POST["title"])) ? $_POST["title"] : false; ?>" /><BR /><BR />
<b>Новость:</b><BR />
<textarea type="text" name="ntext" size="45" cols="78" rows="10"><?=(isset($_POST["ntext"])) ? $_POST["ntext"] : false; ?></textarea><BR /><BR />
<button  type="submit" name="add_news" class="btn btn-success"><i class="fa fa-check"></i> Добавить новость</button>


<?PHP
$_SESSION["add_news"] = rand(1,1000);
?>
<input type="hidden" name="add_news" value="<?=$_SESSION["add_news"]; ?>" />

</form></center>


                        </div></div>
                    </div>
                </div>
                
                

                

                <!-- ============================================================== -->
            </div>




<?PHP include("pages/admin/foot/_foot_gl.php");?>
<?PHP
return;
}


# редактирование
if(isset($_GET["edit"])){

$idr = intval($_GET["edit"]);

$db->Query("SELECT * FROM db_news WHERE id = '$idr' LIMIT 1");

if($db->NumRows() != 1){ echo '<div class="alert alert-danger"><center><b>Новость с таким ID не найдена</b></center></div>' ; return;}

    if(isset($_POST["title"])){
    
    $title = $func->TextClean($_POST["title"]);
    $title = (strlen($title) > 0) ? $title : "Без заголовка";
    $text = $_POST["ntext"];
    
    $db->Query("UPDATE db_news SET title = '$title', news = '$text' WHERE id = '$idr'");
    $db->Query("SELECT * FROM db_news WHERE id = '$idr' LIMIT 1");
    
     echo '<div class="alert alert-success"><center><b>Новость отредактирована</b></center></div>';header("Refresh: 3; URL=/?menu=admin&sel=news");
    
    }

$news = $db->FetchArray();




?>
<div class="row">
                    <div class="col-12">
                        <div class="card">
                                                       <div class="card-body">
<center><form action="" method="post">
<b>Заголовок:</b><BR />
<input type="text" name="title" size="45" value="<?=$news["title"]; ?>" /><BR /><BR />
<b>Новость:</b><BR />
<textarea type="text" name="ntext" size="45" cols="78" rows="10"><?=$news["news"]; ?></textarea><BR /><BR />
<button  type="submit" name="add_news" class="btn btn-success"><i class="fa fa-check"></i> Сохранить</button>
</form><center>



                
                                    

                        </div></div>
                    </div>
                </div>
                
                

                

                <!-- ============================================================== -->
            </div>




<?PHP include("pages/admin/foot/_foot_gl.php");?>



                                    <?PHP

return;
}

$db->Query("SELECT * FROM db_news ORDER BY id DESC");

if($db->NumRows() > 0){

?><div class="row">
                    <div class="col-12">
                        <div class="card">
                            <div class="card-body">

                                <div class="table-responsive">
                                    <center><table style="width: 95%;" id="zero_config" class="table table-striped table-bordered">
                                        <thead align="center">
                                            <tr>
                                                
                                                <th style="width: 33.3%;" align="center">ID</th>
                                                <th style="width: 33.3%;" align="center">Название</th>
                                                <th style="width: 33.3%;" align="center">Действие</th>
                                                
                                            </tr>
                                        </thead>
                  
                                        <tbody align="center">
                                                                  <?PHP

    while($data = $db->FetchArray()){
    
    ?>
                                            <tr>
                                                
                                                <td style="width: 33.3%;" align="center"><?=$data["id"]; ?></td>
                                                <td style="width: 33.3%;font-weight: 600;font-size: 14px;" align="center"><?=$data["title"]; ?></td>
                                                <form  action="" method="post"><td style="width: 33.3%;" align="center">
    <a style="font-size: 12px; " href="/?menu=admin&sel=news&edit=<?=$data["id"]; ?>" type="submit"  class="  waves-light btn-xs btn-secondary"><i class="fa fa-list" aria-hidden="true"></i> &#160;&#160;Редактировать</a>
    <button style="font-size: 12px;height:22px;" type="submit" name="del" value="<?=$data["id"]; ?>" class="    btn-danger"><i class="fa fa-undo" aria-hidden="true"></i>&#160;&#160; Удалить</button>
    
        
    </td></form>
                                            </tr>
                                            <?PHP
    
    }

?>
                                        </tbody>
                                        
                                    </table></center>
                                    
                                        



                                  
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                
              
<?PHP

}else echo '<div class="alert alert-secondary"><center><b>Новостей нет</b></center></div>' ;
?>

                <!-- ============================================================== -->
            </div>




                
      

<?PHP include("pages/admin/foot/_foot_gl.php");?>
 

pligin

Команда форума
Администратор
index.php и pages/admin/head/_head_gl.php покажи
 

cristian2307

Местный
index.php и pages/admin/head/_head_gl.php покажи
index.php

PHP:
<?PHP
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

header("Content-type: text/html; charset=utf-8");
function check_text($text) {
    $arraysql = array('UNION','SELECT','OUTFILE','LOAD_FILE','GROUP BY','ORDER BY','INFORMATION_SCHEMA.TABLES','BENCHMARK','FLOOR','SLEEP','CHAR','select','sleep','union','floor','char','group by','order by','load_file');
    $replacesql ='';
    $text2=$text;
    $text2=mb_strtoupper($text2);
    $text2=str_replace($arraysql, $replacesql, $text2,$count);
    if($count!=0){ echo "Ошибка, сработала защита.<br>Подозрение на SQL inj или XXS "; exit;}

    $array_find = array("'",'"','/**/','0x','/*','--','\x27', '\x22', '\x60', '\t', '\n', '\r', '%', '<', '>', '?', '!', '+', '#');
    $array_replace ='';
    $text=str_replace($array_find, $array_replace, $text);
    return $text;
}
foreach($_GET as $i => $value){ $_GET[$i]=check_text($_GET[$i]);}
foreach($_POST as $i => $value){ $_POST[$i]=check_text($_POST[$i]);}
foreach($_COOKIE as $i => $value){ $_COOKIE[$i]=check_text($_COOKIE[$i]);}

# Счетчик
function TimerSet(){
    list($seconds, $microSeconds) = explode(' ', microtime());
    return $seconds + (float) $microSeconds;
}

$_timer_a = TimerSet();

# Старт сессии
@session_start();

# Старт буфера
@ob_start();

# Default
$_OPTIMIZATION = array();
$_OPTIMIZATION["title"] = "";
$_OPTIMIZATION["description"] = "";
$_OPTIMIZATION["keywords"] = "";

# Константа для Include
define("AlexMoon", true);
define('BASE_DIR',$_SERVER['DOCUMENT_ROOT']);
# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}

# Класс конфига
$config = new config;

# Функции
$func = new func;

# Установка REFERER
include("inc/_set_referer.php");

# База данных
include(BASE_DIR.'/inc/_connect.php');
$result = $pdo->query("SELECT * FROM `db_config` WHERE `id` = '1' LIMIT 1");
$db_config = $result->fetch();

$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);
$life_time = new life_time($db);
$life_time->CheckTime();
$db->Query("SELECT * FROM `db_config` WHERE `id` = '1' LIMIT 1");
$db_config = $db->FetchArray();
# Конкурсы
$invcomp = new invcomp($db,$db_config['ser_per_wmr']);
$invcomp->CheckComp();
$comp = new comp($db,$db_config['ser_per_wmr']);
$comp->CheckComp();

# Шапка
@include("inc/_header.php");

        if(isset($_GET["menu"])){
        
            $menu = strval($_GET["menu"]);
            
            switch($menu){
            
                case "404": include("pages/_404.php"); break; // Страница ошибки
                case "rules": include("pages/_rules.php"); break; // Правила проекта
                case "about": include("pages/_about.php"); break; // О проекте
                case "contacts": include("pages/_contacts.php"); break; // Контакты
                case "news": include("pages/_news.php"); break; // Новости
                case "signup": include("pages/_signup.php"); break; // Регистрация
                case "login": include("pages/_login.php"); break; // Вход
                case "recovery": include("pages/_recovery.php"); break; // Восстановление пароля
                case "account": include("pages/_account.php"); break; // Аккаунт
                case "stats": include("pages/_stats.php"); break; // Статистика
                case "competitions": include("pages/_competitions.php"); break; // Конкурсы
                case "feedback": include("pages/_feedback.php"); break; // Отзывы
                case "comp": include("pages/_competitionsr.php"); break; // Конкурс рефералов
                case "faq": include("pages/_faq.php"); break; // Конкурс рефералов
                case "admin": include("pages/_admin.php"); break; // Админка
                
            # Страница ошибки
            default: @include("pages/_404.php"); break;
            
            }
            
        }else @include("pages/_index.php");


# Заносим контент в переменную
$content = ob_get_contents();

# Очищаем буфер
ob_end_clean();
    
    # Заменяем данные
    $content = str_replace("{!TITLE!}",$_OPTIMIZATION["title"],$content);
    $content = str_replace('{!DESCRIPTION!}',$_OPTIMIZATION["description"],$content);
    $content = str_replace('{!KEYWORDS!}',$_OPTIMIZATION["keywords"],$content);
    $content = str_replace('{!GEN_PAGE!}', sprintf("%.5f", (TimerSet() - $_timer_a)) ,$content);
    
    # Вывод баланса
    if(isset($_SESSION["user_id"])){
    
        $user_id = $_SESSION["user_id"];
        $db->Query("SELECT money_b, money_p, money_s FROM db_users_b WHERE id = '$user_id'");
        $balance = $db->FetchArray();
        
        $content = str_replace('{!BALANCE_B!}', sprintf("%.2f", $balance["money_b"]) ,$content);
        $content = str_replace('{!BALANCE_P!}', sprintf("%.2f", $balance["money_p"]) ,$content);
        $content = str_replace('{!BALANCE_C!}', sprintf("%.2f", $balance["money_s"]) ,$content);
    }
    
// Выводим контент
echo $content;
?>

pages/admin/head/_head_gl.php

PHP:
<html lang="en"><head>
  
    <title>Admin Panel</title>
    <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
<link rel="shortcut icon" href="/style/444/images/favicon.png" type="image/x-icon">
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700" rel='stylesheet' type='text/css'>
    <link rel="stylesheet" type="text/css" href="/style/ad/bootstrap\css\bootstrap.css">
    <link rel="stylesheet" href="/style/ad/font-awesome\css\font-awesome.css">

    <script src="/style/ad/jquery-1.11.1.min.js" type="95d53fb7e5a60e0ad47fbdc6-text/javascript"></script>

    

    <link rel="stylesheet" type="text/css" href="/assets/styles/theme.css">
    <link rel="stylesheet" type="text/css" href="/assets/styles/premium.css">

</head>
  <div class="navbar navbar-default" role="navigation">
        <div class="navbar-header">
        
          <a class="" href="index.html"><span class="navbar-brand"><span class="fa fa-paper-plane"></span> Панель администратора</span></a></div>

        <div class="navbar-collapse collapse" style="height: 1px;">
          <ul id="main-menu" class="nav navbar-nav navbar-right">
            <li class="dropdown hidden-xs">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                    <span class="glyphicon glyphicon-user padding-right-small" style="position:relative;top: 3px;"></span> Привет, Admin
                    
                </a>

            
            </li>
          </ul>

        </div>
      </div>
 <div class="sidebar-nav">
    <ul>
    <li><a href="#" data-target=".dashboard-menu" class="nav-header" data-toggle="collapse"><i class="fa fa-fw fa-dashboard"></i> Статистика проекта</a></li>
    <li><ul class="dashboard-menu nav nav-list collapse in">
            <li><a href="/?menu=admin&sel=stats"><span class="fa fa-caret-right"></span> Статистика общая</a></li>
            <li ><a href="/?menu=admin&sel=users"><span class="fa fa-caret-right"></span> Список пользователей</a></li>
            <li ><a href="/?menu=admin&sel=story_insert"><span class="fa fa-caret-right"></span> История пополнений</a></li>
            <li ><a href="/?menu=admin&sel=payments"><span class="fa fa-caret-right"></span> История выплат</a></li>
            <li ><a href="/?menu=admin&sel=story_buy"><span class="fa fa-caret-right"></span> История покупок</a></li>
             <li ><a href="/?menu=admin&sel=story_swap"><span class="fa fa-caret-right"></span> История обменов</a></li>
            <li ><a href="/?menu=admin&sel=news"><span class="fa fa-caret-right"></span> Новости проекта</a></li>
            <li ><a href="/?menu=admin&sel=advert"><span class="fa fa-caret-right"></span> Объявления</a></li>
            
            
    </ul>
<ul>
    
     <li><a href="#" data-target=".dashboard-menu" class="nav-header" data-toggle="collapse"><i class="fa fa-fw fa-fighter-jet"></i> Разное</a></li>
    <li><ul class="dashboard-menu nav nav-list collapse in">
            <li ><a href="/?menu=admin&sel=promo"><span class="fa fa-caret-right"></span> Промокоды </a></li>
            
            
    </ul>
    <li><a href="#" data-target=".dashboard-menu" class="nav-header" data-toggle="collapse"><i class="fa fa-fw fa-fighter-jet"></i> Настройки</a></li>
    <li><ul class="dashboard-menu nav nav-list collapse in">
            <li><a href="/?menu=admin&sel=config"><span class="fa fa-caret-right"></span> Общие настройки</a></li>
            <li ><a href="/?menu=admin&sel=invcomp"><span class="fa fa-caret-right"></span> Конкурсы инвесторов</a></li>
            <li ><a href="/?menu=admin&sel=comp"><span class="fa fa-caret-right"></span> Конкурсы рефералов</a></li>
          
            
        
    </ul>
    

    </div>
    
 
<body class=" theme-blue">

    <!-- Demo page code -->

 
    <style type="text/css">
        #line-chart {
            height:300px;
            width:800px;
            margin: 0px auto;
            margin-top: 1em;
        }
        .navbar-default .navbar-brand, .navbar-default .navbar-brand:hover {
            color: #fff;
        }
    </style>




    
      
    
      
      
      
      
      
      
    
    
    
    
    
          


    <link rel="stylesheet" type="text/css" href="/style/ad/theme.css">
    <link rel="stylesheet" type="text/css" href="/style/ad/premium.css">
 

pligin

Команда форума
Администратор
function check_text($text) { $arraysql = array('UNION','SELECT','OUTFILE','LOAD_FILE','GROUP BY','ORDER BY','INFORMATION_SCHEMA.TABLES','BENCHMARK','FLOOR','SLEEP','CHAR','select','sleep','union','floor','char','group by','order by','load_file'); $replacesql =''; $text2=$text; $text2=mb_strtoupper($text2); $text2=str_replace($arraysql, $replacesql, $text2,$count); if($count!=0){ echo "Ошибка, сработала защита.<br>Подозрение на SQL inj или XXS "; exit;} $array_find = array("'",'"','/**/','0x','/*','--','\x27', '\x22', '\x60', '\t', '\n', '\r', '%', '<', '>', '?', '!', '+', '#'); $array_replace =''; $text=str_replace($array_find, $array_replace, $text); return $text; } foreach($_GET as $i => $value){ $_GET[$i]=check_text($_GET[$i]);} foreach($_POST as $i => $value){ $_POST[$i]=check_text($_POST[$i]);} foreach($_COOKIE as $i => $value){ $_COOKIE[$i]=check_text($_COOKIE[$i]);}
Вот оно
 
Статус
Закрыто для дальнейших ответов.
Верх