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

0

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

Например:

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

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

я попытался использовать $ _POST, $ _GET и строки, doesn; t work =\

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

 <?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><? } ?>
Теги:
echo
undefined-index

4 ответа

0

Не перекликайтесь с переменными $_POST напрямую, это позволяет использовать атаки XSS, всегда санировать в первую очередь. Я также замечаю в вашем коде, что вы $fam_data массив $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

Угадайте здесь, когда неясно, где вы используете эхо, но я предполагаю, что данные теряются после перенаправления заголовка, поскольку информация, безусловно, не будет доступна в 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
    нет, я не думаю, что это проблема = \ я хотел сказать, эхо поля на входе. это не будет эхом
  • 0
    попробуйте обновить ответ
Показать ещё 2 комментария
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'] : ''; ?>"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню