🔒 Closed Undefined array key

Status
Not open for further replies.

ribbit

Eternal Poster
Good day mga ka programmers !!!

bali nasa part na po ako nang reservation kaso i encounter this error na Warning: Undefined array key....

nag tatary po kasi ako na kunin yung mga data sa kabilang table and i mange to get the username(usern) pero yung first name at last name diko po makuha...


eto po mga errors ko:

Warning: Undefined array key "f_name" in C:\xampp\htdocs\obs\reservation.php on line 30

Warning: Undefined array key "l_name" in C:\xampp\htdocs\obs\reservation.php on line 31


eto po yung code ko sa reservation (reservation.php).
Code:
<?php
session_start();
require('connection.php');

?>
<!DOCTYPE html>
<html>
<link type="text/css" rel="stylesheet" href="ccs/index.css" />
<head>
<body bgcolor="lightgray">
<meta charset="utf-8">
    <title>OBS Reservation</title>
    <link type="text/css" rel="stylesheet" href="" />
    <link type="text/css" rel="stylesheet" href="" />
</head>
<body>

<?php date_default_timezone_set('Asia/Manila');


?>
<?php


// If form submitted, insert values into the database.
if (isset($_REQUEST['Reservation_Date'])){
 $Date_And_Time_Created = date("y-m-d h:i:s");
 
 $usern = $_SESSION['usern'];
 $f_name = $_SESSION['f_name'];
 $l_name = $_SESSION['l_name'];

 $Reservation_Date = stripslashes($_REQUEST['Reservation_Date']);
 //escapes special characters in a string
 $Reservation_Date = mysqli_real_escape_string($con,$Reservation_Date);
 $Service = stripslashes($_REQUEST['Service']);
 $Service = mysqli_real_escape_string($con,$Service);
 
$query = "INSERT INTO `reservation_log` (usern,f_name,l_name,Reservation_Date, Service,Date_And_Time_Created) VALUES ('$usern','$f_name','$l_name','$Reservation_Date','$Service','$Date_And_Time_Created')";
$result = mysqli_query($con,$query);
        if($result){
            echo "<div class='form'>
<h3>You Booked an apointment .</h3>
<br/>Click here to <a href='index.php'>go back.</a></div>";
        }else {
            echo "test: " . $query;
        }
    }else{
?>
<form action="#" style="border:0px solid #0000">
  <div class="wrap">
 <nav>
  <div class="logo"><img src="img/logo.png" height="120" width="120"></div>
   <ul>
    <li><a href="index.php">HOME</a></li>
    <li><a href="reservation.php">BOOK AN APPOINTMENT</a></li>
    <li><a href="logout.php">Log Out</a></li>
 
</div>


    <div id="booking" class="section">
        <div class="section-center">
            <div class="container">
                <div class="row">
                    <div class="booking-form">
                        <div class="form-header">
                            <h1>Make your reservation</h1>
                        </div>
                        <form>
                            <div class="row">
                            <center>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <input class="form-control" type="date" name="Reservation_Date" placeholder="Date" required />
                                        <span class="form-label">Date</span>
                                    </div>
                                </div>
                            </div>
                            <div class="row">
                            <center>
                                <div class="col-md-4">
                                    <div class="form-group">
                                        <select class="form-control" name="Service" id="Service">
                                            <option disabled selected>Services</option>
                                            <option value="Cedula">Cedula</option>
                                            <option value="Barangay Clearance">Barangay Clearance</option>
                                            <option value="Barangay I.D.">Barangay I.D.</option>
                                            <option value="Barangay Permit">Barangay Permit</option>
                                            <option value="Barangay Certificate">Barangay Certificate</option>
                                            <option value="Barangay Business Permit">Barangay Business Permit</option>
                                        </select>
                                    </div>
                                </div>
                                </center>
                            </div>
                            <div class="form-btn">
                            <center>
                                <a class="button" href="index.php">Cancel</a>
                                <button type="submit" class="button">Book</button>
                            </center>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>
<?php } ?>
</body>
</html>

P.S. salamat po sa mga nag tuturo sa akin at specially kay vhin le maraming salamat po master

reservation_log.webp users.webp
 
Ung value ng $l_name at $f_name mo galing sa $_SESSION.
Wlang lman ung $_SESSION['l_name '] at $_SESSION['f_name '] mo.

try mo muna var_dump session para makita mo lahat ng data sa session.
 
Ung value ng $l_name at $f_name mo galing sa $_SESSION.
Wlang lman ung $_SESSION['l_name '] at $_SESSION['f_name '] mo.

try mo muna var_dump session para makita mo lahat ng data sa session.
eto noong itry ko iprint yung $f_name at l_name

1649654872518.webp
 
ribbit ibig sabhin di na set yung data ng l_name at f_name sa session bago mo tawagin. Saang page mo ba sini-set sa session ung mga variable na ito:
$_SESSION['usern']
$_SESSION['f_name']
$_SESSION['l_name']

wala sa page ng reservation.php na pinakita mo, ang meron lang ay yung part na pinapasa mo na sa ibang variable like $usern, $f_name , at $l_name.

$usern = $_SESSION['usern'];
$f_name = $_SESSION['f_name'];
$l_name = $_SESSION['l_name'];

I think sa ibang page ang pag set mo sa session kasi wala sa current form request na pinakita mo.
 
ribbit ibig sabhin di na set yung data ng l_name at f_name sa session bago mo tawagin. Saang page mo ba sini-set sa session ung mga variable na ito:
$_SESSION['usern']
$_SESSION['f_name']
$_SESSION['l_name']

wala sa page ng reservation.php na pinakita mo, ang meron lang ay yung part na pinapasa mo na sa ibang variable like $usern, $f_name , at $l_name.

$usern = $_SESSION['usern'];
$f_name = $_SESSION['f_name'];
$l_name = $_SESSION['l_name'];

I think sa ibang page ang pag set mo sa session kasi wala sa current form request na pinakita mo.
wala pa po ako iset, sa log in page puba dapat i set yung session nang f_name at l_name

eto pala code ko sa log in
Code:
<?php
/* include('auth.php'); */
require('connection.php');

/* if(!$_SESSION['obs'])
{
    header('Location: login.php');
} */
  
if(isset($_POST['submit'])){
    $usern=$_POST['usern'];
    $passw=$_POST['passw'];
    $query="SELECT * FROM users WHERE usern='$usern' AND passw='$passw' AND verify_status=1 ";
    $result=mysqli_query($con,$query);
    $row=mysqli_fetch_array($result);
    
    
    
    if(mysqli_num_rows($result)>0)
    { 
        session_start();
        $_SESSION['obs']='true';
        $user_type=strtoupper($row['user_type']);
        switch($user_type)
        {
            case 'ADMIN':
            /* header("Location: admin.html"); */
            echo $user_type ;
            break;
            default:
            header("Location: index.php");
            /* echo $user_type ; */
        }
        $_SESSION["usern"] = $usern;
    }
    else
    {
        echo "wala pa sa database";
    }
}
else
{
//walang laman
}
?>

dito pala sir sa code.php

Code:
<?php
require('connection.php');
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
//Load Composer's autoloader
require 'vendor/autoload.php';
function sendemail_verify($fname,$email,$verify_token)
{
    $mail = new PHPMailer(true);
    
    //Server settings
    //$mail->SMTPDebug = 2;                      //Enable verbose debug output
    $mail->isSMTP();                                            //Send using SMTP
    $mail->Host       = 'smtp.gmail.com';                     //Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
    $mail->Username   = 'fv091120@gmail.com';                     //SMTP username
    $mail->Password   = 'fatima123$';                               //SMTP password
    $mail->SMTPSecure = "tls";            //Enable implicit TLS encryption
    $mail->Port       = 587;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
    
                 
    
    $mail->setFrom("fv091120@gmail.com", $fname);
    $mail->addAddress($email);
    $mail->isHTML(true);
    $mail->Subject = "Here is the subject";
    $emial_template = "<a href='http://localhost/email_ver/verify_email.php?token=$verify_token'>Click Here</a>";
    $mail->Body    =  $emial_template;
    $mail->send();
    //echo 'Message has been sent';
}
if(isset($_POST['register_btn']))
{
    $f_name = $_POST['fname'];
    $l_name = $_POST['lname'];
    $addr = $_POST['addr'];
    $user_type = 'User';
    $pnum = $_POST['pnum'];
    $email = $_POST['email'];
    $usern = $_POST['username'];
    $passw = $_POST['password'];
    $verify_token = md5(rand());
    
    //email exist
    $cheack_email_query = "SELECT email FROM users WHERE email='$email' LIMIT 1";
    $cheack_email_query_run = mysqli_query($con,$cheack_email_query);
    if(mysqli_num_rows($cheack_email_query_run) > 0)
    {
        $_SESSION["status"] = "E-mail already exist.";    
        header("Location: register.php");
    }
    else
    {
        $query = "INSERT INTO users (user_type,usern,passw,f_name,l_name,pnum,addr,email,verify_token) VALUES ('$user_type','$usern','$passw','$f_name','$l_name','$pnum','$addr','$email','$verify_token')";
        $query_run = mysqli_query($con,$query);
        if($query_run)
        {
            sendemail_verify("$f_name","$email","$verify_token");
            $_SESSION["status"] = "Plaease Cheack your Email for verifacation";    
            header("Location: register.php");
        }
        else
        {
            $_SESSION["status"] = "hind pasok";    
            header("Location: register.php");  
        }
    } 
}
?>
 
Base sa logic ng program mo ganito ang flow:

Register -> Send email Verification -> Log in -> Check verfified user credentials -> Get Reservation Details -> Update Reservation_log table.

Best approach, session variables like active/current user information should be set after successful login.

Sa login script mo ilagay ung code parang ganito, see updated line 24 and 25.
PHP:
<?php
/* include('auth.php'); */
require('connection.php');

/* if(!$_SESSION['obs'])
{
    header('Location: login.php');
} */
 
if(isset($_POST['submit'])){
    $usern=$_POST['usern'];
    $passw=$_POST['passw'];
    $query="SELECT * FROM users WHERE usern='$usern' AND passw='$passw' AND verify_status=1 ";
    $result=mysqli_query($con,$query);
    $row=mysqli_fetch_array($result);
   
   
   
    if(mysqli_num_rows($result)>0)
    {
        session_start();
        $_SESSION['obs']='true';
        $user_type=strtoupper($row['user_type']);
        $_SESSION['f_name'] = $row['f_name'];
        $_SESSION['l_name'] = $row['l_name'];
        switch($user_type)
        {
            case 'ADMIN':
            /* header("Location: admin.html"); */
            echo $user_type ;
            break;
            default:
            header("Location: index.php");
            /* echo $user_type ; */
        }
        $_SESSION["usern"] = $usern;
    }
    else
    {
        echo "wala pa sa database";
    }
}
else
{
//walang laman
}
?>
 
galito nalang po ginawa ko kagabi, nag lagay nalang po ako nang pag lalagyan nang f name and l name kung para kanino yung service

PHP:
<?php
session_start();
require('connection.php');

?>
<!DOCTYPE html>
<html>

<head>

<body bgcolor="lightgray">
    <meta charset="utf-8">
    <title>OBS Reservation</title>
    <link type="text/css" rel="stylesheet" href="ccs/index.css" />
    </head>
    </head>

    <body>

        <?php date_default_timezone_set('Asia/Manila');


        ?>
        <?php


        // If form submitted, insert values into the database.
        if (isset($_REQUEST['Reservation_Date'])) {
            $Date_And_Time_Created = date("y-m-d h:i:s");
            $usern = $_SESSION['usern'];
            $f_name = stripslashes($_REQUEST['f_name']);
            $f_name = mysqli_real_escape_string($con, $f_name);
            $l_name = stripslashes($_REQUEST['l_name']);
            $l_name = mysqli_real_escape_string($con, $l_name);
            $Reservation_Date = stripslashes($_REQUEST['Reservation_Date']);
            $Reservation_Date = mysqli_real_escape_string($con, $Reservation_Date);
            $Service = stripslashes($_REQUEST['Service']);
            $Service = mysqli_real_escape_string($con, $Service);

            $query = "INSERT INTO `reservation_log` (usern,f_name,l_name,Reservation_Date, Service,Date_And_Time_Created)
            VALUES ('$usern','$f_name','$l_name','$Reservation_Date','$Service','$Date_And_Time_Created')";
            $result = mysqli_query($con, $query);
            if ($result) {
                /* echo var_dump($f_name, $l_name) . "<br>"; */
                /* echo var_dump($usern)."<br>"; */
                echo "<div class='form'>
            
<h3>You Booked an apointment .</h3>
<br/>Click here to <a href='index.php'>go back.</a></div>";
            } else {
                echo "test: " . $query;
            }
        } else {
        ?>
            <form action="#" style="border:0px solid #0000">
                <div class="wrap">
                    <nav>
                        <div class="logo"><img src="img/logo.png" height="120" width="120"></div>
                        <ul>
                            <li><a href="index.php">HOME</a></li>
                            <li><a href="reservation.php">BOOK AN APPOINTMENT</a></li>
                            <li><a href="logout.php">Log Out</a></li>

                </div>


                <fieldset>
                    <legend>Appointment Information</legend>
                    <div class="item">
                        <label for="fname"> First Name<span>*</span></label>
                        <input id="fname" type="text" name="f_name" required />
                    </div>
                    <div class="item">
                        <label for="lname"> Last Name<span>*</span></label>
                        <input id="lname" type="text" name="l_name" required />
                    </div>
                    <div class="item">
                        <label for="date">Date<span>*</span></label>
                        <input id="date" type="date" name="Reservation_Date" required />
                        <i class="fas fa-calendar-alt"></i>
                    </div>
                    <div class="form-group">
                        <select class="form-control" name="Service" id="Service" required>
                            <option disabled selected>Services</option>
                            <option value="Cedula">Cedula</option>
                            <option value="Barangay Clearance">Barangay Clearance</option>
                            <option value="Barangay I.D.">Barangay I.D.</option>
                            <option value="Barangay Permit">Barangay Permit</option>
                            <option value="Barangay Certificate">Barangay Certificate</option>
                            <option value="Barangay Business Permit">Barangay Business Permit</option>
                        </select>
                    </div>
                </fieldset>
                <div class="btn-block">
                    <button type="submit">Submit</button>
                </div>
            </form>
        <?php } ?>
    </body>

</html>

salamat po sir sa pag tulong ❤️
 
Status
Not open for further replies.

About this Thread

  • 6
    Replies
  • 2K
    Views
  • 2
    Participants
Last reply from:
ribbit

Online now

Members online
1,000
Guests online
1,379
Total visitors
2,379

Forum statistics

Threads
2,276,208
Posts
28,968,320
Members
1,231,166
Latest member
williamfreede
Back
Top