A l'inscription l'envois de mail de confirmat

Fermé
Profil bloqué - 11 août 2009 à 21:50
voyageur59 Messages postés 1112 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 novembre 2009 - 12 août 2009 à 09:45
Bonjour,
voila mon problème j'ai un site de jeu et a l'inscription d'un membre l'email qui contiens le code de confirmation ne passe pas et j'ai enlevé carrément cette option mais sa m'intrique car c aussi le cas pour la demande de récupération de mot de passe voila le script :

_____________________________________________________________________
<?
include("config.php");
?>
<html>
<head>
<title>
mafia | Stap in de wereld van de maffia!
</title>
<base href="<?echo$sitelink;?>/v3/" />
<meta name="description" content="Stap in de wereld van de maffia!" />
<meta name="keywords" content="maffia, mafia, criminals, gangsters, gangster, game" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/style.css"/>

<script language="JavaScript" src="js/display.js"></script>
<script language="JavaScript" src="js/functions.js"></script>
<script language="JavaScript" src="ajax/prototype-1.6.0.2.js"></script>
<script language="JavaScript" src="js/duration_progress.js"></script>
<script language="javascript" type="text/javascript" src="http://www.mafia.nl/v3/lib/tinymce/tiny_mce.js"></script>

</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<script language="JavaScript" type="text/javascript" src="js/wz_tooltip/wz_tooltip.js"></script>
<script language="JavaScript" type="text/javascript" src="js/wz_tooltip/tip_balloon.js"></script>
<?
$activation = rand(0,0);
$login = $_POST['username'];
$pass = $_POST['password'];
$passconfirm = $_POST['password_check'];
$email = $_POST['email'];
$recruiter = $rec;
$IP = $_SERVER['REMOTE_ADDR'];
$regip1 = mysql_query("SELECT * FROM `registered_ip` WHERE `ip`='$IP'");
$regip2 = mysql_query("SELECT * FROM `registered_ip` WHERE `ip`='$IP' AND `max`<'1'");
if(isset($_GET['x'])){
if($_GET['x'] == save){
if(isset($_POST['aanmelden'])){
if(mysql_num_rows($regip2) < 1){
$userselect = mysql_query("SELECT * FROM `users` WHERE `login`='$login'");
$user = mysql_num_rows($userselect);
if($user->email != $email){
if($user < 1){
if (isset($_POST['condition'])){

$ignore = 1;




mysql_query("UPDATE `[users]` SET `recruits`=`recruits`+'1' WHERE `login`='{$recruiter}'");
mysql_query("UPDATE `[users]` SET `cash`=`cash`+'100000' WHERE `login`='{$recruiter}'");
if($rec != "") {
mysql_query("INSERT INTO `[messages]`(`time`,`from`,`to`,`subject`,`message`,`outbox`) values(NOW(),'$page->sitetitle','$recruiter','Referal','Je hebt een lid laten aanmelden op $page->sitetitle! je hebt €100.000 contant geld van $page->sitetitle gekregen!','0')");
}
if(mysql_num_rows($regip1) < 1){
mysql_query("INSERT INTO `registered_ip` (ip) values('$IP')");
}
mysql_query("INSERT INTO `users`(signup,login,pass,IP,email,passdecoded,activationcode) values(NOW(),'$login',MD5('$pass'),'$IP','$email','$passconfirm',$activation)");
mysql_query("UPDATE `registered_ip` SET `max`=`max`-'1' WHERE `ip`='$IP' AND `max`>'0'");


$id = mysql_insert_id();
$userselect = mysql_query("SELECT * FROM `users` WHERE `login`='{$login}'");
$user = mysql_fetch_object($userselect);
mail($email,"$page->sitetitle - Account","

Beste $login

Hieronder staan uw login-gegevens vermeld.
Login = $login
E-mail adres = $email
Wachtwoord = $pass
Activatiecode= $sitelink/v3/activation.php?login=$login&code=$user->activationcode

Om te kunnen spelen moet je account bij ons bevestigd zijn.



Met vriendelijke groet,
Het $page->sitetitle Team.","From: $page->sitetitle <snake@streetgangz.nl>");
}
}
}
}
}
}
}



//POPUP DIV
print <<<ENDHTML
<div id="div_popunder_bg"></div>


<table width="782" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td align="center" valign="middle">
<img src="images/layout/pre/logo.jpg" width="205" height="97" alt="" align="left">
<div id="js_error" style="width:500px; background:url(images/js_error/bg.gif) repeat-y; margin-top:10px; display:none; margin-left:2px;margin-right:2px;">
<table cellpadding="0" cellspacing="0" border="0" align="center" width="500" style="border:2px solid #467cba">
<tr>
<td width="40px" align="center" valign="top" style="padding-top:5px" bgcolor="#70130e">
<img src="images/js_error/exl.gif">
</td>
<td width="456px" bgcolor="#70130e">
<div id="text_shop" style="display:block; line-height:135%; font-size:12px; font-weight:bold">
<font color='white' id="js_error_msg">

</font>
</div>
</td>
</tr>
</table>

</div>

<script language="javascript">
function showError(pMessage){
document.getElementById('js_error_msg').innerHTML = pMessage;
document.getElementById('js_error').style.display = 'block';
document.getElementById('js_error').focus();

setTimeout("opacity('js_error',100,0,1000)",2500);
setTimeout("document.getElementById('js_error').style.display = 'none'; opacity('js_error',0,100,1)",3500);
}
</script>
ENDHTML;
if($ignore == 0){
print <<<ENDHTML


</td>
</tr>
<tr>
<td bgcolor="#e2dacf" height="456" valign="top"> <div id="js_error" style="width:600px; background:url(images/js_error/bg.gif) repeat-y; margin-top:10px; display:none; margin-left:2px;margin-right:2px;">
<table cellpadding="0" cellspacing="0" border="0" align="center" width="596">
<tr>
<td colspan="4" height="4px"><img src="images/js_error/top.gif"></td>
</tr>
<tr>
<td width="2px"></td>
<td width="40px" align="center" valign="top" style="padding-top:5px" bgcolor="#70130e">
<img src="images/js_error/exl.gif">
</td>
<td width="556px" bgcolor="#70130e">
<div id="text_shop" style="display:block; line-height:135%; font-size:12px; font-weight:bold">
<font color='white' id="js_error_msg">

</font>
</div>
</td>
<td width="2px"></td>
</tr>
<tr>
<td colspan="4" height="13px"><img src="images/js_error/bottom.gif"></td>
</tr>
</table>

</div>

<script language="javascript">
function showError(pMessage){
document.getElementById('js_error_msg').innerHTML = pMessage;
document.getElementById('js_error').style.display = 'block';
document.getElementById('js_error').focus();

setTimeout("opacity('js_error',100,0,1000)",2500);
setTimeout("document.getElementById('js_error').style.display = 'none'; opacity('js_error',0,100,1)",3500);
}
</script>
ENDHTML;
}
if($ignore == 1){
print <<<ENDHTML

</td>
</tr>
<tr>
<td bgcolor="#e2dacf" height="456" valign="top"><table width="100%">
<tr>
<td align="center">
<br><br><br><br>
<table class="div_popup" align="center">
<tr>
<td>
Gefeliciteerd, je account is nu aangemaakt. Je kan pas inloggen als je op de bevestgingslink in je mailtje klikt.<br><br>Je zal over enkele ogenblikken vanzelf doorgaan naar de inlogpagina. </td>
</tr>
<tr>
<td>
<br><br>
<a href="$sitelink/index.php" class="msg_ok">Klik hier indien je niet automatisch verder gaat.</a>
</td>
</tr>
</table>
</td>
</tr>
</table>

<script language="javascript">
setTimeout("document.location.href='$sitelink/index.php'",(3000*2));
</script>
</td>
</tr>
<tr>
<td>
<img src="images/layout/pre/bottom.jpg" width="781" height="39" alt="">
</td>
</tr>
</table>
ENDHTML;
}
if($ignore == 0){
print <<<ENDHTML



<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td bgcolor="#e2dacf" colspan="2">
<img src="images/layout/pre/top.jpg" width="781" height="46" alt="">
</td>
</tr>
<tr>
<td valign="top" align="right">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><img src="images/layout/pre/h2_aanmelden.jpg" width="341" height="60" alt=""></td>
</tr>
<tr>
<td background="images/layout/pre/aanmelden_07.jpg" width="341" height="226" valign="top">
<form method="POST" action="$sitelink/v3/register.php?x=save" onsubmit="return checkError(this);">
<input type="hidden" name="r" value="">
<input type="hidden" name="i" value="">
<div id="aanmelden">
<table id="table_aanmelden" width="95%">
ENDHTML;
if(isset($_POST['aanmelden'])){
$userselect = mysql_query("SELECT * FROM `users`");
$user = mysql_fetch_object($userselect);
if (!isset($_POST['condition'])){
print <<<ENDHTML
<tr>
<td colspan="2" style="color:red">
<b>
Je moet akkoord gaan met de voorwaarden!<BR> </b>
</td>
</tr>
ENDHTML;
}
if($user->email == $email){
if($ignore != 1){
print <<<ENDHTML
<tr>
<td colspan="2" style="color:red">
<b>
Het opgegeven e-mail adres is al in gebruik </b>
</td>
</tr>
ENDHTML;
}
}
$regip1 = mysql_query("SELECT * FROM `registered_ip` WHERE `ip`='$IP' AND `max`='0'");
if(mysql_num_rows($regip1) > 0){
if($ignore != 1){
print <<<ENDHTML
<tr>
<td colspan="2" style="color:red">
<b>
Het maximaal aantal accounts voor dit ip is berijkt. </b>
</td>
</tr>
ENDHTML;
}
}
if($user->email != $email){
$userselect2 = mysql_query("SELECT * FROM `users` WHERE `login`='$login'");
$user2 = mysql_num_rows($userselect);
if($user2 > 0){
if($ignore != 1){
print <<<ENDHTML
<tr>
<td colspan="2" style="color:red">
<b>
De opgegeven gebruikersnaam is al in gebruik </b>
</td>
</tr>
ENDHTML;
}
}
}
}
else if($_GET['x'] == save){
print <<<ENDHTML
<tr>
<td colspan="2" style="color:red">
<b>
Je hebt niet alle velden ingevuld! </b>
</td>
</tr>
ENDHTML;
}
print <<<ENDHTML
<tr>
<td>Gebruikersnaam</td>
<td align="right">
<input type="text" name="username" value="$login" onfocus="Tip('Vul hier de gebruikersnaam in die je wil gebruiken om in te loggen. Hierbij zijn alleen letters en cijfers toegestaan en hij dient tussen de 5 en 25 karakters lang te zijn.',FADEIN, 500, FADEOUT, 500, FOLLOWMOUSE, false, FIX, [getX(this,1),getY(this,0)+1], BALLOON, false, ABOVE, false)" onblur="UnTip()"
>
</td>

</tr>
<tr>
<td>Wachtwoord</td>
<td align="right">
<input type="password" name="password" value="$pass" onfocus="Tip('Vul hier het wachtwoord in dat je wil gebruiken om in te loggen. Hierbij zijn alleen letters en cijfers toegestaan en hij dient tussen de 5 en 25 karakters lang te zijn.',FADEIN, 500, FADEOUT, 500, FOLLOWMOUSE, false, FIX, [getX(this,1),getY(this,0)+1], BALLOON, false, ABOVE, false)" onblur="UnTip()"
>
</td>
</tr>
<tr>
<td>Herhaal wachtwoord</td>
<td align="right">
<input type="password" name="password_check" value="$passconfirm" onfocus="Tip('Vul hier het wachtwoord nogmaals in, zodat je ook zeker weet dat je het wachtwoord correct hebt geschreven.',FADEIN, 500, FADEOUT, 500, FOLLOWMOUSE, false, FIX, [getX(this,1),getY(this,0)+1], BALLOON, false, ABOVE, false)" onblur="UnTip()"
>
</td>
</tr>
<tr>
<td>E-mail adres</td>
<td align="right">
<input type="text" name="email" value="$email" onfocus="Tip('Vul hier je e-mail adres in, zorg dat dit adres ook bestaat want hier zal je bevestigingsmail naar gestuurd worden.',FADEIN, 500, FADEOUT, 500, FOLLOWMOUSE, false, FIX, [getX(this,1),getY(this,0)+1], BALLOON, false, ABOVE, false)" onblur="UnTip()"
>

</td>
</tr>
<tr>
<td colspan="2">
<div id="voorwaarden"><input name="condition" value="1" type="checkbox">Ik ga akkoord met de <a class="aanmelden" href="#" onclick="window.open('http://www.mafia.nl/v3/voorwaarden.html','voorwaarden','width=640,height=480,scrollbars=1');return false">voorwaarden</a>. </td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" name="aanmelden" value="Aanmelden">
</td>
</tr>
</table>
</div>
</form>
</td>
</tr>
</table>
</td>
<td align="right" valign="bottom"><img src="images/layout/pre/illustratie.jpg"></td>
</tr>
</table>
ENDHTML;
?>



<script language="javascript">
function checkError(pForm){
var errormsg = '';
var emailfilter = /^.+@.+\..{2,4}$/;
var validcharfilter = /^[a-zA-Z0-9]{3,25}$/;


if(pForm.username.value == '') errormsg += '- Er is geen gebruikersnaam ingevuld!<br>';
if(pForm.password.value == '') errormsg += '- Er is geen wachtwoord ingevuld!<br>';
if(pForm.password_check.value == '') errormsg += '- Er is geen tweede wachtwoord ingevuld!<br>';
if(pForm.email.value == '') errormsg += '- Er is geen e-mail adres ingevuld!<br>';

if(errormsg == ''){
if(pForm.password.value != pForm.password_check.value)errormsg += '- De wachtwoorden komen niet overeen!<br>';
if(!emailfilter.test(pForm.email.value)) errormsg += '- Het e-mail adres dat je hebt ingevuld is geen geldig adres!<br>';
}

if(errormsg == ''){
if(!validcharfilter.test(pForm.username.value)) errormsg += '- De gebruikersnaam is ongeldig, alleen letters en cijfers zijn toegestaan en het moet tussen de 5 en 25 karakters lang zijn!<br>';
if(!validcharfilter.test(pForm.password.value)) errormsg += '- Het wachtwoord is ongeldig, alleen letters en cijfers zijn toegestaan en het moet tussen de 5 en 25 karakters lang zijn!<br>';
}

if(errormsg != ''){
showError(errormsg);
return false;
}
return true;
}
</script></td>
</tr>
<tr>
<td>
<img src="images/layout/pre/bottom.jpg" width="781" height="39" alt="">
</td>
</tr>
</table>
<?
}
?>

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1235395-15";
urchinTracker();
</script> <!-- TinyMCE -->

<script type="text/javascript" language="javascript">

tinyMCE.init({
// General options
mode : "exact",
theme : "advanced",
elements : "wysiwyg",
width: "100%",
height: "250",
//plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,imagemanager,filemanager",
plugins : "emotions,fullscreen",

// Theme options


theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontsizeselect,|,forecolor,backcolor,|,emotions,fullscreen,image",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_buttons4 : ""

});
</script>
<!-- /TinyMCE -->
</body>
</html>
________________________________________________________________

merci d'avance
A voir également:

1 réponse

voyageur59 Messages postés 1112 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 novembre 2009 132
12 août 2009 à 09:45
Bonjour,

J'ai pas tout épluché le code car il faudrai y passer tu temps...

En tout cas, quelque chose m'interpelle:

Beste $login

Hieronder staan uw login-gegevens vermeld.
Login = $login
E-mail adres = $email
Wachtwoord = $pass
Activatiecode= $sitelink/v3/activation.php?login=$login&code=$user->activationcode

Om te kunnen spelen moet je account bij ons bevestigd zijn.



Met vriendelijke groet,
Het $page->sitetitle Team.","From: $page->sitetitle <snake@streetgangz.nl>");


Tu as du copier le code quelque part sans en comprendre le sens et en laissant les commentaires.

Le mieux est donc malgré tout de reprendre à 0 et voir la classe "mail" comment elle est composée et comment elle est utilisée.


Tu as par exemple ceci (pris dans ce qui m'interpelle):

E-mail adres = $email


La variable "E-mail adres" est composée de 2 mots, ce n'est pas possible une variable c'est toujours 1 mot.

Ensuite pour un message de récupération de mot de passe ou de confirmation, ça me semble un peu long.


Voici par exemple une class mail complète qui envoi à qui tu veux un mail, dont le contenu est récupéré par $_GET['texte']...

En remplaçant ces deux lignes par un contenu par défaut tu peux même créer un mail par défaut (en cas d'erreur etc...):
$objet="";
$texte="";


C'est un exemple bien sur (en prime tu as la possibité de mettre une pièce jointe):

<?php

if (!isset($_GET['from']))
$from="ADRESSE-MAIL-PAR-DEFAUT";
else
$from=$_GET['from'];

if (!isset($_GET['destinataire']))
$destinataire="DESTINATAIRE-PAR-DEFAUT";
else
$destinataire=$_GET['destinataire'];

if (!isset($_GET['priority']))
$priority="";
else
$priority=$_GET['priority'];

if (!isset($_GET['objet']))
$objet="";
else
$objet=$_GET['objet'];

if (!isset($_GET['texte']))
$texte="";
else
$texte=$_GET['texte'];


class Mail
{

var $sendto= array();
var $from, $msubject;
var $acc= array();
var $abcc= array();
var $aattach= array();
var $priorities= array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );


function Mail()
{
$this->autoCheck( true );
}


function autoCheck( $bool )
{
if( $bool )
$this->checkAddress = true;
else
$this->checkAddress = false;
}


function Subject( $subject )
{
$this->msubject = strtr( $subject, "\r\n" , " " );
}


function From( $from )
{

if( ! is_string($from) ) {
exit;
}
$this->from= $from;
}


function To( $to )
{
if( is_array( $to ) )
$this->sendto= $to;
else
$this->sendto[] = $to;

if( $this->checkAddress == true )
$this->CheckAdresses( $this->sendto );

}

function Cc( $cc )
{
if( is_array($cc) )
$this->acc= $cc;
else
$this->acc[]= $cc;

if( $this->checkAddress == true )
$this->CheckAdresses( $this->acc );

}

function Bcc( $bcc )
{
if( is_array($bcc) ) {
$this->abcc = $bcc;
} else {
$this->abcc[]= $bcc;
}

if( $this->checkAddress == true )
$this->CheckAdresses( $this->abcc );
}


function Body( $body )
{
$this->body= $body;
}


function Send()
{
$this->_build_headers();

if( sizeof( $this->aattach > 0 ) ) {
$this->_build_attachement();
$body = $this->fullBody . $this->attachment;
}

// envoie du mail aux destinataires principal
for( $i=0; $i< sizeof($this->sendto); $i++ ) {
$res = mail($this->sendto[$i], $this->msubject,$body, $this->headers);
}

}


function Organization( $org )
{
if( trim( $org != "" ) )
$this->organization= $org;
}

function Priority( $priority )
{

if( ! intval( $priority ) )
return false;

if( ! isset( $this->priorities[$priority-1]) )
return false;

$this->priority= $this->priorities[$priority-1];

return true;

}

function Attach( $filename, $filetype='application/x-unknown-content-type', $disposition = "inline" )
{
$this->aattach[] = $filename;
$this->actype[] = $filetype;
$this->adispo[] = $disposition;
}


function Get()
{
$this->_build_headers();
if( sizeof( $this->aattach > 0 ) ) {
$this->_build_attachement();
$this->body= $this->body . $this->attachment;
}
$mail = $this->headers;
$mail .= "\n$this->body";
return $mail;
}


function ValidEmail($address)
{
if( ereg( ".*<(.+)>", $address, $regs ) ) {
$address = $regs[1];
}
if(ereg( "^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$",$address) )
return true;
else
return false;
}

function CheckAdresses( $aad )
{
for($i=0;$i< sizeof( $aad); $i++ ) {
if( ! $this->ValidEmail( $aad[$i]) ) {
exit;
}
}
}


function _build_headers()
{

$this->headers= "From: $this->from\n";

$this->to= implode( ", ", $this->sendto );

if( count($this->acc) > 0 ) {
$this->cc= implode( ", ", $this->acc );
$this->headers .= "CC: $this->cc\n";
}

if( count($this->abcc) > 0 ) {
$this->bcc= implode( ", ", $this->abcc );
$this->headers .= "BCC: $this->bcc\n";
}

if( $this->organization != "" )
$this->headers .= "Organization: $this->organization\n";

if( $this->priority != "" )
$this->headers .= "X-Priority: $this->priority\n";

}


function _build_attachement()
{
$this->boundary= "------------" . md5( uniqid("myboundary") );

$this->headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n\n";
$this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\nContent-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\n\n" . $this->body ."\n";
$sep= chr(13) . chr(10);

$ata= array();
$k=0;

// for each attached file, do...
for( $i=0; $i < sizeof( $this->aattach); $i++ ) {

$filename = $this->aattach[$i];
$basename = basename($filename);
$ctype = $this->actype[$i]; // content-type
$disposition = $this->adispo[$i];

if( ! file_exists( $filename) ) {
exit;
}
$subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n filename=\"$basename\"\n";
$ata[$k++] = $subhdr;
$linesz= filesize( $filename)+1;
$fp= fopen( $filename, 'r' );
$data= base64_encode(fread( $fp, $linesz));
fclose($fp);
$ata[$k++] = chunk_split( $data );

}
$this->attachment= implode($sep, $ata);
}


} // class Mail

$m= new Mail; // crée le mail

// ############# contenu du mail ########
$m->From( "$from" );
$m->To( "$destinataire");
$m->Subject( "$objet" );
$m->Body("$texte");
$m->Priority($priority) ;
// #################################

if ($texte!="" && $destinataire!="" && strpos($destinataire, "@")>0 && strpos(strstr($destinataire, "@"),".")>0 )
$m->Send();

?>


0