За последние 24 часа нас посетил 18691 программист и 1605 роботов. Сейчас ищут 905 программистов ...

Передача значения переменной из одного файла в другой

Тема в разделе "PHP для новичков", создана пользователем Winplexy, 22 ноя 2015.

  1. Winplexy

    Winplexy Новичок

    С нами с:
    22 ноя 2015
    Сообщения:
    9
    Симпатии:
    0
    В файле 1 создаётся переменная, в которую передаётся значение из формы в другом файле 2 методом POST. Затем нужно из этого файла 1 передать это же значение в файл 3 при нажатии пользователя на кнопку, причём эта кнопка создаётся таким образом:

    Код (PHP):
    1. <input type = "button" value = "Перейти" onClick="self.location.href='input.php'">
    input.php -- файл, в который то самое значение нужно передать. Как это делается? Можно ли это выполнить без сессий и куков?


    Смысл вот в чём: в файле 2 пользователь вводит имя таблицы БД, в файле 1 таблица с таким именем открывается и выводится пользователю. Затем есть 4 опции: произвести внесение, удаление, изменение данных для этой таблицы и выполнить запрос (не обязательно для этой таблицы). В файле 3 (либо это будет скрипт со вставкой, либо с удалением, либо с изменением, либо с выполнением произвольного запроса) путём выполнения соотв. запроса над нужной таблицей должны быть произведены соотв. действия (смотря по какой кнопки пользователь нажимал, такой файл и будет открыт, такие действия и будут выполнены).

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а зачем переход делается через сэлф.локейшн? почему не выполнить отправку формы на этот адрес?
     
  3. Winplexy

    Winplexy Новичок

    С нами с:
    22 ноя 2015
    Сообщения:
    9
    Симпатии:
    0
    А что там отправлять? У кнопки значение value -- название кнопки (ведь так?), а мне нужно другое значение, и чтобы оно передавалось именно по нажатию кнопки.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну. делаешь форму, вставляешь в нее свое значение, делаешь кнопку которая отправляет эту форму.
     
  5. Winplexy

    Winplexy Новичок

    С нами с:
    22 ноя 2015
    Сообщения:
    9
    Симпатии:
    0
    В смысле, создать текстовое поле и туда внести значение?
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    да. почему нет? ты надеюсь читал про скрытые поля?
     
  7. Winplexy

    Winplexy Новичок

    С нами с:
    22 ноя 2015
    Сообщения:
    9
    Симпатии:
    0
    Теперь другой вопрос: есть ли возможность безусловно передать значение переменной из одного файла в другой?

    Код (PHP):
    1. <html>
    2. <head>
    3. <meta charset = "utf-8">
    4. <title>Удаление данных из таблицы</title>
    5. </head>
    6. <body>
    7. <?php
    8. require_once "connect.php";
    9. if (isset($_POST["table"]))
    10. {
    11.     $table_name = $_POST["table"];
    12.     print "<table>
    13.     <tr>
    14.     <th scope = 'col'>Введите ID удаляемой записи: </th>
    15.     </tr>
    16.  
    17.     <tr>
    18.     <form method = 'post' action = 'delete.php'>
    19.     <td><input type = 'text' name = 'record_id' value = ''></td>
    20.     <td><input type = 'hidden' name = 'table_name' value = '{$table_name}'></td>
    21.     <td><input type = 'submit' value = 'Принять'></td>
    22.     </form>
    23.     <form method = 'post' action = 'table_menu.php'>
    24.     <td><input type = 'hidden' name = 'table' value = '{$table_name}'></td>
    25.     <td><input type = 'submit' value = 'Отмена'></td>
    26.     </form>
    27.     </tr>
    28.     </table>";
    29. }
    30.  
    31. if (isset($_POST["record_id"]))
    32. {
    33.     $table_name = $_POST["table_name"];
    34.     $record_id = $_POST["record_id"];
    35.     
    36.     $qresult = mysqli_query($connection, "select * from {$table_name} where {$table_name}_id = '{$record_id}'");
    37.  
    38.     if(!$qresult)
    39.     {
    40.         print '<p style="color:red">Невозможно выполнить запрос: '.mysqli_error($connection).'</p>';
    41.         print "<input type = 'button' value = 'Вернуться' onClick='history.go(-1)'>";
    42.         die();
    43.     }
    44.     
    45.     if (!mysqli_num_rows($qresult))
    46.     {
    47.         print "Ошибка. Такого ID не существует в таблице. ";
    48.         print "<input type = 'button' value = 'Вернуться' onClick='history.go(-1)'>";
    49.         die();
    50.     }
    51. }
    52.  
    53. ?>
    54.  
    55. </body>
    56. </html>
    У пользователя спрашивается, запись с каким ИД удалить из таблицы БД. Перед этим имя таблицы передаётся в файл. После того, как данные отправлены, срабатывает второй if, где происходят другие вопросы. Потом из этого if-а необходимо передать $table_name в другой файл, откуда будет, в зависимости от имени таблицы, соотв. SQL-запрос. Есть возможность отправить эту переменную без нажатия кнопки (извиняюсь за свой говнокод и глупые вопросы, работаю с php лишь второй день, но дело срочное)?
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Имя таблицы брать от пользователя это не безопасно, что пользователь должен делать вместо нажатии кнопки? Ну если он кнопку не жмёт, то что ты хочешь чтобы он сделал?

    Про безопасность http://phpfaq.ru/tech/safety