?
Solved

Script to send email not working correctly..

Posted on 2007-11-19
3
Medium Priority
?
264 Views
Last Modified: 2013-12-13
I have a page that I am going to use to regenerate a forgotten password, store it to the db and then send it to a page that emails it to the user.  For some reason my email page isn't working.  I am getting an error "Parse error: parse error, unexpected T_ECHO in /home/content/t/f/d/tfd2007/html/mag/emailpw.php on line 48" which is the line in the mail() script - $message = 'Your Username is: '.echo $row_rs_user['username']."\r\n".'Your Password is: '. echo $newpw;

I know all the sessions are set because i have echoed them in the body and see that they are correct as well as the record set information.  What am I doing wrong?  I'm sure its just a missed () or something simple but my brain is just fried from looking at it.  Here is the entire page code..

Thanks for any help!

<?php require_once('Connections/MagazineDB.php');
session_start();
 ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
$newpw = $_SESSION['nwpw'];
$user = $_SESSION['username'];
$colname_rs_user = "-1";
if (isset($_SESSION['username'])) {
  $colname_rs_user = $_SESSION['username'];
}
mysql_select_db($database_MagazineDB, $MagazineDB);
$query_rs_user = sprintf("SELECT * FROM users WHERE username = %s", GetSQLValueString($colname_rs_user, "text"));
$rs_user = mysql_query($query_rs_user, $MagazineDB) or die(mysql_error());
$row_rs_user = mysql_fetch_assoc($rs_user);
$totalRows_rs_user = mysql_num_rows($rs_user);

//Start Email
$to      = $row_rs_user['email_address'];
$subject = 'Your Login Information';
$message = 'Your Username is: '.echo $row_rs_user['username']."\r\n".'Your Password is: '. echo $newpw;
$headers = 'From: craig@topfueldesign.com' . "\r\n" .
    'Reply-To: craig@topfueldesign.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
//End Email
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<meta http-equiv="Refresh" content="8;URL=index.php" />
</head>

<body>
<div id="page">
  <div id="page_content">
    <p align="center">Your New Password Has Been Sent To <?php echo $row_rs_user['email_address'] ?>.<br />
    <a href="index.php">Redirecting..</a>
  </div>
</div>
</body>
</html>
<?php
mysql_free_result($rs_user);
?>
0
Comment
Question by:graphxdiva
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
administradores earned 2000 total points
ID: 20313463
replace that line with this one, removed invalid echos:


echo 'Your Username is: '. $row_rs_user['username']."\r\n".'Your Password is: '. $newpw;

Open in new window

0
 
LVL 5

Expert Comment

by:administradores
ID: 20313474
But as i guess also the code is wrong, you want to set the message not to output it, so replace with the next one:

$message = 'Your Username is: '.$row_rs_user['username']."\r\n".'Your Password is: '. $newpw;

Open in new window

0
 
LVL 4

Expert Comment

by:simonkin
ID: 20313485
Try this, just a syntax error
<?php require_once('Connections/MagazineDB.php');
session_start();
 ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
$newpw = $_SESSION['nwpw'];
$user = $_SESSION['username'];
$colname_rs_user = "-1";
if (isset($_SESSION['username'])) {
  $colname_rs_user = $_SESSION['username'];
}
mysql_select_db($database_MagazineDB, $MagazineDB);
$query_rs_user = sprintf("SELECT * FROM users WHERE username = %s", GetSQLValueString($colname_rs_user, "text"));
$rs_user = mysql_query($query_rs_user, $MagazineDB) or die(mysql_error());
$row_rs_user = mysql_fetch_assoc($rs_user);
$totalRows_rs_user = mysql_num_rows($rs_user);
 
//Start Email
$to      = $row_rs_user['email_address'];
$subject = 'Your Login Information';
$message = 'Your Username is: ' . $row_rs_user['username'] . '\r\n' . 'Your Password is: ' . $newpw;
$headers = 'From: craig@topfueldesign.com' . "\r\n" .
    'Reply-To: craig@topfueldesign.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
mail($to, $subject, $message, $headers);
//End Email
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<meta http-equiv="Refresh" content="8;URL=index.php" />
</head>
 
<body>
<div id="page">
  <div id="page_content">
    <p align="center">Your New Password Has Been Sent To <?php echo $row_rs_user['email_address'] ?>.<br />
    <a href="index.php">Redirecting..</a>
  </div>
</div>
</body>
</html>
<?php
mysql_free_result($rs_user);
?>

Open in new window

0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
In this blog, we’ll look at how improvements to Percona XtraDB Cluster improved IST performance.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question