Hey,
I’m fairly new with PHP and SQL.
I’m working on a full login system with a bunch of features and stuff. The main part of it is up now, and all the pages work, but when you try to signup for it, it just goes to a blank page. It doesn’t say what or where the error is like it usually does, so I don’t know what the problem is. The process page is included below, which seems to be where the error is. I do have comments on pretty much every line of code to keep from confusing myself. This is the first time I’ve actually made anything complex in php.
Any help is appreciated.
[php]<?php
include(“session.php”);
class Process
{
/* Class constructor /
function Process(){
global $session;
/ User submitted login form /
if(isset($_POST[‘sublogin’])){
$this->procLogin();
}
/ User submitted registration form /
else if(isset($_POST[‘subjoin’])){
$this->procRegister();
}
/ User submitted forgot password form /
else if(isset($_POST[‘subforgot’])){
$this->procForgotPass();
}
/ User submitted edit account form /
else if(isset($_POST[‘subedit’])){
$this->procEditAccount();
}
/*
* The only other reason user should be directed here
* is if he wants to logout, which means user is
* logged in currently.
/
else if($session->logged_in){
$this->procLogout();
}
/*
* Should not get here, which means user is viewing this page
* by mistake and therefore is redirected.
*/
else{
header(“Location: main.php”);
}
}
/**
* procLogin - Processes the user submitted login form, if errors
* are found, the user is redirected to correct the information,
* if not, the user is effectively logged in to the system.
/
function procLogin(){
global $session, $form;
/ Login attempt */
$retval = $session->login($_POST[‘user’], $_POST[‘pass’], isset($_POST[‘remember’]));
/* Login successful */
if($retval){
header("Location: ".$session->referrer);
}
/* Login failed */
else{
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
header("Location: ".$session->referrer);
}
}
/**
* procLogout - Simply attempts to log the user out of the system
* given that there is no logout form to process.
*/
function procLogout(){
global $session;
$retval = $session->logout();
header(“Location: main.php”);
}
/**
* procRegister - Processes the user submitted registration form,
* if errors are found, the user is redirected to correct the
* information, if not, the user is effectively registered with
* the system and an email is (optionally) sent to the newly
* created user.
/
function procRegister(){
global $session, $form;
/ Convert username to all lowercase (by option) /
if(ALL_LOWERCASE){
$_POST[‘user’] = strtolower($_POST[‘user’]);
}
/ Registration attempt */
$retval = $session->register($_POST[‘user’], $_POST[‘pass’], $_POST[‘email’]);
/* Registration Successful */
if($retval == 0){
$_SESSION['reguname'] = $_POST['user'];
$_SESSION['regsuccess'] = true;
header("Location: ".$session->referrer);
}
/* Error found with form */
else if($retval == 1){
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
header("Location: ".$session->referrer);
}
/* Registration attempt failed */
else if($retval == 2){
$_SESSION['reguname'] = $_POST['user'];
$_SESSION['regsuccess'] = false;
// header("Location: ".$session->referrer);
}
}
/**
* procForgotPass - Validates the given username then if
* everything is fine, a new password is generated and
* emailed to the address the user gave on sign up.
/
function procForgotPass(){
global $database, $session, $mailer, $form;
/ Username error checking /
$subuser = $_POST[‘user’];
$field = “user”; //Use field name for username
if(!$subuser || strlen($subuser = trim($subuser)) == 0){
$form->setError($field, " Username not entered
");
}
else{
/* Make sure username is in database /
$subuser = stripslashes($subuser);
if(strlen($subuser) < 5 || strlen($subuser) > 30 ||
!eregi("^([0-9a-z])+$", $subuser) ||
(!$database->usernameTaken($subuser))){
$form->setError($field, " Username does not exist
");
}
}
/* Errors exist, have user correct them */
if($form->num_errors > 0){
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
}
/* Generate new password and email it to user */
else{
/* Generate new password */
$newpass = $session->generateRandStr(8);
/* Get email of user */
$usrinf = $database->getUserInfo($subuser);
$email = $usrinf['email'];
/* Attempt to send the email with new password */
if($mailer->sendNewPass($subuser,$email,$newpass)){
/* Email sent, update database */
$database->updateUserField($subuser, "password", md5($newpass));
$_SESSION['forgotpass'] = true;
}
/* Email failure, do not change password */
else{
$_SESSION['forgotpass'] = false;
}
}
header("Location: ".$session->referrer);
}
/**
* procEditAccount - Attempts to edit the user’s account
* information, including the password, which must be verified
* before a change is made.
/
function procEditAccount(){
global $session, $form;
/ Account edit attempt */
$retval = $session->editAccount($_POST[‘curpass’], $_POST[‘newpass’], $_POST[‘email’]);
/* Account edit successful */
if($retval){
$_SESSION['useredit'] = true;
header("Location: ".$session->referrer);
}
/* Error found with form */
else{
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
header("Location: ".$session->referrer);
}
}
};
/* Initialize process */
$process = new Process;
?>[/php]
[size=99px]**Mod Edit - Added PHP tags for better readability.[/size]