۳ امیر محمد جوادی
چک نشدن اطلاعات در دیتابیس
جامعه پی اچ پی ایجاد شده در ۰۵ اسفند ۱۴۰۱

سلام وقت بخیر

در فراخوانی فایل هلپر با همون روتی که خود استاد میدن پیش رفتیم اما انگار فایل هلپر فرخوانی نمی‌شود و سوال دوم BASE_URL و SITE_URL هم انگار وی اس کد من متوجه نمیشه یعنی چی و من مجبور شدم یک متغیر درست کنم که بفهمونم بهش یعنی چی از شما میخواهم اگر راهی هست که این مشکل برطرف شود بفرمایید

سئال آخر هم اینکه با توجه به توضیحات استاد ما هرچیزی که در فیلد‌ها پر میکنیم چک نمی‌کند که آیا تکراری هست یا خیر و اصلا انگار دیتابیس را نمیتواند جداولش را درک کند

من سورس کد و بکاپ دیتابیس خدمتتون ارسال میکنم یک برسی داشت هباشید تا این مشکل باهم برطرف کنیم

با تشکر از شما

سلام امیرمحمد عزیز

مجدد در آدرس دهی‌ها اشتباه کردید.

مسیردهی رو از روت پروژه انجام بدید.

در فایل init شما بعد از اینکلود کردن فایل constant به ثابت‌ها دسترسی دارید و باید مسیردهی رو انجام بدید.

require BASE_PATH.'libs/helpers.php';
require BASE_PATH.'libs/auth-lib.php';

برای چک کردن موارد تکراری هم میتونید به دو روش عمل کنید:

1.با دستور سلکت کوئری بزنید و ببینید چنین رکوردی یافت میشه یا خیر و طبق اون ادامه بدید.

2.در دیتابیس تکراری بودن رو با استفاده از ویژگی یونیک بررسی و کد ارور رو بگیرید و به شکل زیر عمل کنید:

try {
        $stmt = $pdo->prepare("INSERT INTO emails (email) VALUES (:email)");
        $stmt->execute(array(':email' => $email));
    } catch (PDOException $e) {
        if ($e->errorInfo[1] == 1062) {
            $already_exists = true;
        } else {
            throw $e;
        }
    }
احمدرضا فاطمی کیا ۰۶ اسفند ۱۴۰۱، ۱۸:۵۰

سلام تروخدا یکبار این کدایی که میفرمایید تغییر بدم را خودتون رو سورس من پیاده سازی کنید ببینید درست می‌شه یا نه

من هرسری اینکارایی که شما میگید انجام میدم مشکل برطرف نمی‌شود

خواهشا یکبار خودتون ببینید با اعمال این مواردی که میفرمایید مشکل اوکی هست یا نه . که من هم انقدر تیکت نزنم خدمتتون وقتتون گرفته بشه..


امیر محمد جوادی ۰۹ اسفند ۱۴۰۱، ۱۱:۵۶

سلام،

من چند باره زحمت کشیدم کدهاتون رو بررسی کردم و پاسخ دادم انتظار دارم حداقل قبل ازینکه تاپیک جدید باز کنید، تاپیک قبلیتون رو نگاه کنید بعد تاپیک جدید بسازید.. این تاپیک قبلی شما که سین نکردید:

https://7learn.com/app/topics/14604

مورد دوم اینکه شما واسه لاگین و رجیستر اصلا کدی ننوشتید که بشه تصحیحش کرد. کدهایی که نوشته شده اعم از کانکشن pdo و ... درسته (بجز مواردی که در تاپیک قبلی گفتم.)

در پیامتون گفتید باهم این مشکلو حل کنیم. منم میخوام کمکتون کنم تا باهم این مشکلو حل کنیم.

پس:

یک: ایراداتی که در تاپیک قبلی گفتم رو اصلاح کنید.

دو: کد لاگین و رجیسترو بنویسید و اگر خطا داشتید بعد اینجا بذارید من اصلاحش میکنم.

سه: من یک نمونه کد مینویسم که بتونید تست بگیرید: (نمونه ی زیر کدیه که در auth-lib.php نوشتید فقط من جاشو عوض کردم اوردم توو صفحه دیگه)

if(isset($_GET['action']) && $_GET['action'] == 'login') {
    $sql = 'SELECT * FROM `users` WHERE `email`= :email';
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':email' => $_POST['email']]);
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    print_r($result);
}

این کدهارو به انتهای فایل auth.php میتونید اضافه کنید و برای تست صفحه لاگین هست.

البته گفتم تستیه و باید مطابق پروژه تغییرش بدید.

برای رجیستر هم از کدهایی که احمدرضا در پست قبلی گذاشت میتونید کمک بگیرید.

از کدهای پیوست جلسه هم کمک بگیرید. تمامیه کدهای آموزشی داخل پیوست اومده.

اینها مسائل مقدماتی هستن و مربوط به این پروژه نیستن. بنابراین اگر نمیتونید به دیتابیس کوئری بزنید و سلکتو اینسرت کنید حتما این پروژه رو فعلا موکول کنید به آینده و این جلسات رو ببینید و مرور کنید.

محسن موحد ۰۹ اسفند ۱۴۰۱، ۱۴:۰۱