включение - другой результат, чем по прямой ссылке - PullRequest
0 голосов
/ 10 марта 2011

У меня есть следующий php код:

<html>
  <body>
    <?php
    $_GET = Array('filename' => 'scores/score.sco&scoresize=10&action=VIEW&viewtype=HTML'); // add the others here too
    include('scores.php');
    ?>
  </body>
</html>

С этим кодом я пытаюсь включить это http://apps.facebook.com/krajecr/scores.php?filename=scores/score.sco&scoresize=10&action=VIEW&viewtype=HTML Прямая ссылка работает, но вы можете увидеть результат включения здесь: http://apps.facebook.com/krajecr/pokus.php - error: Warning: fclose(): supplied argument is not a valid stream resource in /3w/webz.cz/p/programming/facebook/scores.php on line 9

Не могли бы вы помочь мне решить эту проблему?

scores.php можно найти здесь http://www.flashkit.com/tutorials/Games/High-sco-Glen_Rho-657/index.php ()

вот первые 10 строк:

<?php

    $winscore = (int)$winscore;

    // Create a Blank File if it doesn't already exist
    if (!file_exists($filename))
    {
        $file=fopen($filename, "w");
        fclose ($file);
    }

1 Ответ

0 голосов
/ 10 марта 2011

Ошибка говорит о том, что вы пытаетесь сделать fclose для чего-то, что не является потоковым ресурсом.

Если вы получили $file из fopen, единственный сценарий здесь состоит в том, что fopen не удалось, так что $file является не ресурсом потока , а FALSE.Может произойти сбой, если, например, пользователь, на котором работает ваш веб-сервер, не имеет прав для создания файла.

Добавить проверку ошибок в вызовы функций.

Я не могу объяснитьпочему это будет иначе, если у вас PHP делает запрос на включение через Интернет.

Редактировать

$_GET = Array('filename' => 'scores/score.sco&scoresize=10&action=VIEW&viewtype=HTML'); // add the others here too

должно быть

$_GET = Array(
    'filename'  => 'scores/score.sco',
    'scoresize' => '10',
    'action'    => 'VIEW',
    'viewtype'  => 'HTML'
);

Прекратите попытки использовать синтаксис HTTP-запросов абсолютно везде везде ;это не то, как устроен мир!

Я также заметил, что "scores.php", кажется, никогда не определяет, что такое $filename.Неудивительно, что создание файла не удается: вы никогда не дадите ему правильное имя файла для создания!Проверка возвращаемого значения fopen - как вы всегда должны - выявила бы эту ошибку.

Вы, вероятно, намеревались написать $_GET['filename'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...