PHP почта с деталями строки SQL - PullRequest
0 голосов
/ 27 августа 2018

Я просто создаю контактную форму, для входа пользователей.Поэтому я должен получить их имя и адрес электронной почты ... после нескольких часов попыток я использовал селектор классов ... но до этого у меня была ошибка вроде:

Объект класса mysqli_result не могбыть преобразован в строку

Мой код (пытается преобразовать для строки):

     class MyClass
    {
        public $name;

        public function __construct($name)
        {
            $this->name = $name;

        public function __toString()
        {
            try 
            {
                return (string) $this->name;
            } 
            catch (Exception $exception) 
            {
                return '';
            }
        }
        }
    }
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if($resultCheck > 0){

while($row = mysqli_fetch_assoc($result)) {

    $name = new MyClass('"'. $row['user_first'] . '"');
    $userumail = new MyClass('"'. $row['user_email'] . '"');

Так что после этого у меня есть:

синтаксическая ошибка, неожиданная 'public'

часть моей html почты (поскольку почта длинная, я поставил только 1 строку):

<h3 style='text-align:center'>Message from: $name e-mail: $userumail></h3></br>

Пожалуйста, дайте мне совет xD

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Я нашел ответ, так что если у кого-то возникнет аналогичная проблема с функцией MAIL.просто используйте mysqli как:

    $result = mysqli_query($conn, $sql);
    $resultCheck = mysqli_num_rows($result);
    if($resultCheck>0){
     while($row = mysqli_fetch_assoc($result)) {
      $name = mysqli_real_escape_string($conn,$row['user_first'] );
      $userumail = mysqli_real_escape_string($conn,$row['user_email']);

После этого вы сможете использовать данные строк в виде строки:

$message = "
<html>
<head>
<title>Some title</title>
</head>
<body>
<h3 style='text-align:center'>Message from: $name mail: $userumail</h3></br>
</body>
</html>
";

Таким образом, Mail будет отправлять имя пользователя и электронную почту из базы данных.: D

0 голосов
/ 27 августа 2018

Я нашел ошибки, но не уверен, поможет ли это вам, хотя ...

1) У вашей публичной функции __construct ($ name) нет закрывающей скобки}.

2) Выне нужно конвертировать $ row ['user_first'] в строку.Он уже в строковом формате, если вы храните его в виде строки в своей базе данных.

Ps. Я плохо понимаю ваш код, думаю, что смогу помочь вам лучше, если вы перепишете вопрос,

...