[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: utf-8 и BOM
Страницы: 1, 2, 3, 4
Michael
мое замечание не исправлено

_____________
There never was a struggle in the soul of a good man that was not hard
twin
Да вот... Пока не выходит. Не могу смоделировать такую ситуацию. У тебя нет диска C наверное. Думаемс)))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Michael
Нет, диск C: на месте. Это как то с дисководом A: связано. Запускаю программу - ошибка. В списке есть A:, но без []. Если его выбрать - та же ошибка повторится два раза, и затем A: исчезает из списка.


_____________
There never was a struggle in the soul of a good man that was not hard
refined
у меня такая проблема после удаления BOM из файла ошибка всё равно осталась! может дело было и не в BOM.
вот такая ошибка:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at X:\home\localhost\www\Demo1\index.php:1) in X:\home\localhost\www\Demo1\comment.class.php on line 2

не подскажите в чем может быть дело?
Самое интересно, что при этом работает session_start(); .
twin
Если есть такая ошибка, знач не работает. Сессионный массив в пределах скрипта ведет себя как обыкновенный.

А по сабжу, не должно так быть. Дай файл сюда.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
refined
я не могу файлы вставлять поэтому так текстом...

<?php

// Error reporting:
error_reporting(E_ALL^E_NOTICE);

include "connect.php";
include "comment.class.php";


/*
/ Создаем запрос mysql для вывода старых комментариев из таблицы $comments
*/


$comments = array();
$result = mysql_query("SELECT * FROM comments ORDER BY id ASC");

while($row = mysql_fetch_assoc($result))
{
$comments[] = new Comment($row);
}




?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Комментарии</title>
<
script language="JavaScript" type="text/javascript" src="ajax_captcha.js"></script>

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

</
head>

<
body>



<
h1>Комментарии на AJAX с использованием PHP, MySql, JS</h1>

<
div id="main">

<?php

/*
/ Вывод комментариев <form action="<?php echo $_SERVER['PHP_SELF']; ?>" id="addCommentForm" method="post" enctype="multipart/form-data">
*/


foreach($comments as $c){
echo $c->markup();
}

?>

<div id="addCommentContainer">
<
p>Добавление комментария</p>
<
form action="<?php echo $_SERVER['PHP_SELF']; ?>" id="addCommentForm" method="post" enctype="multipart/form-data">
<
form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">

<
div>
<
label for="name">Ваше имя</label>
<
input type="text" name="name" id="name" value="name" />

<
label for="email">Email</label>
<
input type="text" name="email" id="email" value="fedor@12.ru"/>

<
label for="url">Вебсайт (не обязательное поле) </label>
<
input type="text" name="url" id="url" value="http://" />

<
label for="body">Комментарий</label>
<
textarea name="body" id="body" cols="20" rows="5" ></textarea>

<
label for="code">Введите символы</label>
<
br />
<
img id="imgCaptcha" src="captcha.php" onclick="setTimeout('refreshimg()', 300); return false;" alt="Нажми чтобы изменить картинку" />
<
input type="text" name="code" id="code" />

<
input type="submit" id="submit" value="Отправить" onclick="setTimeout('refreshimg()', 300);"/>
</
div>
</
form>
</
div>

</
div>
<
script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<
script type="text/javascript" src="script.js"></script>

</
body>
</
html>




<?php
session_start();
class Comment
{
private $data = array();


public function __construct($row)
{
/*
/ конструктор
*/


$this->data = $row;
}

public function markup()
{
/*
/этот метод выводит разметки XTML комментарий
*/

// Создание псевдонима, чтобы не писать $this->data
// каждый раз

$d = &$this->data;

$link_open = '';
$link_close = '';

if($d['url']){

// если человек заполнил url
// определяем ссылку


$link_open = '<a href="'.$d['url'].'">';
$link_close = '</a>';
}

// Преобразование времени
$d['dt'] = strtotime($d['dt']);

// Необходим для изображений Gravatar по умолчанию:
$url = 'http://'.dirname($_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]).'/img/default_avatar.gif';

return '

<div class="comment">
<div class="avatar">
'
.$link_open.'
<img src="http://www.gravatar.com/avatar/'
.md5($d['email']).'?size=50& default='.urlencode($url).'" />
'
.$link_close.'
</div>

<div class="name">'
.$link_open.$d['name'].$link_close.'</div>
<div class="date" title="Added at '
.date('H:i \o\n d M Y',$d['dt']).'">'.date('H:i d M Y',$d['dt']).'</div>
<p>'
.$d['code'].'</p>
<p>'
.$d['body'].'</p>

</div>
'
;
}

public static function validate(&$arr)
{
/*
/ Данный метод используется для проверки данных,
/ передаваемых через AJAX.
/
/ Это возвращение true/false в зависимости
/ от данных является действительным, и заполняеться
/ Масив $arr передается в качестве параметра
/ Либо действительно ввод данных, или сообщения об ошибках.
*/


$errors = array();
$data = array();

// filter_input функция, введенная в PHP 5.2

if(!($data['email'] = filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)))
{
$errors['email'] = 'email';
}

if(!($data['url'] = filter_input(INPUT_POST,'url',FILTER_VALIDATE_URL)))
{
// Если не правильный URL
$url = '';
}

// Использование фильтров с пользовательской
// функцией обратного вызова:

if(!($data['body'] = filter_input(INPUT_POST,'body',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['body'] = 'Введите комментарий.';
}

if(!($data['name'] = filter_input(INPUT_POST,'name',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['name'] = 'Введите ваше имя.';
}

//$_SESSION['rand_code'] 'Не верно введены символы'

if(!($data['code'] ==$_SESSION['rand_code']))
{

$errors['code'] = $_SESSION['rand_code'];
}


//Если есть ошибки, записываем $errors в массив $arr:
if(!empty($errors)){

$arr = $errors;
return false;

}


foreach($data as $k=>$v){
$arr[$k] = mysql_real_escape_string($v);
}

// Убедимся, что письма в нижнем регистре

$arr['email'] = strtolower(trim($arr['email']));

return true;

}

private static function validate_text($str)
{
/*
/ Этот метод используется внутри как FILTER_CALLBACK
*/


if(mb_strlen($str,'utf8')<1)
return false;

// Кодировать все специальные символы
// HTML (<,>, ", и т.д. ..) и преобразовывает
// символы новой строки в <br /> теги:


$str = nl2br(htmlspecialchars($str));

// Удалить символы новой строки, которые остались
$str = str_replace(array(chr(10),chr(13)),'',$str);

return $str;
}

}


?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.