1. Aqui en el paso i se hace un regustro basico: nombre, apellido, email, nick, (no password) en ves de la password se le asigna un numero aleatorio de la siguiente manera:
Código PHP:
<?php
$aleatorio = rand(100,999);
?>
Código HTML:
<input type="Hidde" value="<? echo $aleatorio; ?>" name="CODE" >
Código PHP:
<?php
require("../Connections/conexion.php");
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$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;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "reg1")) {
$insertSQL = sprintf("INSERT INTO premium_user (Nombre, Apellido, Email, Nick_P, codigo, Cuenta_paypal, Pais, Estado, Ciudad) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellido'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['nick'], "text"),
GetSQLValueString($_POST['code'], "int"),
GetSQLValueString($_POST['email_p'], "text"),
GetSQLValueString($_POST['pais'], "text"),
GetSQLValueString($_POST['depto'], "text"),
GetSQLValueString($_POST['ciudad'], "text"));
mysql_select_db($database_conexion, $conexion);
$Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error());
$insertGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['nick'])) {
$loginUsername=$_POST['nick'];
$password2= $_POST['pass'];
$password = md5($password2);
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "#";
$MM_redirectLoginFailed = "#";
$MM_redirecttoReferrer = false;
mysql_select_db($database_conexion, $conexion);
$LoginRS__query=sprintf("SELECT nick, password FROM users WHERE nick=%s AND password=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $conexion) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
header("location: ../premium_register/comfirm.php");
?>
Código HTML:
<form method="POST" action="<?php echo $editFormAction; ?>" name="reg1" id="reg1" > <fieldset title="Datos personales" > <h3>Datos personales:</h3> <table width="381" border="0" cellspacing="0" cellpadding="0"> <tr> <th width="186" scope="col"> </th> <th width="195" scope="col">Datos</th> </tr> <tr> <td>Nombre:</td> <td><input name="nombre" type="text" class="textbox" id="nombre" maxlength="30" /></td> </tr> <tr> <td>Apellido:</td> <td><input name="apellido" type="text" class="textbox" id="apellido" maxlength="30" /></td> </tr> <tr> <td>Email:</td> <td><input name="email" type="text" class="textbox" id="email" maxlength="60" /></td> </tr> </table> <p> </p> </fieldset> <fieldset> <h3>Datos de la cuenta</h3> <table width="381" border="0" cellspacing="0" cellpadding="0"> <tr> <th width="186" scope="col"> </th> <th width="195" scope="col">Datos</th> </tr> <tr> <td>Nick*:</td> <td><input name="nick" type="text" class="textbox" id="nick" maxlength="30" /></td> </tr> <tr> <td>Password: <input type="hidden" name="code" id="code" value="<?php $aleatorio = rand(100,9999); echo $aleatorio; ?>" /></td> <td>Al final del proceso configura el password</td> </tr> </table> <p>Su cuenta caducara en 90 Dias... (Para volver a utilizarla Tienes que volverte a registrar)</p> </fieldset> <fieldset> <h3>Datos de recupereo y contrato</h3> <table width="381" border="0" cellspacing="0" cellpadding="0"> <tr> <th width="186" scope="col"> </th> <th width="195" scope="col">Datos</th> </tr> <tr> .... aqui hay mas codigo pero es muy largo <input type="hidden" name="MM_insert" value="reg1" /> </form>
2. paso dos, pago en PayPal, aqui el usuario paga la suscripcion en un pago estandar es decir el usuario es redirigido a PayPal a completar el proseso de pago al finalizar dicho proseso el usuario es redirigido a mi pagina de finalizacion
(esta la estoy construllendo)
aqui en la pagina de finalizacion el usuario introduce el nick y le da a un submit el que le envia un correo electronico con el codigo del primer paso, ese codigo se le pide al usuario junto a el nick para entrar a una pagina la cual hace un UPDATE en la tabla user_premum de la DB y en dicha pagina el usuario introduce una nueva contraceña para entrar a la seccion premium, ahora vienen mis preguntas:
el sistema tiene un grave problema, es que paypal no redirige automaticamente a los usuarios a la pagina de finalizacion sino que les muestra un pequeño link
¿en ese caso como hago para que mis usuarios vean el link o sean redirigidos?
otra cosa es que como el INSERT se hace al principio del proseso, si el usuario en algun momento Cancela el proceso de suscripcion lo que pasaria es que igual no pagara recibiria el EMAIL con el codigo de activacion y el nick, entonces podra entrar sin tener que pagar la suscripcion, mi pregunta aqui es que si PayPal no tiene algun codigo o algo para que me genere un codigo aleatorio y envie dicho codigo al email del comprador, pero que dicho codigo tamabien se agree a mi DB
y la ultima seria: que problemas ven en mi metodo o si tienen algun mejormetodo y lo prodrian compartir con migo...
gracias
Att King95