Ver Mensaje Individual
  #9 (permalink)  
Antiguo 11/02/2014, 06:52
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proyecto web de Trivial

Código PHP:
require_once "config.php";

if (
strlen(trim($strSessionPath)) > 0)
    
session_save_path($strSessionPath);

session_start();

$boolError false;
$strAction "";
$strMessage "";
$strName "";
$strPassword1 "";
$strPassword2 "";
$strTempDBInfo "";

// Critical Error checking
if (empty($_SESSION)) {
    
$_SESSION['name'] = "";
    
$_SESSION['message'] = "You must log in to proceed.";
    
header("Location: index.php");
    exit;
}
else {
    
$strAction $_SESSION['action'];
}

// User Error checking
if (!empty($HTTP_POST_VARS['name'])) {
    
$strName $HTTP_POST_VARS['name'];
}
elseif (
$strAction == "Create New User") {
    
$strMessage "User was NOT created! You must specify a user. ";
    
$boolError true;
}

// boolError checks are in there own clause instead of merging them with the nested if statement.
// Otherwise, the error message of the real error will be overwritten by the last message in the
// last error check.
if (!$boolError) {
    if (!empty(
$HTTP_POST_VARS['password1'])) {
        
$strPassword1 $HTTP_POST_VARS['password1'];
    }
    else {
        
$strMessage "You must specify a password.";
        
$boolError true;
    }
}

if (!
$boolError) {
    if (!empty(
$HTTP_POST_VARS['password2'])) {
        
$strPassword2 $HTTP_POST_VARS['password2'];
    }
    else {
        
$strMessage "You must validate your password by typing it twice.";
        
$boolError true;
    }
}

// $boolError can be merged with if statements if there is no 'else' clause
if (!$boolError && ((strlen($strPassword1) < 4) || (strlen($strPassword1) > 32))) {
    
$strMessage "Change was NOT successful! Password must be no shorter than 4 characters and no longer than 32 characters.";
    
$boolError true;
}

if (!
$boolError && ($strPassword1 != $strPassword2)) {
    
$strMessage "Change was NOT successful! New password was not the same as the retyped password.";
    
$boolError true;
}

if (!
$boolError) {
    
$strTempDBInfo DBTYPE "_pconnect";
    
$conn $strTempDBInfo($DB_HOST$DB_USER$DB_PASS);

    if (!
$conn) {
        
$strTempDBInfo DBTYPE "_error";
        
$strMessage "Unable to connect to DB server: " $strTempDBInfo($conn);
        
$boolError true;
    }
    else {
        
$strTempDBInfo DBTYPE "_select_db";
    }
}

if (!
$boolError && (!$strTempDBInfo($DB_NAME))) {
    
$strTempDBInfo DBTYPE "_error";
    
$strMessage "Unable to select DB name: " $strTempDBInfo($conn);
    
$strTempDBInfo DBTYPE "_close";
    
$strTempDBInfo($conn);
    
$boolError true;
}

if (!
$boolError) {
    if (
$strAction == "Create New User") {
        
$sql "SELECT UserName FROM login WHERE UserName = '" $strName "'";
        
$strTempDBInfo DBTYPE "_query";
        
$result $strTempDBInfo($sql);

        if (!
$result) {
            
$strTempDBInfo DBTYPE "_error";
            
$strMessage "Could not successfully run query ($sql) from DB: " $strTempDBInfo($conn);
            
$boolError true;
        }
        else {
            
$strTempDBInfo DBTYPE "_num_rows";

            if (
$strTempDBInfo($result) != 0) {
                
$strMessage "This user already exists.";
                
$boolError true;
            }
        }
    }
}

if (!
$boolError) {
    if (
$strAction == "Change Password") {
        
$sql "UPDATE login SET UserPassword = '$strPassword1' " .
            
"WHERE UserName = '$strName'";
    }

    if (
$strAction == "Create New User") {
        
$strUserLastIP $_SERVER['REMOTE_ADDR'];
        
$sql "INSERT INTO login ( UserName, UserPassword, UserLastIP ) " .
            
"VALUES ('$strName', '$strPassword1', '$strUserLastIP')";
    }

    
$strTempDBInfo DBTYPE "_query";
    
$result $strTempDBInfo($sql);

    if (!
$result) {
        
$strTempDBInfo DBTYPE "_error";
        
$strMessage "Could not successfully run query ($sql) from DB: " $strTempDBInfo($conn);
        
$boolError true;
    }
    else {
// If $strMessage is not empty and $boolError is false then it's just a Message.
// Otherwise, it's an Error Message.
        
if ($strAction == "Change Password") {
            
$strMessage "Password successfully changed.";
        }

        if (
$strAction == "Create New User") {
            
$strMessage "User successfully added.";
        }

        
$boolError false;
    }

    
$strTempDBInfo DBTYPE "_close";
    
$strTempDBInfo($conn);
}

$_SESSION['message'] = $strMessage;
header("Location: options.php"); 
Perdon, es que si no se me cansa la vista (como al resto de usuario supongo), ahora le echaré un ojo...