Это запрос на добавление реферальной ссылки,после регистрации пользователь должен получить реферальную ссылку, но почему то пишет ошибку: Код (Text): if(!empty($current_id)) { $email = $_POST['email']; $ref = $_SESSION['ref_id']; $as = mysqli_query($conn, "SELECT `id` FROM `registered_users` WHERE `email` = '$email'"); $a = mysqli_fetch_assoc($as); $i = $a['id']; $_SESSION['logged_user']->id = $i; $user = mysqli_query($conn, "SELECT `id` FROM `registered_users` WHERE `email` = '$email'"); $a = mysqli_fetch_assoc($user); $us=$a['id']; $query = mysqli_query($conn, "INSERT INTO `referals` (id, id_user, id_usser) VALUES('','$us', '$ref')"); $info_reg = 'Ваша реферальная ссылка: <a href= "//help.com/referal.php?id='.$_SESSION['logged_user']->id.'">//help.com/referal.php?id='.$_SESSION['logged_user']->id.'</a><br>Это ваша индивидуальная реферальная ссылка, по этой ссылки вы можете звать друзей и получать бонусы </br></br>'; if (!empty($_SESSION['logged_user']->id));
Код (Text): <?php class DBController { private $host = "localhost"; private $user = "root"; private $password = ""; private $database = "phppot_examples"; private $conn; function __construct() { $this->conn = $this->connectDB(); } function connectDB() { $conn = mysqli_connect($this->host,$this->user,$this->password, $this->database); return $conn; } function runQuery($query) { $result = mysqli_query($this->conn, $query); while($row=mysqli_fetch_assoc($result)) { $resultset[] = $row; } if(!empty($resultset)) return $resultset; } function numRows($query) { $result = mysqli_query($this->conn, $query); $rowcount = mysqli_num_rows($result); return $rowcount; } function updateQuery($query) { $result = mysqli_query($this->conn, $query); if (!$result) { die('Invalid query: ' . mysqli_error($this->conn)); } else { return $result; } } function insertQuery($query) { $result = mysqli_query($this->conn, $query); if (!$result) { die('Invalid query: ' . mysqli_error($this->conn)); } else { return mysqli_insert_id($this->conn); } } function deleteQuery($query) { $result = mysqli_query($this->conn, $query); if (!$result) { die('Invalid query: ' . mysqli_error($this->conn)); } else { return $result; } } } ?>
Покажи в примере который выше откуда ты берешь $conn --- Добавлено --- вот до этой строки где ты присваиваешь переменной $conn что то? PHP: $as = mysqli_query($conn, "SELECT `id` FROM `registered_users` WHERE `email` = '$email'");
вот весь код register.php Код (Text): <?php if(count($_POST)>0) { /* Form Required Field Validation */ foreach($_POST as $key=>$value) { if(empty($_POST[$key])) { $message = ucwords($key) . " field is required"; $type = "error"; break; } } /* Password Matching Validation */ if($_POST['password'] != $_POST['confirm_password']){ $message = 'Passwords should be same<br>'; $type = "error"; } /* Email Validation */ if(!isset($message)) { if (!filter_var($_POST["userEmail"], FILTER_VALIDATE_EMAIL)) { $message = "Invalid UserEmail"; $type = "error"; } } /* Validation to check if gender is selected */ if(!isset($message)) { if(!isset($_POST["gender"])) { $message = " Gender field is required"; $type = "error"; } } /* Validation to check if Terms and Conditions are accepted */ if(!isset($message)) { if(!isset($_POST["terms"])) { $message = "Accept Terms and conditions before submit"; $type = "error"; } } if(!isset($message)) { require_once("dbcontroller.php"); $db_handle = new DBController(); $query = "SELECT * FROM registered_users where email = '" . $_POST["userEmail"] . "'"; $count = $db_handle->numRows($query); if($count==0) { $query = "INSERT INTO registered_users (user_name, first_name, last_name, password, email, gender) VALUES ('" . $_POST["userName"] . "', '" . $_POST["firstName"] . "', '" . $_POST["lastName"] . "', '" . ($_POST["password"]) . "', '" . $_POST["userEmail"] . "', '" . $_POST["gender"] . "')"; $current_id = $db_handle->insertQuery($query); if(!empty($current_id)) { $email = $_POST['email']; $ref = $_SESSION['ref_id']; $as = mysqli_query($conn, "SELECT `id` FROM `registered_users` WHERE `email` = '$email'"); $a = mysqli_fetch_assoc($as); $i = $a['id']; $_SESSION['logged_user']->id = $i; $user = mysqli_query($conn, "SELECT `id` FROM `registered_users` WHERE `email` = '$email'"); $a = mysqli_fetch_assoc($user); $us=$a['id']; $query = mysqli_query($conn, "INSERT INTO `referals` (id, id_user, id_usser) VALUES('','$us', '$ref')"); $info_reg = 'Ваша реферальная ссылка: <a href= "//help.com/referal.php?id='.$_SESSION['logged_user']->id.'">//help.com/referal.php?id='.$_SESSION['logged_user']->id.'</a><br>Это ваша индивидуальная реферальная ссылка, по этой ссылки вы можете звать друзей и получать бонусы </br></br>'; if (!empty($_SESSION['logged_user']->id)); $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"."activate.php?id=" . $current_id; $toEmail = $_POST["userEmail"]; $subject = "User Registration Activation Email"; $content = "Click this link to activate your account. <a href='" . $actual_link . "'>" . $actual_link . "</a>"; $mailHeaders = "From: Admin\r\n"; if(mail($toEmail, $subject, $content, $mailHeaders)) { $message = "You have registered and the activation mail is sent to your email. Click the activation link to activate you account."; $type = "success"; } unset($_POST); } else { $message = "Problem in registration. Try Again!"; } } else { $message = "User Email is already in use."; $type = "error"; } } } echo $info_reg; ?>
нет там у тебя $conn добавь выше PHP: $conn = mysqli_connect("localhost", "my_user", "my_password", "world"); /* проверка соединения */ if (mysqli_connect_errno()) { printf("Не удалось подключиться: %s\n", mysqli_connect_error()); exit(); }
@Suyunoff, ты даже не рядом с программированием. Советую отложить код на полгодика, почитать книг хороших, а потом вернуться на форум с вопросами. К тому моменту ты хотя бы научишься их задавать. Нет смысла тратить свое время на того, кто не может понять ответ.
или вытяни из своего класса эту функцию PHP: function connectDB() { $conn = mysqli_connect($this->host,$this->user,$this->password, $this->database); return $conn; }
@Suyunoff, вам самому свой код нравится ? удобно читаемо ? а если поставить в начале: PHP: <?php declare ( strict_types = 1 ); и не говнокодить
Это не издевательство, а направление на исправление. Не многие юзают фичу, думая что error_reporting E_ALL достаточно
Код (Text): if($count==0) { $query = "INSERT INTO registered_users (user_name, first_name, last_name, password, email, gender) VALUES ('" . $_POST["userName"] . "', '" . $_POST["firstName"] . "', '" . $_POST["lastName"] . "', '" . ($_POST["password"]) . "', '" . $_POST["userEmail"] . "', '" . $_POST["gender"] . "')"; $current_id = $db_handle->insertQuery($query); if(!empty($current_id)) { $email = $_POST['email']; $ref = $_SESSION['ref_id']; $as = mysqli_query($conn, "SELECT `id` FROM `registered_users` WHERE `email` = '$email'"); $a = mysqli_fetch_assoc($as); $i = $a['id']; $_SESSION['logged_user']->id = $i; $user = mysqli_query($conn, "SELECT `id` FROM `registered_users` WHERE `email` = '$email'"); $a = mysqli_fetch_assoc($user); $us=$a['id']; $query = mysqli_query($conn, "INSERT INTO `referals` (id, id_user, id_usser) VALUES('','$us', '$ref')"); $info_reg = 'Ваша реферальная ссылка: <a href= "//help.com/referal.php?id='.$_SESSION['logged_user']->id.'">//help.com/referal.php?id='.$_SESSION['logged_user']->id.'</a><br>Это ваша индивидуальная реферальная ссылка, по этой ссылки вы можете звать друзей и получать бонусы </br></br>'; if (!empty($_SESSION['logged_user']->id)); Привет, я добавил то то что ты написал, в другой файл и соединил через инклуд. ошибки не выдает, но не показывает id
не знаю, все перепроверил,строго не судите, просто я никогда не делал реф.ссылку. мне дали задание сделать и я делаю)
Notice: Trying to get property 'id' of non-object in --- Добавлено --- Противоречишь себе. В начале скрипта при кодинге ВСЕГДА пиши: PHP: <?php declare ( strict_types = 1 ); error_reporting ( E_ALL ); Узнаешь в чем причина.
Средство запуска php - Denwer ? Перейди и установи openserver - https://ospanel.io/download/ после, в скрытых значках ( где часы ) заходишь в меню - настройки - модули Переносишь, бд заливаешь. Дальше: https://php.ru/forum/threads/oshibk...rametr-1-budet-mysqli-null.78500/#post-605484
до этого я делал регистрацию через реф ссылкой по этому коду, но там не было подтерждение эмайл, поэтому я через интернет писал регистрацию с подтверждением через эмайл и добавить туда реферальную ссылку, думал так будет легче, но там реферальная ссылка работала нормально)
я вот долго думал,и попробовал сделать так "а что если самому написать id человека, добавятся ли в базу данных" и сделал и она работает, в бд показывает кто кого пригласил но просто не показывает id после регистрации