Переход от PHP к Javascript - PullRequest
       4

Переход от PHP к Javascript

1 голос
/ 06 сентября 2010

У меня есть небольшая проблема, и никакие учебники не помогли, так как я не мог найти ту, которая была направлена ​​на эту конкретную проблему.

У меня есть две учетные записи хостинга, одна на сервере, который поддерживает PHP. А другой на другом сервере, который не поддерживает PHP.

SERVER A = Поддержка PHP, и SERVER B = НЕТ поддержки PHP.

На сервере а у меня есть скрипт php, который генерирует случайное изображение. И на сервере b, у меня есть HTML-файл, который включает в себя JavaScript, который вызывает эту функцию php на сервере а. Но независимо от того, как я это делаю, это никогда не работает.

У меня есть следующий код для получения результата из сценария php:

<script language="javascript" src="http://www.mysite.com/folder/file.php"></script>

Я знаю, что, возможно, что-то упустил, но я искал недели! Но не нашли никакой информации, которая могла бы объяснить, как это делается. Пожалуйста, помогите!

Спасибо:)

UPDATE

PHP-скрипт:

$theimgs= array ("images/logo.png", "images/logo.png", "images/logo.png", "images/logo.png", "images/logo.png");

function doitnow ( $imgs) {
    $total = count($imgs);
    $call = rand(0,$total-2);
    return $imgs[$call];
}

echo '<a href="index.php" alt="something"><img src="'.doitnow($theimgs).'" alt="something" /></a>';

Ответы [ 5 ]

0 голосов
/ 06 сентября 2010

Вы не указали, но я предполагаю, что два сервера имеют разные имена доменов / хостов.Возможно, вы столкнулись с проблемой модели безопасности браузера (та же политика происхождения).

Если это так, вам нужно использовать JSONP .

0 голосов
/ 06 сентября 2010

Похоже, что сервер A генерирует HTML-ссылку на случайное изображение (не изображение). URL-адрес относительно того, где вы его вставляете:

<a href="index.php" alt="something"><img src="images/logo.png" alt="something" /></a>

Это означает, что у вас есть подкаталог images везде, где вы используете изображение. Если нет, пожалуйста, измените URL соответствующим образом. Забудьте о JavaScript, PHP или AJAX: это просто старый добрый HTML.


Обновление

PHP Script отображает картинки в случайном порядке. Картинки размещены на сервере А, и они действительно доступны и читаемы из Интернета. PHP скрипт имеет был проверен сам по себе, и работает.

Если эти утверждения верны, ответ Мариса Киселова должен сработать. Так что либо ваше описание проблемы является неточным, либо вы не поняли ответ ...

0 голосов
/ 06 сентября 2010

Возможно, вы используете устаревшие источники для обучения, поскольку атрибут language устарел, и вместо него следует использовать type="text/javascript".Также не ясно, какой вывод выдает скрипт .php.Если это данные изображения, почему вы пытаетесь загрузить его как скрипт, а не как изображение (т. Е. С тегом <img>)?

Обновление: скрипт возвращает HTML, что означает, что его следует загрузитьиспользуя Ajax, но вы не можете сделать это, если он находится в другом домене из-за той же политики происхождения .Причина, по которой сейчас ничего не работает, заключается в том, что скрипты, загруженные с использованием тега <script>, не интерпретируются как HTML.Чтобы передавать данные между серверами, вместо этого попробуйте JSONP .

0 голосов
/ 06 сентября 2010

Непонятно, почему вы включаете файл PHP как JavaScript.Но попробуйте следующее:

  1. Измените ваш PHP-скрипт так, чтобы он напрямую возвращал файл изображения.Я назову этот скрипт image.php.Для получения дополнительной информации ищите функцию PHP: header ('Content-type: image / jpeg')
  2. В своем файле JavaScript используйте image.php, как и любое обычное изображение.
  3. ВключитьJavaScript на сервере B в виде файла * .js.

ОБНОВЛЕНИЕ:

Пока неясно, зачем вам нужен JavaScript.

Попробуйте как image.php:

$theimgs= array ("images/logo.png", "images/logo.png", "images/logo.png", "images/logo.png", "images/logo.png");

function doitnow ( $imgs) {
    $total = count($imgs);
    $call = rand(0,$total-2);
    return $imgs[$call];
}

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/" . doitnow($theimgs));

И на сервере b:

<img src="www.example.org/image.php"/>
0 голосов
/ 06 сентября 2010

?

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