hola a todos, primero les quisiera agradecer de ante mano, estoy hacien mi portal web y tengo casi todo listo esta escrito en PHP XHTM y Javascript, pero ahora estos haciendo un resgistro (para usuarios Premium, para esto lo que hago es pasarlos por tres paso):
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);
?>
despues de este PHP en el formulario en el campo (CODE) pongo:
Código HTML:
<input type="Hidde" value="<? echo $aleatorio; ?>" name="CODE" >
aqui les dejo el codigo completo del primer paso:
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");
?>
y el formulario:
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>
luego al terminar ese paso, los datos que el registrante introdujo son introdicidos a la base de datos de alli es pasado al paso 2:
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