Comunidad de diseño web y desarrollo en internet online

PHP Y MAIL!

Citar            
MensajeEscrito el 01 Oct 2009 04:21 pm
Hola, estoy intentando adaptar el phpmailer para usar el smtp de gmail para enviar un mail de registro, y recuperacion de password... el codigo actual funciona, pero en localhost no... y no trabaja con smtp... intente ponerle el phpmailer pero tampoco me funciona :(

este es mi reg.php

Código PHP :

<?php
define('INSIDE' , true);
define('INSTALL' , false);
define('LOGIN'   , true);

$InLogin = true;

$xgp_root = './';
include($xgp_root . 'extension.inc.php');
include($xgp_root . 'common.' . $phpEx);

includeLang('PUBLIC');

$parse = $lang;

function sendpassemail($emailaddress, $password)
{
   global $game_config, $lang;

   $email             = parsetemplate($lang['reg_mail_text_part1'] . $password . $lang['reg_mail_text_part2'] . GAMEURL, $parse);
   $status          = mymail($emailaddress, $lang['register_at'] . $game_config['game_name'], $email);

   return $status;
}

function mymail($to, $title, $body, $from = '')
{
   $from = trim($from);

   if (!$from)
      $from = ADMINEMAIL;

   $rp = ADMINEMAIL;

   $head = '';
   $head .= "Content-Type: text/html \r\n";
   $head  .= "charset: iso-8859-1 \r\n";
   $head .= "Date: " . date('r') . " \r\n";
   $head .= "Return-Path: $rp \r\n";
   $head .= "From: $from \r\n";
   $head .= "Sender: $from \r\n";
   $head .= "Reply-To: $from \r\n";
   $head .= "Organization: $org \r\n";
   $head .= "X-Sender: $from \r\n";
   $head .= "X-Priority: 3 \r\n";
   $body = str_replace("\r\n", "\n", $body);
   $body = str_replace("\n", "\r\n", $body);

   return mail($to, $title, $body, $head);
}

if ($_POST)
{
   $errors = 0;
   $errorlist = "";

   $_POST['email'] = strip_tags($_POST['email']);
   if (!is_email($_POST['email']))
   {
      $errorlist .= $lang['invalid_mail_adress'];
      $errors++;
   }

   if (!$_POST['character'])
   {
      $errorlist .= $lang['empty_user_field'];
      $errors++;
   }

   if (strlen($_POST['passwrd']) < 4)
   {
      $errorlist .= $lang['password_lenght_error'];
      $errors++;
   }

   if (preg_match("/[^A-z0-9_\-]/", $_POST['character']) == 1)
   {
      $errorlist .= $lang['user_field_no_alphanumeric'];
      $errors++;
   }

   if ($_POST['rgt'] != 'on')
   {
      $errorlist .= $lang['terms_and_conditions'];
      $errors++;
   }

   $ExistUser = doquery("SELECT `username` FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['character']) . "' LIMIT 1;", 'users', true);
   if ($ExistUser)
   {
      $errorlist .= $lang['user_already_exists'];
      $errors++;
   }

   $ExistMail = doquery("SELECT `email` FROM {{table}} WHERE `email` = '" . mysql_escape_string($_POST['email']) . "' LIMIT 1;", 'users', true);
   if ($ExistMail)
   {
      $errorlist .= $lang['mail_already_exists'];
      $errors++;
   }

   if ($errors != 0)
   {
      message ($errorlist, "reg.php", "3", false, false);
   }
   else
   {
      $newpass   = $_POST['passwrd'];
      $UserName    = $_POST['character'];
      $UserEmail    = $_POST['email'];
      $md5newpass = md5($newpass);

      $QryInsertUser = "INSERT INTO {{table}} SET ";
      $QryInsertUser .= "`username` = '" . mysql_escape_string(strip_tags($UserName)) . "', ";
      $QryInsertUser .= "`email` = '" . mysql_escape_string($UserEmail) . "', ";
      $QryInsertUser .= "`email_2` = '" . mysql_escape_string($UserEmail) . "', ";
      $QryInsertUser .= "`ip_at_reg` = '" . $_SERVER["REMOTE_ADDR"] . "', ";
      $QryInsertUser .= "`id_planet` = '0', ";
      $QryInsertUser .= "`register_time` = '" . time() . "', ";
      $QryInsertUser .= "`password`='" . $md5newpass . "';";
      doquery($QryInsertUser, 'users');

      $NewUser = doquery("SELECT `id` FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['character']) . "' LIMIT 1;", 'users', true);

      $LastSettedGalaxyPos = $game_config['LastSettedGalaxyPos'];
      $LastSettedSystemPos = $game_config['LastSettedSystemPos'];
      $LastSettedPlanetPos = $game_config['LastSettedPlanetPos'];

      while (!isset($newpos_checked))
      {
         for ($Galaxy = $LastSettedGalaxyPos; $Galaxy <= MAX_GALAXY_IN_WORLD; $Galaxy++)
         {
            for ($System = $LastSettedSystemPos; $System <= MAX_SYSTEM_IN_GALAXY; $System++)
            {
               for ($Posit = $LastSettedPlanetPos; $Posit <= 4; $Posit++)
               {
                  $Planet = round (rand (4, 12));

                  switch ($LastSettedPlanetPos)
                  {
                     case 1:
                        $LastSettedPlanetPos += 1;
                     break;
                     case 2:
                        $LastSettedPlanetPos += 1;
                     break;
                     case 3:
                        if ($LastSettedSystemPos == MAX_SYSTEM_IN_GALAXY)
                        {
                           $LastSettedGalaxyPos += 1;
                           $LastSettedSystemPos = 1;
                           $LastSettedPlanetPos = 1;
                           break;
                        }
                        else
                        {
                           $LastSettedPlanetPos = 1;
                        }

                        $LastSettedSystemPos += 1;
                     break;
                  }
                  break;
               }
               break;
            }
            break;
         }

         $QrySelectGalaxy = "SELECT * ";
         $QrySelectGalaxy .= "FROM {{table}} ";
         $QrySelectGalaxy .= "WHERE ";
         $QrySelectGalaxy .= "`galaxy` = '" . $Galaxy . "' AND ";
         $QrySelectGalaxy .= "`system` = '" . $System . "' AND ";
         $QrySelectGalaxy .= "`planet` = '" . $Planet . "' ";
         $QrySelectGalaxy .= "LIMIT 1;";
         $GalaxyRow = doquery($QrySelectGalaxy, 'galaxy', true);

         if ($GalaxyRow["id_planet"] == "0")
            $newpos_checked = true;

         if (!$GalaxyRow)
         {
            CreateOnePlanetRecord ($Galaxy, $System, $Planet, $NewUser['id'], $UserPlanet, true);
            $newpos_checked = true;
         }
         if ($newpos_checked)
         {
            doquery("UPDATE {{table}} SET `config_value` = '" . $LastSettedGalaxyPos . "' WHERE `config_name` = 'LastSettedGalaxyPos';", 'config');
            doquery("UPDATE {{table}} SET `config_value` = '" . $LastSettedSystemPos . "' WHERE `config_name` = 'LastSettedSystemPos';", 'config');
            doquery("UPDATE {{table}} SET `config_value` = '" . $LastSettedPlanetPos . "' WHERE `config_name` = 'LastSettedPlanetPos';", 'config');
         }
      }
      $PlanetID = doquery("SELECT `id` FROM {{table}} WHERE `id_owner` = '". $NewUser['id'] ."' LIMIT 1;" , 'planets', true);

      $QryUpdateUser = "UPDATE {{table}} SET ";
      $QryUpdateUser .= "`id_planet` = '" . $PlanetID['id'] . "', ";
      $QryUpdateUser .= "`current_planet` = '" . $PlanetID['id'] . "', ";
      $QryUpdateUser .= "`galaxy` = '" . $Galaxy . "', ";
      $QryUpdateUser .= "`system` = '" . $System . "', ";
      $QryUpdateUser .= "`planet` = '" . $Planet . "' ";
      $QryUpdateUser .= "WHERE ";
      $QryUpdateUser .= "`id` = '" . $NewUser['id'] . "' ";
      $QryUpdateUser .= "LIMIT 1;";
      doquery($QryUpdateUser, 'users');

      $from       = $lang['welcome_message_from'];
      $sender    = $lang['welcome_message_sender'];
      $Subject    = $lang['welcome_message_subject'];
      $message    = $lang['welcome_message_content'];
      SendSimpleMessage($NewUser['id'], $sender, $Time, 1, $from, $Subject, $message);

      doquery("UPDATE {{table}} SET `config_value` = `config_value` + '1' WHERE `config_name` = 'users_amount' LIMIT 1;", 'config');

      @include('config.php');
      $cookie = $NewUser['id'] . "/%/" . $UserName . "/%/" . md5($md5newpass . "--" . $dbsettings["secretword"]) . "/%/" . 0;
      setcookie($game_config['COOKIE_NAME'], $cookie, 0, "/", "", 0);

      unset($dbsettings);

      header("location:game.php?page=overview");
   }
}
else
{
   $parse['servername']   = $game_config['game_name'];
   $parse['forum_url']    = $game_config['forum_url'];
   display (parsetemplate(gettemplate('public/registry_form'), $parse), false, '',false, false);
}
?>


index.php

Código PHP :

<?php
define('INSIDE'  , true);
define('INSTALL' , false);
define('LOGIN'   , true);

$InLogin = true;

$xgp_root = './';
include($xgp_root . 'extension.inc.php');
include($xgp_root . 'common.' . $phpEx);

includeLang('PUBLIC');
$parse = $lang;
switch($_GET[page])
{
   case'lostpassword':
      function sendnewpassword($mail)
      {
         global $lang;

         $ExistMail = doquery("SELECT `email` FROM {{table}} WHERE `email` = '". $mail ."' LIMIT 1;", 'users', true);

         if (empty($ExistMail['email']))
         {
            message($lang['mail_not_exist'], "index.php?modo=claveperdida",2, false, false);
         }
         else
         {
            $Caracters="aazertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN1234567890";
            $Count=strlen($Caracters);
            $NewPass="";
            $Taille=6;
            srand((double)microtime()*1000000);
            for($i=0;$i<$Taille;$i++)
            {
               $CaracterBoucle=rand(0,$Count-1);
               $NewPass=$NewPass.substr($Caracters,$CaracterBoucle,1);
            }
            $Title    = $lang['mail_title'];
            $Body    = $lang['mail_text'];
            $Body  .= $NewPass;
            mail($mail,$Title,$Body);
            $NewPassSql = md5($NewPass);
            $QryPassChange = "UPDATE {{table}} SET ";
            $QryPassChange .= "`password` ='". $NewPassSql ."' ";
            $QryPassChange .= "WHERE `email`='". $mail ."' LIMIT 1;";
            doquery( $QryPassChange, 'users');
         }
      }

      if($_POST)
      {
         sendnewpassword($_POST['email']);
         message($lang['mail_sended'], "./",2, false, false);
      }
      else
      {
         $parse['forum_url']    = $game_config['forum_url'];
         display(parsetemplate(gettemplate('public/lostpassword'), $parse), false, '',false, false);
      }
   break;
   default:
      if ($_POST)
      {
         $login = doquery("SELECT `id`,`username`,`password`,`banaday` FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['username']) . "' AND `password` = '" . md5($_POST['password']) . "' LIMIT 1", "users", true);

         if($login['banaday'] <= time() && $login['banaday'] != '0')
         {
            doquery("UPDATE {{table}} SET `banaday` = '0', `bana` = '0' WHERE `username` = '".$login['username']."' LIMIT 1;", 'users');
            doquery("DELETE FROM {{table}} WHERE `who` = '".$login['username']."'",'banned');
         }

         if ($login)
         {
            if (isset($_POST["rememberme"]))
            {
               $expiretime = time() + 31536000;
               $rememberme = 1;
            }
            else
            {
               $expiretime = 0;
               $rememberme = 0;
            }

            @include('config.php');
            $cookie = $login["id"] . "/%/" . $login["username"] . "/%/" . md5($login["password"] . "--" . $dbsettings["secretword"]) . "/%/" . $rememberme;
            setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0);

            doquery("UPDATE `{{table}}` SET `current_planet` = `id_planet` WHERE `id` ='".$login["id"]."'", 'users');

            unset($dbsettings);
            header("Location: ./game.php?page=overview");
            exit;
         }
         else
         {
            message($lang['login_error'], "./", 2, false, false);
         }
      }
      else
      {
         $parse['servername']   = $game_config['game_name'];
         $parse['forum_url']    = $game_config['forum_url'];


         display(parsetemplate(gettemplate('public/index_body'), $parse), false, '',false, false);
      }
}
?>

Por sk0rpi0n

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Oct 2009 06:40 pm
debes activar un modulo ahora mismo se me escapa el nombre mira las especificaciones tecnicas del phpmailer es eso o no estas codificando bn aunque a mi me funciono perfecto en local y me conecto a gmail yo tengo el easyphp depronto debe ser por eso saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 01 Oct 2009 09:42 pm
no :S ya lo comprobe cientos de veces y esta bien.. pero aun asi no me conecta :S sera por el xampp??

alguna idea alguien?

Desde ya muchas gracias por contestar :)

Por sk0rpi0n

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.