v2.5.2
Giriş yap

Fatal error: Uncaught Error: Cannot use object of type PDOStatement as array in C:\xampp\htdocs\adminli\admin\db\login_islemler.php:48 Stack trace: #0 {main} thrown in C:\xampp\htdocs\adminli\admin\db\login_islemler.php on line 48

ynscnr55
708 defa görüntülendi ve 1 kişi tarafından değerlendirildi

merhabalar php ile şifre değiştirme işlemi yaptığımda yukarıdaki hatayı alıyorum. nerede hata yapıyorum yardım olabilir misiniz ?

    /* Şifre Unuttum Form*/
if(isset($_POST['sifreGuncelle']))
{
    $user_name=$_POST['user_name'];
    $usernameCek=$db->prepare("select * from users where username=? order by user_id ");
    $usernameCek->execute(array($user_name));
    $usernameCek->fetch(PDO::FETCH_ASSOC);

    $user=$usernameCek['user_id']; ///hata aldıgım yer burası
    echo $user;
    exit();


    $guvenlik_pass=md5($_POST['guvenlik_pass']);
    $yeni_pass=md5($_POST['yeni_pass']);
    $yeni_pass_dogrulama=md5($_POST['yeni_pass_dogrulama']);

    if($guvenlik_pass and $yeni_pass and $yeni_pass_dogrulama)
    {
        if($yeni_pass==$yeni_pass_dogrulama)
        {
           $user_Kontrol=$db->prepare("update user set user_pass=:user_pass where user_id=:id");
           $user_Kontrol->execute(array($yeni_pass));
           $passUpdate=$user_Kontrol->fetch(PDO::FETCH_ASSOC);
           if($passUpdate)
           {
               header("Location:../production/index.php");
           }
        }


    }
}
ebykdrms
939 gün önce

Merhaba. Bir PDOStatement objesini dizi gibi okumaya çalışıyorsunuz.

$usernameCek->fetch(PDO::FETCH_ASSOC);

yerine

$usernameCek = $usernameCek->fetch(PDO::FETCH_ASSOC);

yazdığınızda, PDOStatement objesini taşıyan $usernameCek değişkeninin değerini fetch() fonksiyonundan dönen array ile değiştirmiş olacaksınız.