eu estou com pequeno problema com registro de novos membros no meu site só que eu não intendo de php então não conseguir resolver quando utiliza espaços,ou acentos e caracteres especias ,quando vai fazer login não funciona como proibir usar espacos,acentos,e caracteres especias para não ter esse problema? aqui esta o script <?
include("includes/session.php");
class Process
{
function Process(){
global $session;
if(isset($_POST['sublogin'])){
$this->procLogin();
}
else if(isset($_POST['subjoin'])){
$this->procRegister();
}
else if(isset($_POST['subforgot'])){
$this->procForgotPass();
}
else if(isset($_POST['subedit'])){
$this->procEditAccount();
}
else if($session->logged_in){
$this->procLogout();
}
else{
header("Location: main.php");
}
}
function procLogin(){
global $session, $form;
$retval = $session->login($_POST['user'], $_POST['pass'], isset($_POST['remember']));
if($retval){
header("Location: ".$session->referrer);
}
else{
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
header("Location: ".$session->referrer);
}
}
function procLogout(){
global $session;
$retval = $session->logout();
header("Location: main.php");
}
function procRegister(){
global $session, $form, $mailer;
// if(ALL_LOWERCASE){
$_POST['user'] = strtolower($_POST['user']);
// }
// $retval = $session->register($_POST['user'], $_POST['pass'], $_POST['email']);
$result = mysql_query("SELECT COUNT(*) FROM users WHERE username = '".$_POST['user']."'")
or die(mysql_error());
$row = mysql_fetch_array( $result );
if($row[0]==0){
$retval=0;
}else{
$retval=2;
}
//if(!isset($_POST['user'])||!isset($_POST['pass'])||!isset($_POST['email'])){
// $retval=1;
// } else
if(strlen($_POST[user])<3){
$retval=3;
}
if(strlen($_POST[pass])<6){
$retval=4;
}
if($retval==0){
mysql_query("INSERT INTO users (`username`,`password`,`userid`,`userlevel`,`email`,`timestamp`)
VALUES('".$_POST['user']."', '".md5($_POST['pass'])."','".md5($_POST['user'])."','1','".$_POST['email']."',NOW() ) ")
or die(mysql_error());
}
if($retval == 0){
$_SESSION['reguname'] = $_POST['user'];
$_SESSION['regsuccess'] = true;
$mailer->sendWelcome($_POST['user'],$_POST['email'],$_POST['pass']);
header("Location: ".$session->referrer);
}
else if($retval == 1){
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = "Por favor preencha todos os dados.";
header("Location: ".$session->referrer);
}
else if($retval == 2){
$_SESSION['reguname'] = $_POST['user'];
$_SESSION['regsuccess'] = false;
header("Location: ".$session->referrer);
}
else if($retval == 3){
$_SESSION['reguname'] = $_POST['user'];
// $_SESSION['regsuccess'] = false;
header("Location: ".$session->referrer."?error=Error: Porfavor verifique se a senha possui 6 caracteres ou mais .");
}
else if($retval == 4){
$_SESSION['reguname'] = $_POST['user'];
// $_SESSION['regsuccess'] = false;
header("Location: ".$session->referrer."?error=Error: Porfavor verifique se a senha é 6 caracteres ou mais .");
}
}
function procForgotPass(){
global $database, $session, $mailer, $form;
$subuser = $_POST['user'];
$field = "user"; //Use field name for username
if(!$subuser || strlen($subuser = trim($subuser)) == 0){
$form->setError($field, "* Username not entered<br>");
}
else{
$subuser = stripslashes($subuser);
if(strlen($subuser) < 3 || strlen($subuser) > 30 ||
!eregi("^([0-9a-z_-])+$", $subuser) ||
(!$database->usernameTaken($subuser))){
$form->setError($field, "* Username não existet<br>");
}
}
$usrinf = $database->getUserInfo($subuser);
$email = $usrinf['email'];
if($_POST['email']!=$email){
$form->setError('email', "* E-mail não corresponde<br>");
}
if($form->num_errors > 0){
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
}
else{
$newpass = $session->generateRandStr(8);
if($mailer->sendNewPass($subuser,$email,$newpass)){
$database->updateUserField($subuser, "password", md5($newpass));
$_SESSION['forgotpass'] = true;
}
else{
$_SESSION['forgotpass'] = false;
}
}
header("Location: ".$session->referrer);
}
function procEditAccount(){
global $session, $form;
$retval = $session->editAccount($_POST['curpass'], $_POST['newpass'], $_POST['email']);
if($retval){
$_SESSION['useredit'] = true;
header("Location: ".$session->referrer);
}
else{
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
header("Location: ".$session->referrer);
}
}
};
$process = new Process;
?>