رفتن به مطلب
iranwebserver

پست های پیشنهاد شده

درود

شب بخیر

 

یک کلاس دارم که با اون به پایگاه داده نصب میشم

<?php
/**
 * Created by PhpStorm.
 * User: MicRo
 * Date: 7/10/2018
 * Time: 3:43 PM
 */

class Db {
    private $connection;
    private static $db;

    public static function getInstance($option = null) {
        if (self::$db == null) {
            self::$db = new Db($option);
        }
        return self::$db;
    }

    private function __construct($option = null) {

        if ($option != null) {
            $host = $option['host'];
            $user = $option['user'];
            $pass = $option['pass'];
            $name = $option['name'];
        } else {
            global $config;
            $host = $config['db']['host'];
            $user = $config['db']['user'];
            $pass = $config['db']['pass'];
            $name = $config['db']['name'];
        }

        $this->connection = new mysqli($host, $user, $pass, $name);
        if ($this->connection->connect_error) {
            echo "Connection failed: " . $this->connection->connect_error;
            exit();
        }
        $this->connection->query("SET NAMES 'utf8'");
    }

    public function first($sql) {
        $records = $this->query($sql);
        if ($records == null) {
            return null;
        }

        return $records[0];
    }

    public function query($sql) {
        $result = $this->connection->query($sql);
        $records = [];
        if ($result->num_rows == 0) {
            return null;
        } else {
            while($row = $result->fetch_assoc()) {
                $records[] = $row;
            }
            return $records;
        }
    }

    public function connection() {
        return $this->connection;
    }

    public function close() {
        $this->connection->close();
    }
}

 

و در فایلی با نام register-check دارم از کلاس بالا استفاده می کنم

<?php
/**
 * Created by PhpStorm.
 * User: MicRo
 * Date: 7/23/2018
 * Time: 9:15 PM
 */

require_once ('db.php');

$email = ($_POST['email']);
$password1 = ($_POST['pass1']);
$password2 = ($_POST['pass2']);

$db = Db::getInstance();

$record = $db->first("SELECT * FROM x_user WHERE email = `$email`");


if ($record != null) {
    echo "ایمیل استفاده شده قبلا ثبت شده";
    exit();
}

if (strlen($password1) < 3 || strlen($password2) < 3) {
    echo "رمز عبور به اندازه لازم قوی نیست";
    exit();
}
if ($password1 != $password2) {
    echo "رمز های عبور یکی نیستند";
    exit();
}

 

و در صفحه register.php اقدام به ثبت نام کاربر جدید می کنم 

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<link href="style.css" rel="stylesheet">
	<link href="base.css" rel="stylesheet">
</head>
<body>
    <div>
        <div class="tac">
            <img  class="main-img" src="image/note.png"> <br> <br>
            <form action="register-check.php" method="post">
                <input type="email" placeholder="پست الکترونیک" name="email"> <br> <br>
                <input type="password" placeholder="رمز عبور" name="pass1"> <br> <br> <br>
                <input type="password" placeholder="تایید رمز عبور" name="pass2"> <br> <br> <br>
                <button type="submit" class="btn-blue" name="submit">ثبت نام</button>  <br> <br> <br>
                <a class="link-gray" href="login.php">ورود</a>
            </form>
        </div>
    </div>
</body>
</html>

 

توضیح: ایمیل جدید و غیر تکراری وارد می کنم و رمز عبور و تکرار رمز عبور و روی دکمه ثبت نام کلیک می کنم

 

مشکل: وقتی روی دکمه ثبت نام کلیک می کنم به صفحه register-check.php منتقل می شم و با خطای زیر روبرو می شم :| 

image.png.1b232add973ab4de438ea6560b563a8e.png

 

لطفا راهنمایی نمایید

 

فایل های CSS هم ضمیمه کردم

 

:53:

style.css

base.css

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خبر خوش :)

 

مشکل حل شد

 

در فایل register-check.php در خط زیر (متغیر email$ ) باید بجای آپاستروف ( ` ) از کوتیشن ( ' ) استفاده می کردم

 

$record = $db->first("SELECT * FROM x_user WHERE email = `$email`");

 

درستش میشه:

$record = $db->first("SELECT * FROM x_user WHERE email = '$email'");

 

نصف مشکلاتم همیناست باقیشم سینتکس نوشتاری :|

 

:53:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

×