Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Проблема с форматом кавычек, до сохран. "1.0", после \"1.0\" 
V
    Опции темы
YurkaKursant
  Дата 25.9.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.7.2009

Репутация: нет
Всего: нет



Появилась проблема с кодировкой. Мне кажется, это из-за php. Скрипт сохраняет в файл кавычки вот таким образом:

<?xml version=\"1.0\" encoding=\"windows-1251\"?>

Хотя, в textarea до сохранения эта строчка выглядит иначе:

<?xml version="1.0" encoding="windows-1251"?>

Кодировка на странице:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Есть у кого идеи, в чем дело?

Вот код скрипта, который сохраняет из textarea в документ:

Код

<?php
// Принимаем и обрабатываем сообщение из TEXTAREA
if(isset($_POST[source])&& !empty($_POST[source])){
    $source = trim($_POST[source]);
        // Удаляем ненужные переводы строк
    $source = preg_replace("/[\r\n]{2,}/i", "\n", $source);
    // Ограничение количества вводимых символов
    $source = substr($source,0,3024);

if(isset($_POST[add])){
// Нажата кнопка добавления записи к последнему сохранённому файлу
    // Считываем имя последнего сохранённого файла из last.txt
    if(file_exists('./SMI/last.txt')){
    // Открываем файл для чтения и записи в режиме r+t
    // некоторые версии FreeBSD имеют проблемы с режимом а+
    // и не могут установить указатель на начало файла при помощи fseek
        $f1=fopen('./SMI/last.txt', 'r+t') or die("Невозможно открыть файл");
    // Блокируем файл (блокировка с запретом "подвисания")
        while(!flock($f1, LOCK_EX+LOCK_NB))
            {
            sleep(1);    // ждём одну секунду
            }
    // Файл заблокирован, можно производить чтение и запись
    // считываем имя последнего сохранённого файла
    $file=explode("\n",fread($f1,filesize('./SMI/last.txt')));
    if(file_exists($file[0])){
        $f2=fopen($file[0], 'r+t') or die("Невозможно открыть файл");
        // Блокируем файл (блокировка с запретом "подвисания")
            while(!flock($f2, LOCK_EX+LOCK_NB))
                {
                sleep(1);    // ждём одну секунду
                }
          $position = filesize($file[0]);
          fseek($f2, $position-1);
        fwrite ($f2,$source."\r\n") ;
        fclose($f1);
        fclose($f2);
        header("Location: index.php");
    }
    }else{
        echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует файл содержащий информацию о последнем сохранённом файле!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
    }
}
if(isset($_POST[save])){
// Нажата кнопка добавления записи в новый файл
    switch ($_POST[triad]) {
    case 0: $triad='txt'; break;
    case 1: $triad='xml'; break;
    case 2: $triad='smi'; break;
    case 3: $triad='doc'; break;
    default: $triad='txt';
    }
    // Считываем счётчик нумерации из count.txt
    if(file_exists('./SMI/count.txt')){
        $f1=fopen('./SMI/count.txt', 'r+t') or die("Невозможно открыть файл");
    // Блокируем файл (блокировка с запретом "подвисания")
        while(!flock($f1, LOCK_EX+LOCK_NB))
            {
            sleep(1);    // ждём одну секунду
            }
    // Файл заблокирован, можно производить чтение и запись
    // считываем счётчик
    $n=explode("\r\n",fread($f1,filesize('./SMI/last.txt')));
    $new=$n[0]+1;
     $file=($new).".$triad";
         ftruncate($f1, 0); // очищаем файл
         fseek($f1, 0, SEEK_SET); // переходим в начало файла
        fwrite ($f1, $new) ; // записываем строку из массива
    if(!file_exists($file)){
        fclose(fopen($file, "a+t"));
        $f2=fopen($file, 'r+t') or die("Невозможно открыть файл");
        fputs ($f2,$source."\r\n") ;
        fclose($f2);
        fclose($f1);
        header("Location: index.php");
    if(file_exists('./SMI/last.txt')){
    $f3=fopen('./SMI/last.txt', 'r+t') or die("Невозможно открыть файл");
    // Блокируем файл (блокировка с запретом "подвисания")
        while(!flock($f3, LOCK_EX+LOCK_NB))
            {
            sleep(1);    // ждём одну секунду
            }
         ftruncate($f3, 0); // очищаем файл
         fseek($f3, 0, SEEK_SET); // переходим в начало файла
        fwrite ($f3, $file) ; // записываем строку из массива
        fclose($f3);
    }else{
        echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует файл содержащий информацию о последнем сохранённом файле!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
    }
    }else{
        echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Фйл с таким именем уже существует!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
    exit;
    }
    }else{
        echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует файл счётчика!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
    }
}
}else{
echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует текстовое сообщение!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
}
?>


Это сообщение отредактировал(а) YurkaKursant - 25.9.2009, 23:03
PM MAIL   Вверх
bars80080
Дата 25.9.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



настройка волшебные кавычки, принимайте данные так:

 
Код

   $source = trim(stripslashes($_POST[source]));


для того, чтобы проверить включена ли эта настройка есть функция:
Код


if(get_magic_quotes_gpc()) {
}

PM MAIL WWW   Вверх
nerezus
Дата 25.9.2009, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Ненене, зачем их ставить, потом избавляться для каждой переменной?
Гораздо проще запретить их в настройке PHP.

На сервере можно через .htaccess это сделать.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
YurkaKursant
  Дата 25.9.2009, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.7.2009

Репутация: нет
Всего: нет



Цитата(bars80080 @ 25.9.2009,  23:11)
настройка волшебные кавычки, принимайте данные так:

 
Код

   $source = trim(stripslashes($_POST[source]));


для того, чтобы проверить включена ли эта настройка есть функция:
Код


if(get_magic_quotes_gpc()) {
}

Спасибо, большое! Сработало smile 
PM MAIL   Вверх
nerezus
Дата 25.9.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Еще одним костылеводом в мире стало больше =\


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 25.9.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



.htaccess штука противная, не факт что заработает
PM MAIL WWW   Вверх
YurkaKursant
Дата 27.9.2009, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.7.2009

Репутация: нет
Всего: нет



Цитата(bars80080 @ 25.9.2009,  23:38)
.htaccess штука противная, не факт что заработает

На ссамом деле, я просто не знаю как настроить .htaccess 
PM MAIL   Вверх
NLspieler
Дата 27.9.2009, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



А зачем эти бэкслеши?
Если я не ошибаюсь, они позволяют защитить БД от инекций?
PM MAIL   Вверх
bars80080
Дата 27.9.2009, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да, это разработчики решили таким макаром "помочь" кодерам. не учли только что данные не обязательно сразу в БД будут писаться

Добавлено через 2 минуты и 37 секунд
Цитата(YurkaKursant @  27.9.2009,  11:13 Найти цитируемый пост)
На ссамом деле, я просто не знаю как настроить .htaccess  

в нём надо написать что-то вроде:

Код

php_flag magic_quotes_gpc off


только это я наобум написал, надо покопаться в вопросе
PM MAIL WWW   Вверх
nerezus
Дата 27.9.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

.htaccess штука противная, не факт что заработает
 Факт - данный флаг может быть установлено на ровне .htaccess.

Единственный минус - это если нельзя юзать .htaccess, но это вовсе не минус, т.к. соответственно не будут работать мод_рерайт, скрытие непубликуемых данных и т.д., что поведет сразу к смене хостинга на нормальный.
Так что .htaccess работает всегда - примем это как 100% неоспоримый факт.




--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 27.9.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(nerezus @  27.9.2009,  23:01 Найти цитируемый пост)
Так что .htaccess работает всегда - примем это как 100% неоспоримый факт.

ты это моему хостингу, на котором наш call-центр варится объясни. в пятницу я на нём не сумел даже директорию от просмотра закрыть

Options -Indexes
PM MAIL WWW   Вверх
Ипатьев
Дата 27.9.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



[тупанул]

Это сообщение отредактировал(а) Ипатьев - 27.9.2009, 23:10
PM MAIL   Вверх
nerezus
Дата 27.9.2009, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

ты это моему хостингу, на котором наш call-центр варится объясни
 А у меня есть сайт ujsd.narod.ru
Значит PHP тоже нельзя юзать.


Сами Себе Злобные Буратины. Надо было выбирать нормальный хостинг. Нормальных куда больше чем кривых, так нет же, экономят копейку.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 28.9.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(nerezus @  27.9.2009,  23:44 Найти цитируемый пост)
Сами Себе Злобные Буратины. Надо было выбирать нормальный хостинг. Нормальных куда больше чем кривых, так нет же, экономят копейку. 

ты не поверишь. это наш сервер, но я его даже на секунду остановить не могу, чтобы снести древнейшие там php4 и mysql3
он в круглосуточной работе
PM MAIL WWW   Вверх
nerezus
Дата 28.9.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

ты не поверишь. это наш сервер
 Настолько сервер занят, что лень 1 строчку в конфиге поправить и выполнить 1 команду в консоли?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.