What's new

[PHP] Undefined array key [Solve]

Status
Not open for further replies.

ribbit

Eternal Poster
ask ko lang po kung paano ma aalis ang error na ito baka meron po kayo idea

yung line 7 po yung error msg:
Warning: Undefined array key "d79096188b670c2f81b7001f73801117" in C:\xampp\htdocs\obs\login_run.php on line 7 string(6) "qweqwe" NULL

PHP:
<?php

require('connection.php');

if (isset($_POST['submit'])) {
    $usern = $_POST['usern'];
    $passw = $_POST[md5('passw')];
   
    $query = "SELECT * FROM users WHERE usern='$usern' AND passw='".md5($passw)."' AND verify_status=1 ";
    $result = mysqli_query($con, $query);
    $row = mysqli_fetch_array($result);

    if (mysqli_num_rows($result) > 0 ) {
        $_SESSION["usern"] = $usern;
        session_start();


        $user_type = strtoupper($row['user_type']);
        switch ($user_type) {
            case 'ADMIN':
                header("Location: admin/index.php");
                /* echo $user_type ; */
                break;

            default:
                header("Location: index.php");
                /* echo $user_type ; */
        }
        $_SESSION["usern"] = $usern;
    } else {
        var_dump($usern);
        var_dump($passw);
       
        echo "<h2>You enetr the worng Username/Passowrd or The account is not been authenticated.</h2>";
        echo nl2br("<h3><a href='login.php'>Click here</a> to go back to Log-in page.</h3");
    }
} else {
    echo "your a beast";
}


1653956399266.png
 

Attachments

Last edited:
Solution
$passw = $_POST[md5('passw')];

I guess wala kang POST data na ganyan "$_POST[md5('passw')]" .
Just like what vhin le answered is what you are trying to achieved.

//post data from password field of the form
$passw = $_POST['passw'];

//hash password data using md5 encryption
$passw = md5($passw);

or inline

$passw = md5($_POST['passw']);

Just notice lang lods noh, sa line 9 ng code mo may SQL query ka na
"$query = "SELECT * FROM users WHERE usern='$usern' AND passw='".md5($passw)."' AND verify_status=1 ";"

lumalabas rin na multiple time mong ini-encrypt sa md5 ung password since ung variable mo na $passw ay encrypted na based sa sequence ng code logic. I think you need to work on that also.
my bad akala ko ma bobold yung code wait sair ayusin ko yung code ko
undefined ibig sabihin non-existent yung 'passw'
sa:
$_POST[md5('passw')];

para madebug, try mo muna iprint yung array ng mga post:
print_r($_POST);
check mo kung may 'passw'


Kung maglologin ka at magseselect sa database, try mo kung tama ung username at password.
 
Last edited:
undefined ibig sabihin non-existent yung 'passw'
sa:
$_POST[md5('passw')];

para madebug, try mo muna iprint yung array ng mga post:
print_r($_POST);
check mo kung may 'passw'
1653956957880.png


feeling ko sir hind siya nag tutugma sa hashing ko kasi po naka hash password ko sa dabase
1653957089116.png


kasi sir pag inalis ko yung '$passw = $_POST[md5('passw')];' at pinalitan nang '$passw = $_POST['passw'];' di na po siya pumapasok, pero pag naka md5 yung post ko po kahit mali yung password pumapasok pa
 

Attachments

Last edited:
check mo muna kung may values lahat ng form data
PHP:
if(isset($_POST["usern"]) && isset($_POST["passw"]))
{
  // code
}

or gamit ka You do not have permission to view the full content of this post. Log in or register now.,
tas kunin mo muna value ng passw bago mo md5 hash
PHP:
$password =$_POST["passw"] ?? "";
$hashed_password = md5($password);
 
$passw = $_POST[md5('passw')];

I guess wala kang POST data na ganyan "$_POST[md5('passw')]" .
Just like what vhin le answered is what you are trying to achieved.

//post data from password field of the form
$passw = $_POST['passw'];

//hash password data using md5 encryption
$passw = md5($passw);

or inline

$passw = md5($_POST['passw']);

Just notice lang lods noh, sa line 9 ng code mo may SQL query ka na
"$query = "SELECT * FROM users WHERE usern='$usern' AND passw='".md5($passw)."' AND verify_status=1 ";"

lumalabas rin na multiple time mong ini-encrypt sa md5 ung password since ung variable mo na $passw ay encrypted na based sa sequence ng code logic. I think you need to work on that also.
 
Solution
$passw = md5($_POST['passw']);

no need to do this 'passw='".md5($passw)' since na convert mo na sa md5 from line 7
okay na sir binabasa na siya nang md5. kaso bakit po kaya di nag tutugma ang hash nang password ko sa dabase? kaya po di makapasok
1653959152471.png


tapos eto po yung hash na pasok sa database
1653959224805.png


eto po code ko sa register:
PHP:
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 = md5($passw);
    $verify_token = md5(rand());
    

    

    $cheack_email_query = "SELECT email FROM users WHERE email='$email' LIMIT 1";
    $cheack_email_query_run = mysqli_query($con,$cheack_email_query);

nag register ako nang matt for the user
ang password is 123456 tapos eto po pasok sa database
1653960058794.png

tapos noong ipinasok ko na yung user at pass sa log in page
password is 123456 = e10adc3949ba59abbe56e057f20f883e ayon sa log in page ko vardump ako
1653960028139.png


tama sir dmartinez_01 naka double yung pag hash ko
 

Attachments

Last edited:
Status
Not open for further replies.

Similar threads

Back
Top