эхо не работает, но таблица успешно обновлена

При обновлении моей таблицы все работает нормально. но единственная проблема в том, что я не может повторить поля во входных данных.
и показывая ошибку, неопределенный индекс. Я не понимаю, я попробовал все. но это не будет эхом

Например:

Неопределенный индекс: имя_ фамилии в /Applications/XAMPP/xamppfiles/htdocs/finalproject/admin/records/activities_update.php в строке 80

у меня нет проблем в получении удостоверения личности. но другие переменные fam_name, fam_add, nochild, aid и так далее … я не могу получить его. я надеюсь, вы понимаете, что я пытаюсь сказать

я пытался использовать $ _POST, $ _GET и строки, не работает = \

Нужна помощь, пытаясь решить эту проблему в течение нескольких дней.

 <?php
if(isset($_GET['success']) === true && empty($_GET['success']) === true){
echo ' Your details have been updated';
} else {

if (empty($_POST) === false && empty($errors) === true) {
$fam_data = array(
'fam_name'                  => $_POST['fam_name'],
'fam_add'                   => $_POST['fam_add'],
'nochild'                   => $_POST['nochild'],
'aid'                       => $_POST['aid'],
'date_visited'              => $_POST['date_visited'],
'visited_since'                 =>  $_POST['visited_since'],
);

edit_family($fam_data);
header('Location: rec_act1.php?success');
exit();
//exit();

} else if (empty($errors) === false) {
echo output_errors($errors);
}

?>

<div id="insert_form">
<form name="update" action = "" method ="post">
<table border = "0" align = "center">
<tr>
<th colspan = "2"> </th>
</tr>
<tr>

<td><input type = "hidden" name = "id" maxlength = "9" value="<?php echo $id = $_GET['id'];?>"></td> Editing: <?php echo $id = $_GET['id'];?>
</tr>
<tr>
<td>Family Name: </td>
<td><input type = "text" name = "fam_name" maxlength = "9"  value="<?php echo $_POST['fam_name']; ?>"></td>
</tr>
<tr>
<td>No. Of Family: </td>
<td><input type = "text" name = "nochild" maxlength = "30"  value="<?php echo $row['nochild'];?>"></td>
</tr>
<tr>
<td>Family Address: </td>
<td><input type = "text" name = "fam_add" maxlength = "30"  value="<?php echo $row['fam_add'];?>"></td>
</tr>

<tr>
<td>Types of Aid received: </td>
<td><input type = "float" name = "aid" step = 'any' min = 1 max = 99999999  value="<?php echo $row['aid'];?>"></td>
</tr>

<tr>
<td>Date Visited</td>
<td><input type = "date" name = "date_visited"  value="<?php echo $row['date_visited'];?>"></td>
</tr>

<tr>
<td>Visited Since </td>
<td><input type = "date" name = "visited_since" value="<?php echo $row['visited_since'];?>"></td>
</tr><td><input type ="submit" name = "submit" value = "Update"></td></table>
</form></div><? } ?>

0

Решение

$row используется в форме не существует.

Перед формой необходимо выбрать текущие данные из таблицы, после чего сохранить эти данные в $row,

$row = $mysqli->fetch_assoc($mysqli->query($conn, "SELECT ...")); // select family data

В $ mysqli, конечно, экземпляр MySQLi.

Из-за обновления строки, я думаю, у вас есть данные в вашей базе данных. Если вы не знаете и не хотите видеть undefined index обратите внимание, в значениях формы должен быть issetнапример

value="<? echo isset($row['fam_name']) ? $row['fam_name'] : ''; ?>"
0

Другие решения

Догадываюсь здесь, поскольку неясно, где вы используете echo, но я предполагаю, что данные теряются после перенаправления заголовка, так как информация наверняка не будет доступна в rec_act1.php. Попробуйте переписать сценарий, чтобы не перенаправлять или, если необходимо, передавать данные в сеансе.

0

Для получения данных в $_GET вам нужно отправить все ваши переменные в строке запроса, как

if (empty($_POST) === false && empty($errors) === true) {
$fam_name = $_POST['fam_name'];
// set your all vars

<------rest of code ---->

header('Location: rec_act1.php?id=$id&fam_name=$fam_name');

и получите строку запроса var в значении вроде: —

value="<?php echo $_GET['id'];?>"value="<?php echo $_GET['fam_name'];?>"// and so on
0

Не эхом $_POST непосредственно к переменным, это допускает возможность атак XSS, всегда сначала санируйте. Я также заметил в вашем коде, что вы создаете $fam_data массив и непосредственно после перенаправления без создания $_SESSION таким образом, массив будет потерян, если ваша функция edit_family не начнет сеанс. Мне кажется, проблема в том, что вы не получаете $_POST['fam_name'] переменная из формы или она теряется при обновлении страницы.

Попробуйте добавить …

//start session before any output to browser
session_start();

if (isset($_POST['fam_name'])) {
//only process the request if expected values are found
if (ctype_alpha($_POST['fam_name'])) {
$_SESSION['fam_name'] = $_POST['fam_name'];
}
} else {
//this alert will let you know if the value was empty
echo "no family name received";
exit;
}

Затем в вашей форме ввода, используйте …

value="<?php echo $_SESSION['fam_name']; ?>">
0
По вопросам рекламы [email protected]