Как передать переменную с одного файла в php в другой php
У меня есть скрипт написанный на php, который выводит с базы данных комментарии, я хочу реализовать удаление комментариев, но для этого мне нужно с файла include_data.php передать id комментария в файл delete.php, чтобы создать запрос на удаление комментария с базы данных, а так же хочется, чтобы когда я нажимаю на кнопку удалить, высвечивалось подтверждения, для избежания случайных нажатий, подскажите пожалуйста. Вот скрипт:
Удалить"; echo 'Отзыв от ' . $field['name_coment'] . '
Коментарий:
' . $field['coment'] . "
" . $field['date_coments'] . '
' . $delete . '
'; > ?>
Отслеживать
задан 4 ноя 2020 в 19:10
349 3 3 серебряных знака 14 14 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Все очень просто, добавьте в тело Вашей ссылки на удаление GET -параметр id удаляемой записи.
После чего в delete_base.php Вы сможете получить этот параметр из глобального массива $_GET
. $id = $_GET['id']; .
Естественно в самом delete_base.php проверьте что это параметр передан, что запись в БД с таким номером существует. А также, если у Вас есть какое-то разграничение прав пользователей, проверьте имеет ли право текущий пользователь удалять запись с указанным id , например, в ситуации когда пользователь может удалять только записи создатель которых он сам.
Как передать переменную из php в php
У меня есть файл test1.php, в котором есть рабочий код. Я выполняю этот файл из консоли, в файле есть переменная $var = «значение». Задавая значение жестко, выполняя этот файл, я получаю результат на выходе.
Моя задача состоит в том, чтобы я смог задавать значение переменной из другого php, наподобие, как это делается с html через filter_input — как я понял для php-php этот метод не подходит. Как это можно сделать?
Добавлено через 31 минуту
Я пробовал создать переменные в другом php(назову его test0.php) и подключить к нему include «test1.php», но в таком варианте программа срабатывает один раз, после чего выдает ошибку
PHP Fatal error: Cannot redeclare function
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как передать переменную php из 1.php в 2.php без include
Всем добрый день, как передать в подобном примере переменную без include, require? Есть 1.php с.
Передать переменную из index.php через ajax в handler.php и обратно
Пытаюсь разобраться в основах основ. Есть три файла: index.html, ajax.html и handler.php. 1. При.
Как передать в HTML переменную из php
Как передать в HTML переменную из php? Причем HTML код содержится в .php файле.
Как передать переменную из JavaScript в PHP
Очень прошу помочь, застрял и не могу двигаться дальше Проблема вот в чем: Разрабатываю корзину.
Регистрация: 12.12.2014
Сообщений: 184
Желательно увидеть полный код двух файлов, но попробую дать правильный ответ без них:
1 2 3 4
// Здесь и ниже пишите любой свой код, который должен выполняться в другом файле, также можно создавать переменные и передавать их. $var = 'значение'; $var1; echo $var;
1 2 3 4
include_once 'test1.php'; $var1 = 'значение2'; echo $var1;
При выполнении test0.php будет выполняться код из test1.php и присваиваться переменная $var1. Вы этого хотели. если я правильно понял?
Регистрация: 27.06.2019
Сообщений: 130
Ваш пример для меня срабатывает только один раз. Если использую include_once, то просто результат получаю один раз, дальше код просто не из test1 просто не выполняется. Если использую просто include, то получаю ошибку
PHP Fatal error: Cannot redeclare Function (previously declared
Попробую привести код. В test0.php он такой
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
while (true) { sleep(2); $updates = $telegramApi->getUpdates(); foreach ($updates as $update){ if (isset($update->message->text)) { $text = $update->message->text; $chat_id = $update->message->chat->id; $first_name = $update->message->chat->first_name; //$username = $update->message->chat->username; if(strpos($text, '/command') === 0){ $usertext = explode(' ',$text); //$telegramApi->sendMessage($chat_id,$usertext[1]); " $var1= "on"; $var2= array(array( "par1" => $usertext[1], "par2" => $usertext[2] )); echo $var1; echo $var2; include('test1.php'); } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
require_once "php/Class_ModbusTcp.inc"; $globalcontent = array(); if (!isset($globalcontent["content"])) { $globalcontent["content"] = loadcontent(); } $mb = new ModbusTcp; if (!isset($globalcontent["mbvar2"])) { $globalcontent["mbvar2"] = $mb->InitcontentMap(); } else { $mb->InitcontentMap( $globalcontent["mbvar2"]); } $var = 'значение'; $var1; $var2; echo $var; $ret = null; if ($var1=="get-content") { $a = getcontent($var2); $a = is_array($a) ? $a : array(); $b = getMbcontent($var2); $b = is_array($b) ? $b : array(); $ret = array_merge($a, $b); prtwo_r($ret); } elseif ($var1=="set-content") { $a = setcontent($var2); $a = is_array($a) ? $a : array(); $b = setMbcontent($var2); $b = is_array($b) ? $b : array(); $ret = array_merge($a, $b); } else { exit("Error command"); } echo json_encode($ret); //exit(0); function getMbcontent($var2) { global $mb; $mb->ModConn(); $ret = $mb->MbVarRead($var2); $mb->ModClose(); return $ret; } function setMbcontent($var2) { global $mb; $mb->ModConn(); $ret = $mb->MbVarWrite($var2); $mb->ModClose(); return $ret; } function loadcontent() { $queue = new ZMQSocket(new ZMQContext(1), ZMQ::SOCKET_REQ, "MySock100500"); $queue->connect("ipc:///var/run/sql_sync"); $res = $queue->send("select * from content_0 order by uid;\0"); $raw_var2 = $queue->recv(); $lines = preg_split("/[\n]+/", $raw_var2); $var2ByName = array(); $var2ByUid = array(); foreach ($lines as $line) { $fields = preg_split("/[\t]+/", $line); $fc = count($fields); if (!isset($var2ByUid[$fields[0]]) && ($fc > 2) ) { $var2ByUid[$fields[0]] = array("uid" => $fields[0]); } if ($fc > 2) { $var2ByUid[$fields[0]][$fields[1]] = $fields[2]; } } foreach ($var2ByUid as $var) { $var2ByName[$var["name"]] = $var; } return $var2ByName; } function docontent($request, $mode = 0) { global $globalcontent; $var2 = $globalcontent["content"]; $shm_key = ftok("/dev/shm/wsi", 'b'); $shm_id = shmop_open($shm_key, "w", 0666, 65704); $sel = array(); $var_addr = array(); if ($request == null) { foreach($var2 as $name=>$var) { if (!empty($var["virtual"]) && $var["virtual"]==true) continue; if (empty($var["name"])) continue; array_push($var_addr, $var); } } else { foreach($request as $reqvar) { if ($var2[$reqvar["name"]]) { $var2[$reqvar["name"]]["value"]=$reqvar["value"]; array_push($var_addr, $var2[$reqvar["name"]]); } } } $ret = array(); foreach ($var_addr as $z) { $addr=(two)($z["c_offset"]) + 24; if ($z["type"] == "one") { if ($mode == 1) { shmop_write($shm_id, pack("c", $z["value"]), $addr); } $val = unpack("c", shmop_read($shm_id, $addr, 1)); } elseif ($z["type"] == "two" ) { if ($mode == 1) { shmop_write($shm_id, pack("s", $z["value"]), $addr); } $val = unpack("s", shmop_read($shm_id, $addr, 2)); } elseif ($z["type"] == "four") { if ($mode == 1) { shmop_write($shm_id, pack("l", $z["value"]), $addr); } $val = unpack("l", shmop_read($shm_id, $addr, 4)); } elseif ($z["type"] == "three") { if ($mode == 1) { shmop_write($shm_id, pack("f", $z["value"]), $addr); } $val = unpack("f", shmop_read($shm_id, $addr, 4)); } $var = array( "value" => $val[1], "name" => $z["name"], "direction" => $z["direction"], "src" => "shm", "type" => $z["type"], ); array_push($ret, $var); } shmop_close($shm_id); return $ret; } function getcontent($request) { return docontent($request, 0); } function setcontent($request) { return docontent($request, 1); }
Как передать переменную из php в php
Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Здравствуйте, я сейчас делаю регистрацию пользователей на сайте. У меня имеется главный файл index.php и файл обработчик форм регистрации. Подскажите пожалуйста как мне сделать так, чтобы если пользователь введет форму не корректно, то обработчик сделает редирект на страницу регистрации и в этот момент передаст значение переменной в обработчике файлу index.php только не методом _GET ?
Отправлено: 23 Марта, 2012 — 14:30:20
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010
Откуда: Чернигов
Помог: 299 раз(а)
header ( ‘Location: /page.php’ ) ;
только должно стоять до любого вывода в браузер.
——
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново — вы явно что-то делаете не так.
Отправлено: 23 Марта, 2012 — 14:33:35
Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2012
Помог: 0 раз(а)
OrmaJever, Сделать редирект я знаю как, подскажите как можно вместе с редиректом передать переменную в файл php.
Отправлено: 23 Марта, 2012 — 14:35:13
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
если не гетом то кукой
Отправлено: 23 Марта, 2012 — 14:35:25
Покинул форум
Сообщений всего: 2082
Дата рег-ции: Март 2012
Откуда: Воронеж
Помог: 50 раз(а)
Морозов Семен пишет:
Здравствуйте, я сейчас делаю регистрацию пользователей на сайте. У меня имеется главный файл index.php и файл обработчик форм регистрации. Подскажите пожалуйста как мне сделать так, чтобы если пользователь введет форму не корректно, то обработчик сделает редирект на страницу регистрации и в этот момент передаст значение переменной в обработчике файлу index.php только не методом _GET ?
То бишь Вы хотите при некорректных данных передать их обратно на страницу с формой? Я так понимаю для упрощения ввода информации в поля? И чем плох get?
Отправлено: 23 Марта, 2012 — 14:35:27
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007
Откуда: Berlin
Помог: 707 раз(а)
header ( ‘Location: /page.php?var=’ . $mVar ) ;
——
Есть в мире две бесконечные вещи — это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Отправлено: 23 Марта, 2012 — 14:38:45
Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Может как-нибудь это можно сделать методом post? я имею в виду чтобы пользователь не видел.
Отправлено: 23 Марта, 2012 — 14:39:58
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
а еще лучще сделать в одном файле
если пришли правильные данные то записываем
если нет или не пришли вообще тогда выводим заполненую форму регистрации
(Добавление)
Как передать переменную из php в php
Ссылки в PHP позволяют ссылаться на область памяти, где расположено значение переменной или параметра. Для создания ссылки перед переменной указывается символ амперсанда — & . Но перед рассмотрением ссылок сначала рассмотрим простой пример копирования переменных:
"; // tom = Tom echo "sam = $sam"; // sam = Sam ?>
Здесь переменной $sam присваивается значение переменной $tom («Tom»). Затем той же переменной $sam присваивается новое значение — «Sam». Результат программы ожидаем — обе переменные имеют различные значения:
tom = Tom sam = Sam
Теперь при копировании значения переменных передадим ссылку:
"; // tom = Sam echo "sam = $sam"; // sam = Sam ?>
Здесь нас интересует выражение
В данном случае переменной $sam передается не копия значения переменной $tom , как в предыдущем случае, а ссылка на область в памяти, которую занимает переменная $tom . То есть после выполнения инструкции
Обе переменных будут указывать на один и тот же адрес в памяти. Это приведет к тому, что изменение значения одной из этих переменных приведет к изменению значения другой переменной. Потому что они ссылаются на один и тот же участок в памяти и соответственно имеют одно общее значение:
tom = Sam sam = Sam
Присвоить ссылку на переменную можно двумя способами:
$sam = &$tom; // или так $sam = & $tom;
Передача по ссылке
В примере в прошлых темах мы передавали параметры по значению . Но в PHP есть и другая форма передачи параметров — по ссылке . Рассмотрим два этих способа передачи параметров и сравним. Стандартная передача параметра по значению:
$number = 5; square($number); echo "
number = $number"; ?>
a = 25 number = 5
В данном случае внутри функции square() значение параметра $a возводится в квадрат. То есть значение параметра внутри функции изменяется. Однако после вызова функции square() значение переменной $number , которое передается параметру $a, не изменится. Это и есть передача по значению, она никак не затрагивает переменную $number .
Теперь рассмотрим передачу параметра по ссылке:
$number = 5; square($number); echo "
number = $number"; ?>
a = 25 number = 25
При передаче по ссылке перед параметром ставится знак амперсанда: function square(&$a) . Теперь интерпретатор будет передавать не значение переменной, а ссылку на эту переменную в памяти. То есть теперь и переменная $number и параметр $a будут указывать на одну и ту же область в памяти. В итоге, значение переменной $number после передачи параметру &$a также будет изменено.
Возвращение ссылки из функции
Функция также может возвращать ссылку. В этом случае при определении и вызове функции перед ее именем ставится знак амперсанда:
$userName = "admin"; $checkedName = &checkName($userName); echo "
userName: $userName"; echo "
checkedName: $checkedName"; ?>
В данном случае функция checkName() получает параметр по ссылке и возвращает ссылку — фактически ссылку, которая передается в функции. Для этого перед определением функции указан символ амперсанда:
Для имитации работы функция проверяет имя пользователя и изменяет его на некоторое стандартное, если оно равно «admin».
При вызове функции перед ее именем указывается символ амерсанда:
После выполнения функции переменная $checkedName фактически будет содержать ссылку на переменную $userName .
