У меня есть файл под названием admin.php, в котором у меня есть кнопка с именем send. То, что я хочу сделать, – это когда я нажимаю на него, чтобы сделать видимую ссылку на странице пользователя, user.php. Как я могу это сделать?
У меня есть файл со всеми моими функциями, называемыми functions.php, в которых у меня есть функция, называемая onSubmit ($ var); Я инициализирую переменную $ var – admin.php со значением $ _POST ['send'], но когда я вызываю функцию в файле user.php, я не могу сказать ему, кто является переменной $ var, поэтому я получаю 'undefined индекс'.
Есть ли другой способ сделать это?
EDIT Добавлен код Это admin.php
<input type="button" name="send" value="Submit" /><br/> require 'functions.php'; $posted = $_POST['send']; onSubmit($posted);
Это user.php
require 'functions.php'; onSubmit($var); //here it says undefined index var because it doesn't know who the variable is if($isSent == 1) { <a style="visibility:visible;" href="test3.html" id="test3">Test3</a> <br/> }
И это функция functions.php
global $isSent; function onSubmit($var) { if(isset($var)) { $isSent = 1; } }
Правильно, я немного поработал над кешированием, и это то, что я придумал. Это может быть не 100% правильно, но это начало, как будто я сказал, что я никогда не пробовал это сам lol
В вашем admin.php я бы поставил эту функцию в:
if(isset($_POST['send'])){ if($enabled == true){ $enabled == false; } else{ $enabled == true; } apc_add('enabled',$enabled); }
Теперь, чтобы «получить» наш $enabled
var:
$enabled = apc_fetch('enabled');
Затем, чтобы проверить var на вашей странице клиента:
if($enabled == true){ echo ' button'; }
Теперь единственное, что я не полностью рассмотрел, – это безопасность функции apc_
и использования клиента. Я считаю, что он работает для всех клиентов сервера, но я не уверен на 100%. Вот руководство по php, чтобы дать лучшие примеры.
Это метод, о котором я думал. Но опять же я не уверен в безопасности, но я уверен, что вы можете найти что-то, чтобы сохранить его в безопасности. На самом деле видео является учебным пособием для Youtube API . Но он покроет сохранение переменной в текстовый файл кеша, который должен быть вам полезен 🙂
В основном вам нужно использовать сеансы, как показано ниже:
if(isset($_SESSION['makeVisible']) && $_SESSION['makeVisible'] == true){ echo '<button>Button init</button>'; //you could also use html like the comment below. } /* if(condition){?> <!-- this is now html --> <button>Button init</button><?} */
Затем для установки этой переменной на странице администратора используйте:
if(isset($_POST['submitButton'])){ $_SESSION['makeVisible'] == true; }
Вам также понадобится форма для работы этого метода, но есть и другие методы, но я предпочитаю это.
<form name="buttonMakerThing" method="POST"> <input name="submitButton" value="Make button init Visible" type="submit"/> </form>
Без action
форма по умолчанию добавляет «POSTING» информацию о форме на текущую страницу. Выполнение условия if(isset($_POST))
возвращает true.
Вам нужно будет добавить объявление $_SESSION
в верхней части каждой php-страницы, которую вы имеете на своем сайте, чтобы это работало. Он ДОЛЖЕН перейти на первую строчку каждой страницы! например:
01: | <?php session_start(); 02: |//rest of script;
Пожалуйста, посмотрите больше на $_SESSIONS
для того, чтобы unnsetting
/ destroying
ваши сеансы и больше использовать для них 🙂 http://php.net/manual/en/reserved.variables.session.php
Если у вас есть functions.php, который определяет функции, просто включите его в файл admin.php, а затем вы можете вызвать функцию оттуда, а также передать значение.