Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
Lara Semenova
0 / 0 / 0
Регистрация: 17.08.2017
Сообщений: 22
#1

Значение из _$GET пропадает при осуществлении submit - PHP

08.01.2018, 21:20. Просмотров 165. Ответов 6

Здравствуйте, у меня проблема с _$GET, мне нужна форма для изменения значений из БД, для этого на форме с объектом есть специальная ссылка, которая перенаправляет на страницу с формой для изменения значения. В зависимости от id объекта на форме изменяются значения. То есть id_users нужен для идентификации и правильной адресации, для этого я передаю это значение через _$GET. Сначала оно все правильно перенаправляется, на форме инфа нужного объекта из БД. Но при нажатии на кнопку ИЗМЕНИТЬ этот айди теряется тем самым не давая инфе обновится. Помогите, пожалуйста, в чем проблема?
Ссылка из начальной страницы на ту, что с формой:
HTML5
1
  <a href="edit_accaunt.php?id_users='.$accaunt["id_users"].'"> Изменить</a>
Затем вот код на самой форме:
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
<?php 
    ini_set('display_errors',1);
error_reporting(E_ALL); // output errors http://phpfaq.ru/debug
    
    $link = mysqli_connect('localhost', 'admin', '0000', 'db_akzhol');
  $res=mysqli_query($link,"set names utf8");
  
  
  $id_users = $_GET["id_users"];
 
$result_edit= mysqli_query( $link, " SELECT * FROM accaunt_workers WHERE id_users='$id_users' ");
  $row = mysqli_fetch_assoc($result_edit);
  
    echo $id_users; 
 
  
if (isset($_POST['edit'])){
    $username = mysqli_real_escape_string($link, trim($_POST['email'])); //обезопасивает сгл запросы
    $password1 = mysqli_real_escape_string($link, trim($_POST['password1'])); 
    $password2 = mysqli_real_escape_string($link, trim($_POST['password2']));
    $privilege = mysqli_real_escape_string($link, trim($_POST['privilege']));
    $phone_number = mysqli_real_escape_string($link, trim($_POST['phone_number']));
    $name = mysqli_real_escape_string($link, trim($_POST['name']));
    $surname = mysqli_real_escape_string($link, trim($_POST['surname']));
    
    if (!empty($username) && !empty($password1) && !empty($password2) && !empty($privilege)  && !empty($phone_number) 
        && ($password1 == $password2)) {
        
        
            $query1 = "UPDATE accaunt_workers SET 
            email ='$username' , password='$password2' , name ='$name', surname= '$surname', privilege= '$privilege', phone_number= '$phone_number' WHERE id_users='$id_users'";
            $res_edit = mysqli_query($link, $query1);
            if ($res_edit = TRUE) {
            echo 'Успешное обновление'; 
echo $id_users;             
            }
            else {echo ' обновление не удалось'; }
          
            
        }
        else {
             echo 'заполните все поля';
        }
        
        
}
 
// я посмотрела это видео https://youtu.be/ZmKJ5Pg6CRE ?>
HTML5
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
                <div id="add_smth"> 
                 <fieldset class="add_smth">       
                        <form action="edit_accaunt.php?id=<?php echo $id_users; ?>" method="POST"> 
                             <P> <strong> Редактирование данных сотрудника в базе данных </strong> </p>
                             <label for="name">Имя сотрудника:</label> <br><br>
                             <input class='add_smth' type="text" name="name"  required="required" value="<?php echo $row['name'];?>"><br><br>
                             <label for="surname">Фамилия сотрудника:</label> <br><br>
                             <input class='add_smth' type="text" name="surname"  required="required" value="<?php echo $row['surname'];?>"><br><br>
                             
                             <label for="username">Адрес электронной почты:</label> <br><br>
                             <input class='add_smth' type="email" name="email"  required="required" value="<?php echo $row['email'];?>"><br><br>
                
                             <label for="password">Пароль: (он должен содержать минимум 8 символов: латинские буквы и цифры)</label><br><br>
                             <input class='add_smth'  type="text" name="password1" required="required" value="<?php echo $row['password'];?>"><br><br>
                             <label for="password">Подтвердите пароль, введите его еще раз:</label><br>
                             <input class='add_smth'  type="text" name="password2" required="required" value="<?php echo $row['password'];?>"><br><br>
                              <label>Ваш номер телефона:</label><br>
                             <input class='add_smth'  type="text" name="phone_number" required="required" value="<?php echo $row['phone_number'];?>"><br><br>
                             <label>Выберите привелегию, которой будет обладать сотрудник при работе с сайтом:</label><br>
                             <select name="privilege" size="3" required value="<?php echo $row['privilege'];?>">
     <option disabled>Выберите привелегию</option>
    <option  value="Все">Все</option>
    <option value="Работа с клиентами: комментарии и предложенные темы">Работа с клиентами: комментарии и предложенные темы</option>
    <option value="Работа с содержимым: материалы и рекомендации">Работа с содержимым: материалы и рекомендации</option>
  
   </select>
                             
                            <br><br> <button class= 'add_smth' type="submit" name='edit'> Сохранить изменения </button> <br>
                        </form>

Вот что выводится:
Notice: Undefined index: id_users in F:\xampp\htdocs\edit_accaunt.php on line 27 Успешное обновление
Раз уже есть "Успешное обновление" , то запрос выполняется, просто айди исчезает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2018, 21:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Значение из _$GET пропадает при осуществлении submit (PHP):

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

Пропадает значение в селекте - PHP
Кажется, я не правилньно объяснился, вот если вставить этот код в страницу &lt;html&gt; &lt;head&gt; &lt;head&gt; &lt;body&gt; &lt;form...

Сбрасывается значение при submit - PHP
Что нужно сделать что бы оно изменяло переменную внутри и корректно видело? &lt;form method=&quot;post&quot;&gt; &lt;input type=&quot;submit&quot;...

PHP и submit - при повторном выборе возвращается пустое значение - PHP
На событие onChange выпадающего списка поставлен submit формы. Так вот, он работает буквально через раз: первый раз выбираю из списка -...

Форма. Не принимает значение POST['submit'] - PHP
Здравствуйте пишу диплом, столкнулся с проблемой . Есть форма, в которой вводятся значения и отправляются чтобы изменить данные...

Notice: Use of undefined constant submit - assumed 'submit' in - PHP
Скажите пожалуйста как сделать вот эту проверку? http://www.youtube.com/watch?feature=player_detailpage&amp;v=qFxUApU6104#t=766 А то у...

6
atanov
47 / 47 / 12
Регистрация: 26.05.2016
Сообщений: 348
08.01.2018, 23:44 #2
В 27 строке вроде кусок if торчит. А сама переменная $id_users в 14 строке выводится?
0
Phantom-84
33 / 32 / 6
Регистрация: 15.09.2017
Сообщений: 173
09.01.2018, 01:31 #3
PHP
1
if ($res_edit = TRUE) {
А это проверка на успешное обновление? В таком случае сервер баз данных можете даже не поднимать, у вас данные могут прямо в эфире храниться и обновляться
0
jasper-blondin
26 / 26 / 9
Регистрация: 19.06.2014
Сообщений: 153
10.01.2018, 14:33 #4
Добавьте в форму скрытое поле:
HTML5
1
<input type="hidden" name="id_users" value="<?=$id_users?>">
И вместо массива $_GET используйте массив $_REQUEST. Т.е. получайте ID через $_REQUEST["id_users"]
0
ezd
7 / 7 / 3
Регистрация: 09.01.2018
Сообщений: 39
11.01.2018, 01:40 #5
1) $id_users = $_GET["id_users"];

Лучше таки $id_users = @intval($_GET["id_users"]); // чтобы всякую гадость в базу не пихали


2) edit_accaunt.php?id=<?php echo $id_users; ?>

Непонятно каким образом данные из ПХП передаются в ХТМЛ форму. Отсюда непонятно откуда форме знать про $id_users.


3) Вообще если у вас форма изначально открывается по адресу где есть id=... и отправлять форму планируете на ту же страницу, можете оставить поле action="" пустым. И раз уж $_GET является суперглобальным массивом, можете прямо в ХТМЛ его и использовать в виде $_GET['id'] или $_GET['id_users'] (определитесь что у вас там правильно на самом деле)


4) if ($res_edit = TRUE)

Один знак равенства это "присвоение", которое ВСЕГДА истинно. То есть эта конструкция всегда срабатывает, и вовсе не говорит о том что случилось с запросом к базе. Правильно if ($res_edit === true)
0
Sternman
30 / 31 / 11
Регистрация: 10.01.2018
Сообщений: 175
Завершенные тесты: 2
11.01.2018, 20:23 #6
А зачем вообще формировать ссылку с идентификатором пользователя? Я так понимаю это очень стремный кусок админки где изменяются данные пользователя. Получайте все данные юзера в форму. Поле id_user пусть будет скрыто или readonly чтоб случайно не изменить. Далее тыкаем по submit-у и ловим идентификатор в $_POST - е.
0
Lara Semenova
0 / 0 / 0
Регистрация: 17.08.2017
Сообщений: 22
11.01.2018, 22:55  [ТС] #7
Спасибо за ответы!
Но оказывается я просто неправильно ввела имя айди
в строчке
HTML5
1
<form action="edit_accaunt.php?id=<?php echo $id_users; ?>" method="POST">
id надо было поменять на id_users
0
11.01.2018, 22:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2018, 22:55
Привет! Вот еще темы с ответами:

Отмена скролла страницы при submit - PHP
Привет. Вопрос наверное простой. На странице есть кнопка: &lt;button type='submit' name='save' id=&quot;save&quot;&gt;&lt;i class='fa...

Обход некоторых операций при submit - PHP
Доброго времени суток. Я пока зелёный в РНР, столкнулся с проблемой, не знаю как обойти. Коротко, имеется массив, с которого я беру 4...

При нажатии на submit остаться на этой же странице - PHP
Здравствуйте. Помогите пожалуйста с таким вот вопросом. Есть форма ввода, в ней вводятся данные которые по нажатии на кнопку отправляются...

Ошибка при осуществлении поиска - Delphi БД
Помогите. При нажатии на кнопку Найти-появляется сообщение с ошибкой.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru