Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Нули перед ответом от PHP скрипта (http://www.flasher.ru/forum/showthread.php?t=192580)

mihael_p 16.01.2013 13:50

Нули перед ответом от PHP скрипта
 
Есть PHP скрипт, который цепляет с БД данные и отдает их флешке, и вот перед ответом стоят три нуля, выглядит это примерно так:
Код AS3:

000score=60&language=0&time=8&firsttime=1

PHP код:

<?php
    
include "connect.php";
    if (!isset(
$_GET['id']))
    {
        echo 
"No id - no data";
        exit;
    }
    
$save false;
    
$id $_GET['id'];
    
$add "";
    
$comma "";
    if (isset(
$_GET['firstname']))
    {
        
$firstname $_GET['firstname'];
        if (!empty(
$firstname))
        {
            
$add $add.$comma."firstname = '".$firstname."'";
            
$comma=", ";
            
$save true;
        }
    }
    if (isset(
$_GET['secondname']))
    {
        
$secondname $_GET['secondname'];
        if (!empty(
$secondname))
        {
            
$add $add.$comma."secondname = '".$secondname."'";
            
$comma=", ";
            
$save true;
        }
    }
    if (isset(
$_GET['score']))
    {
        
$score $_GET['score'];
        if (!empty(
$score) or $score == "0")
        {
            
$add $add.$comma."score = ".$score;
            
$comma=", ";
            
$save true;
        }
    }
    if (isset(
$_GET['language']))
    {
        
$language $_GET['language'];
        if (!empty(
$language) or $language == "0")
        {
            
$add $add.$comma."language = ".$language;
            
$comma=", ";
            
$save true;
        }
    }
    if (isset(
$_GET['time']))
    {
        
$time $_GET['time'];
        if (!empty(
$time))
        {
            
$add $add.$comma."time = '".$time."'";
            
$comma=", ";
            
$save true;
        }
    }
    if (isset(
$_GET['firsttime']))
    {
        
$firsttime $_GET['firsttime'];
        if (!empty(
$firsttime) or $firsttime == "0")
        {
            
$add $add.$comma."firsttime = ".$firsttime;
            
$comma=", ";
            
$save true;
        }
    }
    
    if (
$save == true)
    {
        
$usr $DB->selectRow("SELECT * FROM tablez WHERE id = ?",$id);
        
?>status=ok&action=<?
        
if (isset($usr['id']))
        {
            
$DB->query("UPDATE tablez SET ".$add." WHERE id = ?",$id);
            echo 
$add."<br>";
            
?>Update<?
        
} else {
            
$DB->query("INSERT INTO tablez SET id = ?, ".$add,$id);
            
?>Insert<?
        
}
    } else {
        
$usr $DB->selectRow("SELECT * FROM tablez WHERE id = ?",$id);
        if (isset(
$usr['id']))
        {
            
?>score=<?=$usr['score']?>&language=<?=$usr['language']?>&time=<?=$usr['time']?>&firsttime=<?=$usr['firsttime']?><?
        
} else {
            
$DB->query("INSERT INTO tablez SET id = ?",$id);
            
$usr $DB->selectRow("SELECT * FROM tablez WHERE id = ?",$id);
            
?>score=<?=$usr['score']?>&language=<?=$usr['language']?>&time=<?=$usr['time']?>&firsttime=<?=$usr['firsttime']?><?
        
}
    }
?>

Где искать проблему, подскажите пожалуйста

ZicoRio 17.01.2013 00:13

Скорее всего в самом скрипте, еще раз проследите все логические цепочки.
Протестируйте с разными параметрами и т.д.
А вот если со скриптом порядок, то возможно стоит поглядеть в сторону веб сервера.
Когда он отвечает чанками, то в ответ вставляет размер чанка в hex формате
и заканчивает нулем. Но у вас нули в начале... - вобщем информация вам к размышлению...

t4arty 17.01.2013 13:26

я не ас пхп, но строчки:
PHP код:

$add ""
    
$comma ""
    if (isset(
$_GET['firstname'])) 
    { 
        
$firstname $_GET['firstname']; 
        if (!empty(
$firstname)) 
        { 
            
$add $add.$comma."firstname = '".$firstname."'"
            
$comma=", "
            
$save true
        } 

и дает в итоге три нуля, т.е 3 нулевых байта. ("")

iflamberg 17.01.2013 16:06

2t4arty: нет, это не правда, нет там никаких нулевых байтов. Другое дело, что вся эта конструкция с $add, $comma нафик не нужна, потому что есть implode(", ",$arr); Но ошибка с нулями в начале - не в этом. Я бы начал с того, что посмотрел бы, а нет ли символов перевода строки в неправильной кодировке в начале скрипта перед <?php

mihael_p 17.01.2013 16:44

Всем спасибо - решил. Оказалось была не правильная кодировка


Часовой пояс GMT +4, время: 18:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.