2014-01-06 3 views
0

나는이 웹 사이트에서 아주 좋은 로그인 시스템을 설치했다 : http://tutorialzine.com/2009/10/cool-login-system-php-jquery/로그인 시스템 send_mail 기능?

PHP에는 경험이 없다. 의견에있는 사람도 물어 본 질문이 있습니다

새 사용자가 등록하면 다음 주소에서 전자 메일을 보냅니다. [email protected] 내 전자 메일 주소를 사용하여 보낼 수 있도록 어떻게 변경합니까? . 나는 센드 메일에서 변경 시도했지만 작동하지 않습니다


편집 :
내가 문제가 난 내 자신의 도메인의 이메일을 사용할 때, PHP는 SMTP를 지원하지 않는다는 것입니다 발견 확인 또는 뭔가 그래서 내가 그것을 사용하는 것, 그래서 누군가가 phpmailer

에게

<?php 

if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly'); 

function checkEmail($str) 
{ 
    return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str); 
} 


function send_mail($from,$to,$subject,$body) 
{ 
    $headers = ''; 
    $headers .= "From: $from\n"; 
    $headers .= "Reply-to: $from\n"; 
    $headers .= "Return-Path: $from\n"; 
    $headers .= "Message-ID: <" . md5(uniqid(time())) . "@" . $_SERVER['SERVER_NAME'] . ">\n"; 
    $headers .= "MIME-Version: 1.0\n"; 
    $headers .= "Date: " . date('r', time()) . "\n"; 

    mail($to,$subject,$body,$headers); 
} 
?> 
Functions.php을 내 코드를 수정하십시오 수 있습니다, 내가 phpmailer를 설치 한 phpmailer 을 사용해야합니다

DownloadLinks.php (부분)

<?php 

define('INCLUDE_CHECK',true); 

require 'connect.php'; 
require 'functions.php'; 
// Those two files can be included only if INCLUDE_CHECK is defined 


session_name('tzLogin'); 
// Starting the session 

session_set_cookie_params(2*7*24*60*60); 
// Making the cookie live for 2 weeks 

session_start(); 

if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe']) 
{ 
    // If you are logged in, but you don't have the tzRemember cookie (browser restart) 
    // and you have not checked the rememberMe checkbox: 

    $_SESSION = array(); 
    session_destroy(); 

    // Destroy the session 
} 


if(isset($_GET['logoff'])) 
{ 
    $_SESSION = array(); 
    session_destroy(); 

    header("Location: DownloadLinks.php"); 
    exit; 
} 

if($_POST['submit']=='Login') 
{ 
    // Checking whether the Login form has been submitted 

    $err = array(); 
    // Will hold our errors 


    if(!$_POST['username'] || !$_POST['password']) 
     $err[] = 'All the fields must be filled in!'; 

    if(!count($err)) 
    { 
     $_POST['username'] = mysql_real_escape_string($_POST['username']); 
     $_POST['password'] = mysql_real_escape_string($_POST['password']); 
     $_POST['rememberMe'] = (int)$_POST['rememberMe']; 

     // Escaping all input data 

     $row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'")); 

     if($row['usr']) 
     { 
      // If everything is OK login 

      $_SESSION['usr']=$row['usr']; 
      $_SESSION['id'] = $row['id']; 
      $_SESSION['rememberMe'] = $_POST['rememberMe']; 

      // Store some data in the session 

      setcookie('tzRemember',$_POST['rememberMe']); 
     } 
     else $err[]='Wrong username and/or password!'; 
    } 

    if($err) 
    $_SESSION['msg']['login-err'] = implode('<br />',$err); 
    // Save the error messages in the session 

    header("Location: DownloadLinks.php"); 
    exit; 
} 
else if($_POST['submit']=='Register') 
{ 
    // If the Register form has been submitted 

    $err = array(); 

    if(strlen($_POST['username'])<4 || strlen($_POST['username'])>32) 
    { 
     $err[]='Your username must be between 3 and 32 characters!'; 
    } 

    if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username'])) 
    { 
     $err[]='Your username contains invalid characters!'; 
    } 

    if(!checkEmail($_POST['email'])) 
    { 
     $err[]='Your email is not valid!'; 
    } 

    if(!count($err)) 
    { 
     // If there are no errors 

     $pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6); 
     // Generate a random password 

     $_POST['email'] = mysql_real_escape_string($_POST['email']); 
     $_POST['username'] = mysql_real_escape_string($_POST['username']); 
     // Escape the input data 


     mysql_query(" INSERT INTO tz_members(usr,pass,email,regIP,dt) 
         VALUES(

          '".$_POST['username']."', 
          '".md5($pass)."', 
          '".$_POST['email']."', 
          '".$_SERVER['REMOTE_ADDR']."', 
          NOW() 

         )"); 

     if(mysql_affected_rows($link)==1) 
     { 
      send_mail( '[email protected]', 
         $_POST['email'], 
         'Registration System - Your New Password', 
         'Your password is: '.$pass); 

      $_SESSION['msg']['reg-success']='We sent you an email with your new password!'; 
     } 
     else $err[]='This username is already taken!'; 
    } 

    if(count($err)) 
    { 
     $_SESSION['msg']['reg-err'] = implode('<br />',$err); 
    } 

    header("Location: DownloadLinks.php"); 
    exit; 
} 

$script = ''; 

if($_SESSION['msg']) 
{ 
    // The script below shows the sliding panel on page load 

    $script = ' 
    <script type="text/javascript"> 

     $(function(){ 

      $("div#panel").show(); 
      $("#toggle a").toggle(); 
     }); 

    </script>'; 

} 
?> 


<!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> 

답변

0

온라인으로 검색하여 해결책을 찾았습니다.

PEAR Mail package를 설치 한 피싱 메일을 보내려면이

if(mysql_affected_rows($link)==1) 
{ 

require_once "Mail.php"; 

$from = "Name <[email protected]>"; 
$to = $_POST['email']; 
$subject = "Registration System- Your New Password"; 


$body = "Thank you for registering\n Your password is: .$pass \n Please login with your registered email and password"; 

$host = "mail.example.com"; 
$username = "[email protected]"; 
$password = "password"; 

$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 

     if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
    } else { 
    $_SESSION['msg']['reg-success']='We sent you an email with your new password! Check your junk/spam too!';} 

     } 

     else $err[]='This username is already taken!'; 
    } 
+0

출처 : http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm –

1

변화 :

1 매개 변수는 전자 메일 주소에서 (데모 테스트 @의 tutorialzine입니다 DownloadLinks.php

send_mail( '[email protected]', 
         $_POST['email'], 
         'Registration System - Your New Password', 
         'Your password is: '.$pass); 

. co.kr)를 직접 수정할 수 있습니다.

+0

까다로운 방법 등 모든 것을 변화 ... :),이 방법은 금지되어야한다 .. – user1844933

+0

내가 그 전에 너무 시도하고 didn 히 일하지 마라. : { –