@rewqqwer

Как пофиксить проблему с занесением русских строк в бд?

в бд всего 6 столбцов: summary, content, title, owners, pubdate, id. В первые 3 заносится введенный с формы юзером текст. Если вводить английские символы, то все работает ожидаемо, но при написании русских символов заносятся в бд лишь данные с content, в других двух просто пустые места. Кодировку уже менял, эти 3 столбца абсолютно одинаковые. Какого фига? скрин замониторенной бд: 0afe819144c447ccadfe646cd303d1ca.png
код обработчика
<?php
require('cms/config.php');
session_start();
if (!$_SESSION['user']) {
	$_SESSION['fr'] = "Для добавления записи вам нужно зарегестрироваться";
	$_SESSION['where'] = 'add.php';
	header("location: /signup.php"); 
} 
 $data = $_REQUEST;
 if (isset($data['dothings'])) {
 	try {
 		if (!@($data['title'])) {
 		 $data['title'] = '##';
 		 throw new Exception('Отсутсвует название вашего проекта', 1);
 		}
 		if (!@($data['summary'])) {
 		 $data['summary'] = '##';
 		 throw new Exception('Отсутсвует краткое описание вашего проекта', 1);
 		}
 		if (!@($data['content'])) {
 		 $data['content'] = '##';
 		 throw new Exception('Отсутсвует полное описание вашего проекта', 1);
 		}
 		if ((!@$_FILES['im']['name'][0]) || !(@$_FILES['im']['name'][1])) {
 			echo '<span id="mes" class = "col-sm-8 col-sm-push-5">'.count($_FILES['im']['tmp_name']).'</span>';
 			$data['im'] = '##';
 			throw new Exception('Вы должны загрузить две фотографии', 1);
 		}
		$ar = array('publicationDate' => time(), 'title' => $data['title'], 'summary' => $data['summary'], 'content' => $data['content'], 'owners' => $_SESSION['user']->login.','.$data['owners']);
 		$proj = new Article($ar);
 		$proj -> insert();
 		$uploaddir = '/files';
 		for ($i = 0; $i < 2; ++$i) {
 		$uploadfile = '.'.$uploaddir. '/'. $proj->id;
 		$uploadfile .= "($i).jpg";
	 	move_uploaded_file($_FILES['im']['tmp_name'][$i], $uploadfile);
	 	header('Location: /');
 }
}
 catch (Exception $e) {
 	echo '<span id="mes" class = "col-sm-8 col-sm-push-5">'.$e->getmessage().'</span>';
 }
 }
?>
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
@apenshin
python/django/php/yii
Вот из-за этого:
if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['title'] );
    if ( isset( $data['summary'] ) ) $this->summary = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['summary'] );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы