[英]Sending email to email address retrieved from database Initiated by session in PHP Array to string conversion?
[英]Sending email to email address retrieved from database Initiated by session in PHP
当您启动会话时,我正在尝试创建一个系统,然后将电子邮件发送到用户创建帐户的电子邮件。 我遇到了尝试解决的错误,但无法解决。 这是
错误:
注意:第37行的C:\\ xampp \\ htdocs \\ LoginSystem \\ index.php中的数组到字符串的转换
致命错误:在第42行的C:\\ xampp \\ htdocs \\ LoginSystem \\ index.php中调用未定义的方法PDOStatement :: fetch_assoc()
我对php很陌生,一直在使用代码段,但显然不能正确应用它们。
任何帮助表示赞赏,在此先感谢。
<?php
require 'assests/database.php';
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Welcome to your web app</title>
<link rel="stylesheet" stype="text/css" href="assests/style.css">
<link href="https://fonts.googleapis.com/css?family=Comfortaa" rel="stylesheet">
</head>
</head>
<body>
<div class="header">
<a href="index.php"> Your App Name</a>
</div>
<?php if( isset($_SESSION['user_id']) ): ?>
<?php
$sql = 'select email from noodles_gamification where ID = "'.$_SESSION['user_id'].'"';
$result = $conn->query($sql);
$email = "";
// output data of each row
while($row = $result->fetch_assoc()) {
$email = $row["email"];
}
/*
$recipients = array();
while($row = mysql_fetch_array($stmt)) {
$recipients = $row[0]['email'];
} */
$to = $email;
$subject = "E-mail subject";
$body = "E-mail body";
$headers = "From: noreply@prakashsoft.esy.es" ;
mail($to, $subject, $body, $headers);
?>
<br /> Welcome you are succesfully loggin in!
<a href="assests/logout.php">Logout?</a>
<?php else : ?>
<h1>Please login or register</h1>
<a href="assests/login.php">login</a> or
<a href="assests/register.php">Register</a>
<?php endif; ?>
</body>
</html>
您的第一条NOTICE
消息说,您尝试将array
转换为string
。 您的会话似乎包含一个数组。
错误消息说, PDOStatement::fetch_assoc()
不存在。 您正在寻找的方法是PDOStatement::fetch()
,请参见http://php.net/manual/de/pdostatement.fetch.php
由于您只想获得一个电子邮件地址(我想表中的ID是唯一的),因此不需要任何循环。 因此,您可以通过以下方式替换while
循环:
$row = $result->fetch(PDO::FETCH_ASSOC);
$email = $row["email"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.