PHP - Ahi algo que esta mal aqui

 
Vista:

Ahi algo que esta mal aqui

Publicado por Andrea (1 intervención) el 07/03/2010 07:03:01
Hola a todos necesito encontrar los errores de este script por que no me funciona del todo bien
el INSERT se efectua pero cuando quiero generar el archivo .TAD no lo hace pero el escript esta bien porque lo probe a el solo y si genera osea que el problema es de sintaxis o no se ayudenme porfa....

<?php
include('conec.php');
require_once './inc/class.captcha.php';
$accdir="D:\\soft\\DBSRV\\account";

$title = 'REGISTER';

if ($_POST['action'] == 'submitted')
{
if(PhpCaptcha::Validate($_POST['CheckCode']))
{

$Email = $_POST['txtEmail'];
$userid=strtoupper(trim($_POST['txtUser']));
$Password=trim($_POST['txtPass']);
$CPassword = $_POST['txtPass2'];
$UserKey = $_POST['txtKey'];
$SecretQuestion = $_POST['txtQuest'];
$Answer = $_POST['txtAnswer'];
$FirstName = $_POST['txtName'];
$MI = substr($UserID,0,1);
$LastName = $_POST['txtLastName'];
$Month = $_POST['txtMonth'];
$Day = $_POST['txtDay'];
$Year = $_POST['txtYear'];
$Sex = $_POST['txtSex'];
$Address = $_POST['txtAddress'];
$Country = $_POST['txtCountry'];

function is_email($email){
$x = '\d\w!\#\$%&\'*+\-/=?\^_`{|}~'; //just for clarity

return count($email = explode('@', $email, 3)) == 2
&& strlen($email[0]) < 65
&& strlen($email[1]) < 256
&& preg_match("#^[$x]+(\.?([$x]+\.)*[$x]+)?$#", $email[0])
&& preg_match('#^(([a-z0-9]+-*)?[a-z0-9]+\.)+[a-z]{2,6}.?$#', $email[1]);
}

$error = "No se pudo completar la operación";
function AllOK()
{
global $error,$Email,$UserID,$Password,$CPassword,$UserKey,$SecretQuestion,$Answer,$FirstName,$MI,$LastName,$Month,$Day,$Year,$Sex,$Address,$Country;

if (strlen($UserID) < 6 || strlen($UserID) > 50 || !preg_match("/^[a-zA-Z0-9_-]+$/", $UserID)) {
$error .= "'$UserID', Nombre de usuario no valido. Solo letras, se permiten números en este campo (longitud 6 ~ 50).<br/>";
return 0;
}

if (strlen($Password) < 6 || strlen($Password) > 30 || !preg_match("/^[a-zA-Z0-9_-]+$/", $Password)) {
$error .= "Contraseña no valida. Solo letras, se permiten números en este campo (longitud 6 ~ 30).<br/>";
return 0;
}

if (strlen($UserKey) != 7 || !preg_match("/^[0-9]/", $UserKey)) {
$error .= "Llave secreta no valida. Debe ser un numero de 7 digitos.<br/>";
return 0;
}

if ($Password != $CPassword) {
$error .= "Las contraseñas no coinciden...<br/>";
return 0;
}

$SecretQuestion = str_replace("'", "''", $SecretQuestion);

if (!is_email($Email)) {
$error .= "Correo electronico no valido.<br/>";
return 0;
}

if (!preg_match("/^[a-zA-Z 0-9_-]+$/", $Answer) || strlen($Answer) == "0") {
$error .= "Respuesta no valida.. Solo letras y numeros estan permitidos.<br/>";
return 0;
}

if (!preg_match("/^[a-zA-Z_-]+$/", $FirstName) || strlen($FirstName) == "0") {
$error .= "Nombre no valido.. Solo letras estan permitidas.<br/>";
return 0;
}

if (!preg_match("/^[a-zA-Z_-]+$/", $LastName) || strlen($LastName) == "0") {
$error .= "Apellido no valido.. Solo letras estan permitidas.<br/>";
return 0;
}

if (strlen($MI) != 1 || !preg_match("/^[a-zA-Z_-]+$/", $MI)) {
$error .= "Inicial no valido. Solo letras estan permitidas.<br/>";
return 0;
}

if ($Month > 12 || $Month < 1 || !preg_match("/^[0-9]/", $Month) || strlen($Month) == "0") {
$error .= "Mes de fecha de nacimiento no valido.<br/>";
return 0;
}

if ($Day > 31 || $Day < 1 || !preg_match("/^[0-9]/", $Day) || strlen($Day) == "0") {
$error .= "Dia de fecha de nacimiento no valido.<br/>";
return 0;
}

if ($Year > 2007 || $Year < 1950 || !preg_match("/^[0-9]/", $Year) || strlen($Year) == "0") {
$error .= "Año de fecha de nacimiento no valido.<br/>";
return 0;
}

if ($Sex != 1 && $Sex != 2) {
$error .= "Genero no valido.<br/>";
return 0;
}

if (!preg_match("/^[a-zA-Z 0-9_-]+$/", $Address)) {
$error .= "Direccion no valida.<br/>";
return 0;
}

if (!preg_match("/^[a-zA-Z 0-9_-]+$/", $Country)) {
$error .= "País no valido.<br/>";
return 0;
}



$wea = mssql_query("SELECT UserID FROM Account where UserID='$UserID'");
$row = mssql_fetch_row($wea);

if ($row[0] != "") {
$error .= "Nombre de usuario en uso, Porfavor elije otro.<br/>";
return 0;
}

$wea2 = mssql_query("SELECT Email FROM Account where Email='$Email'");
$row2 = mssql_fetch_row($wea2);

if ($row2[0] != "") {
$error .= "Email en uso, Porfavor selecciona otro.<br/>";
return 0;
}

return 1;
}

if (!AllOK())
{
$result = $error;
}
else
{
$result = "¡Cuenta registrada con exito!";

$password2=strtoupper(md5($Password));
$initial=substr($userid,0,1);
$userlenght=strlen($userid);

if (ereg("^[a-zA-Z]$",$initial))
{
$initial=strtoupper($initial);
}
else
{
$initial="etc";
}
if(file_exists($accdir."\\".$initial."\\".$userid.".tad"))
{
echo "Account already exist.";
}
else
{
$f=@fopen("./inc/sample.tad",r) or die("Error");
$acc = @fread($f,7124);
$demoid=substr($acc,0,$userlenght);
$demopass=substr($acc,52,32);
$acc = str_replace($demoid,$userid,$acc);
$acc = str_replace($demopass,$password2,$acc);
$f2=@fopen($accdir."\\".$initial."\\".$userid.".tad",a);
@fwrite($f2,$acc) or die("Error");
@fclose($f);
mssql_query("INSERT INTO Account VALUES ('$Email', '$UserID', '$Password' , '$UserKey', '0', NULL, NULL, NULL, '$SecretQuestion', '$Answer', '$FirstName', '$MI', '$LastName', '$Month/$Day/$Year 00:00:00', '$Sex', '$Address', NULL, NULL, '$Country', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '$_SERVER[REMOTE_ADDR]', newid(), GETDATE(), 1, NULL, 0, 0, 0, NULL, 0, 1, NULL, 0, 0, NULL, NULL, 0)");
mssql_query("DECLARE @return_value int,
@NCashResult int,
@NCashMsg nvarchar(100)
EXEC @return_value = [dbo].[AccountInsertUserInBilling]
@Email = N'".$Email."',
@NCashResult = @NCashResult OUTPUT,
@NCashMsg = @NCashMsg OUTPUT");
}
}
else
{
echo "Check Code is Wrong";
}

}
}

?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder