خطا در اسکریپت PHP

حسن غویشه

کاربر عضو
درود

شب بخیر

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

<?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


 

حسن غویشه

کاربر عضو
خبر خوش :)

مشکل حل شد

در فایل 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:

 
بالا