Solved

Script to send email not working correctly..

Posted on 2007-11-19
3
253 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 500 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

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

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

Part of the Global Positioning System A geocode (https://developers.google.com/maps/documentation/geocoding/) is the major subset of a GPS coordinate (http://en.wikipedia.org/wiki/Global_Positioning_System), the other parts being the altitude and t…
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.

726 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