PHP Beginner: как передать переменную PHP из одного сегмента кода PHP в другой? - PullRequest
0 голосов
/ 06 июня 2010

У меня есть index.php, который загружает файл на сервер и устанавливает несколько переменных PHP (например, $target_folder_and_file_name).

index.php также имеет следующую строку (изначально index.html):

<script language="JavaScript" src="main.js.php"></script>

После возврата index.php в браузер браузер запрашивает main.js.php с сервера (верно?).

Можно ли как-нибудь получить доступ к $target_folder_and_file_name из кода PHP в main.js.php?

Ответы [ 3 ]

1 голос
/ 06 июня 2010

@ TheJacobTaylor прав, сеансы - лучшие, но если вы не хотите хранить в тайне «$ target_folder_and_file_name», вы также можете использовать: (index.php)

<script type="text/javascript" src="main.js.php<?php echo '?target='.urlencode($target_folder_and_file_name); ?>"></script>

и в вашем main.js.php

<?php
$target_folder_and_file_name = htmlspecialchars(urldecode($_GET['target']));
...
?>

с СЕССИЯМИ это будет выглядеть примерно так:

в вашем index.php

<?php
session_start();
$_SESSION['target'] = $target_folder_and_file_name;

...
echo '<script type="text/javascript" src="main.js.php"></script>';
...
?>

и в вашем main.js.php:

<?php
session_start();
if( isset( $_SESSION['target'] ) )
{
    $target_folder_and_file_name = $_SESSION['target'];
}
else
{
    $target_folder_and_file_name = FALSE;
}
...
?>
0 голосов
/ 06 июня 2010

Если вы не хотите, чтобы все зависело от сеанса, вы можете передать в скрипт параметр при его извлечении.

index.php

<?
 //get filename in whatever manner you currently do
?>
<script language="JavaScript" src="main.js.php?t=<?= urlencode($filename); ?>"></script>

main.js.php

<?php
$filename = urldecode($_GET['t']);
//do whatever you need to with the filename
?>
0 голосов
/ 06 июня 2010

Самый простой способ сделать это - поместить информацию в сеанс PHP. Сеансы длятся за одну поездку туда и обратно. Вы также можете добавить свою информацию в базу данных, кэш, внешнее хранилище или в URL-адрес JavaScript. Как я уже говорил, сессии являются самыми легкими.

http://www.php.net/manual/en/session.examples.basic.php

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...