2010-09-06 5 views
1

У меня здесь небольшая проблема, и никакие учебники не помогли, так как я не мог найти тот, который был направлен на эту конкретную проблему.Переход от PHP к Javascript

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

СЕРВЕР A = Поддержка PHP и СЕРВЕР B = НЕТ Поддержка PHP.

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

У меня есть следующий код, чтобы извлечь результат из сценария PHP:

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

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

Спасибо :)

UPDATE

РНР скрипт:

$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>'; 
+0

oops my bad. забыл добавить pre's –

+0

Я думал, что я называю это? * царапины голова * –

+0

Человек, которого вы действительно не понимаете, что вы делаете. Такой беспорядок в PHP, HTML, JS и изображениях, которых я никогда не видел в своей жизни. Вы должны сначала разделить эти вопросы. –

ответ

0

< IMG SRC = "http://mysite.com/folder/file.php" alt = "" />?

+0

Это не работает, извините. Я собираюсь обновить свой вопрос, чтобы включить скрипт PHP. –

0

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

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

+0

Я также пробовал text/javascript, однако я не упомянул, так как последний учебник, который я прочитал, имел «язык», поэтому я просто использовал то, что я использовал в последний раз. Но, в любом случае, я не знал, что это устарело. :) –

+0

Спасибо, я пробовал тег , но безуспешно. Я обновил свой вопрос, чтобы включить скрипт PHP, который я использую. Большое спасибо за помощь. Я не знаю, что я делаю неправильно –

+0

Я обновил свой ответ. – slikts

0

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

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

UPDATE:

Это до сих пор не понятно, почему вам нужно JavaScript.

Попробуйте как изображение.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

Спасибо за вашу помощь и усилия, однако это не сработало. Он просто отображает крошечный красный квадрат X вместо изображений, как и все другие вещи, которые я пробовал. Хотя изображения существуют. –

+2

Откройте свойства этого «красного ящика». Какой URL-адрес используется? Можете ли вы скопировать и вставить URL-адрес в свой браузер и посмотреть изображение? –

0

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

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

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


Update

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

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

+0

Если я использую вышеуказанный код, случайное изображение не создается и не отображается на странице. Мне нужно создать случайное изображение (которое я могу сделать) на сервере, который поддерживает PHP, а затем получить это изображение, которое было создано с помощью Javascript на сервере, который не поддерживает серверные языки. –

+1

Вышеприведенный код является * выводом * кода, который вы опубликовали. Конечно, это не случайность; для начала, изображения, которые нужно выбрать, одинаковы. Извините, но вам сложно помочь, когда вы не понимаете какую-либо часть вашего собственного кода. Серьезно, вы должны улучшить свои базовые навыки HTML перед попыткой сложного программирования. –

0

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

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

+0

Спасибо; Я проверю это прямо сейчас: D –

+0

«JSONP добавит больше сложности, с которой он не может справиться в данный момент». - Действительно, lol :( –

+0

-Почему вы думаете, что это может быть проблема безопасности? Пока он не указывал, вероятно, у двух серверов есть разные имена доменов/хостов. –

Смежные вопросы