حسن غویشه
کاربر عضو
درود
شب بخیر
یک کلاس دارم که با اون به پایگاه داده نصب میشم
<?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 منتقل می شم و با خطای زیر روبرو می شم :|
لطفا راهنمایی نمایید
فایل های CSS هم ضمیمه کردم
:53:
شب بخیر
یک کلاس دارم که با اون به پایگاه داده نصب میشم
<?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 منتقل می شم و با خطای زیر روبرو می شم :|
You must be registered for see images attach
لطفا راهنمایی نمایید
فایل های CSS هم ضمیمه کردم
:53:
You must be registered for see images attach
You must be registered for see images attach