Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не работает условный оператор if

445
12 апреля 2013 года
Charley
176 / / 16.08.2011
Есть три файла: result.txt ненулевой длины, wait.html, который отправляет get запрос к ready.php и сам ready.php
Содержимое ready.php:

Код:
<?php
header("Content-type: text/txt; charset=UTF-8");
$filename="result.txt";
$fd=fopen($filename, "r+");
if ($fd)
{
    fclose($fd);
    if (filesize($filename) > 0)
    {
        echo '1';
    } else
        echo '0';
}
?>
Содержимое wait.html:

Код:
<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>
<div id="result">Тут будет ответ от сервера</div><br /><br />
<div onclick="SendGet();">Отправить GET запрос через Ajax</div><br />
<script type="text/javascript">
var timeOutId=0;
function SendGet() {
    $$a({
    type: 'get',
    url: 'ready.php',
    dataType: 'text',
    response: 'text',  
    success: function(data) {
    if (data == '1') //не выполняется условие
    {
            $$('result',$$('result').innerHTML+'<br>'+data);           
            window.location.href="result.txt";         
    }
           
    }
    });
}
</script>
Я не пойму, почему строка if (data == '1') не работает?
8
12 апреля 2013 года
mfender
3.5K / / 15.06.2005
Вобщем, нужно половить тараканов. Нужно обратить внимание, что конкретно выводит поток в ready.php. Возможно он втыкает ненужный символ до вывода, и получается на выхлопе что-то вроде x00x31, что некоторые браузеры однозначно за строку '1' не воспримут. Это может происходить если в начале файл ready.php начинается не с <?php.

Лучше всего избавиться от порчи, уточнив возвращаемое:


 
Код:
if (parseInt(data) == 1){....}
8
12 апреля 2013 года
mfender
3.5K / / 15.06.2005
Наверное потому что data!='1'. Иного объяснения нет и быть не может..
8
12 апреля 2013 года
mfender
3.5K / / 15.06.2005
Что вообще возвращает ready.php?
На мой взгляд он должен писать ошибку на 4-й строке. Потому что путь до файла result.txt должен быть абсолютным. Наример так:

$filename= __DIR__ . "/result.txt";
445
12 апреля 2013 года
Charley
176 / / 16.08.2011
Цитата: mfender
Что вообще возвращает ready.php?
На мой взгляд он должен писать ошибку на 4-й строке. Потому что путь до файла result.txt должен быть абсолютным. Наример так:

$filename= __DIR__ . "/result.txt";


скрипт ready.php пишет 1 и никаких ошибок не возвращает.

8
12 апреля 2013 года
mfender
3.5K / / 15.06.2005
А к чему вообще все эти движухи с открытием-закрытием?
Можно же проще:

 
Код:
header("Content-type: text/html; charset=UTF-8");
$filename= __DIR__ . "/result.txt";
if (file_exists($filename))
{
    if (filesize($filename) > 0)
    {
        echo '1';
    } else
        echo '0';
}
8
12 апреля 2013 года
mfender
3.5K / / 15.06.2005
Цитата: Charley

скрипт ready.php пишет 1 и никаких ошибок не возвращает.


А что пишет ready.php, если удалить файл result.txt?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог