💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ حسینی
عدم ارتباط با دیتابیس
محمدرسول اصغری حل شده توسط محمدرسول اصغری

سلام خسته نباشید 

Fatal error: Uncaught PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected in C:\xampp\htdocs\7Learn.php\7auth\libs\auth-lib.php:8 Stack trace: #0 C:\xampp\htdocs\7Learn.php\7auth\libs\auth-lib.php(8): PDOStatement->execute(Array) #1 C:\xampp\htdocs\7Learn.php\7auth\auth.php(17): isUserExists('jamal84hussaini...', '0903787587.') #2 {main} thrown in C:\xampp\htdocs\7Learn.php\7auth\libs\auth-lib.php on line 8
<?php
session_start();
require 'constants.php';
require 'config.php';
require BASE_PATH . 'libs/helpers.php';
require BASE_PATH . 'libs/auth-lib.php';
try{
    $pdo = new PDO("mysql:host$dataBase_config->host,dbname=$$dataBase_config->dbname,charset=$dataBase_config->charset",$dataBase_config->user,$dataBase_config->password);
}catch(PDOException $e){
    echo'conection faild' . $e->getMessage();
    die();
};
حسینی ۱۵ بهمن ۱۴۰۲، ۱۲:۳۶
<?php
$dataBase_config=(object)[
    'host' => 'localhost',
    'user' => 'root',
    'password' => '',
    'dbname' => '7auth',
    'charset' => 'utf8mb4'
];
حسینی ۱۵ بهمن ۱۴۰۲، ۱۲:۳۷
<?php
function isUserExists(string $email, string $phone): bool
{
    global $pdo;
    $sql = 'SELECT * FROM users WHERE email = :email OR phone = :phone';
    $stmt = $pdo->prepare($sql);
    $stmt->execute(['email' => $email, 'phone' => $phone]);
    $record = $stmt->fetch(PDO::FETCH_OBJ);
    return $record ? true : false;
}
حسینی ۱۵ بهمن ۱۴۰۲، ۱۲:۳۷
<?php
include "bootstrap/init.php";
if($_SERVER['REQUEST_METHOD'] == 'POST' ){
    $action = $_GET['action'];
    $params = $_POST;
    if($action == 'register'){
        if(empty($params['name']) || empty($params['email']) || empty($params['phone'])){
            serErrorAndRedirect('all input field is required','auth.php?action=register');
        }
        if(!filter_var($params['email'] ,FILTER_VALIDATE_EMAIL)){
            serErrorAndRedirect('enter the valid email','auth.php?action=register');
        }
        if(isUserExists($params['email'] ,$params['phone'])){
            serErrorAndRedirect('user exists whih this data','auth.php?action=register');
        }
        print_r($_POST);
    }
}
if(isset($_GET['action']) && $_GET['action'] == 'register'){
    include 'tpl/register-tpl.php';
}else{
    include 'tpl/login-tpl.php';
}
حسینی ۱۵ بهمن ۱۴۰۲، ۱۲:۳۷

تمام کد‌ها را چک کردم درست بود نمی‌دونم مشکل از کجاست ممنون میشم کمکم کنید مرسی.

حسینی ۱۵ بهمن ۱۴۰۲، ۱۲:۳۹

درود 

متن خطا نشون میده که دیتابیسی با اسم (7auth)  پیدا نکرده 

چک بکنید این دیتابیس وجود داشته باشه 

موفق باشید

بهترین پاسخ
محمدرسول اصغری ۱۵ بهمن ۱۴۰۲، ۱۴:۲۷