Analizując mój kod stwierdziłem że jest on napisany od d**y strony. Analizując to co się nauczyłem, doszedłem do wniosku że da się to co chcę otrzymać, napisać w dużo prostszy sposób. Oto wyniki mojej pracy:
plik java script:
var see = "";
see += '<div class="ui-widget"><div class="ui-state-success ui-corner-all" style="margin-top: 20px; padding: 0 .7em;"><br><p>';
see += '<span class="ui-icon ui-icon-check" style="float: left; margin-right: .3em;"></span>';
see += '<strong></strong>Sprawdzanie formulaeza.<br>';
see += '</p></div></div>';
function WyslijFormularz(){
document.getElementById('myText').innerHTML = see;
//DANE FORMULARZA
var f = document.forms['register-form'];
data = "login=" + f.login.value + "&pass=" + f.pass.value + "&repass=" + f.repass.value + "&mail=" + f.mail.value + "&remail=" + f.remail.value;
$.ajax({
type: "POST",
data: data,
url: "function/register.php",
success: function(response){
if($.trim(response) == "OK") {
$('#dialog').dialog('open');
}
else {
var tresc = '';
tresc += '<div class="ui-widget"><div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"><br><p>';
tresc += response;
tresc += '<span id="mail"> </span></p></div></div>';
document.getElementById('myText').innerHTML = tresc;
}
}
});
}
oraz plik register:
<?php
include('../include/connect.php');
if(isset($_POST['login'])) { //Dane do zmiennych
$domena = 'firstclub.xaa.pl';
$tabela = "users";
// sprawdzanie poprawnosci formularza
if (strlen($login) < 3 or
strlen($login) > 30 or
!eregi("^[a-zA-Z0-9_.]+$", $login)) { $blad++;
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Proszę poprawny wprowadzić login (od 3 do 30 znaków).<br>'; } else {
$wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'"); $blad++;
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Login <b>'.$login.'</b> jest już zajęta, prosimy o wymyślenie innego loginu.<br>'; }
}
$blad++;
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków).<br>'; }
if ($pass !== $pass2) {
$blad++;
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Podane hasła nie są ze sobą zgodne.<br>'; }
if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) { $blad++;
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Proszę wprowadzić poprawnie adres email.<br>'; } else {
$wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'"); $blad++;
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>E-mail <b>'.$email.'</b> jest już w użyciu. Jeżeli zapomniałeś hasła lub loginu kliknij <a href="#">tutaj</a> aby wygenerować nowe dane.<br>'; }
}
if ($email !== $remail) {
$blad++;
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Podane adresy e-mail nie są ze sobą zgodne.<br>'; }
if ($blad == 0) {
$pass = sha1($pass); // zaszyfrowanie hasla
$kod = uniqid(rand()); // tworzenie unikalnego kodu dla użytkownika
$wynik = mysql_query("INSERT INTO $tabela VALUES('', '$login', '$pass', '$email', '$kod', NOW(), '9', '0')"); if ($wynik) {
include_once('include/class.phpmailer.php');
$mail = new PHPMailer();
$tresc = '<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body bgcolor="black" text="white" style="margin: 0px;">
<div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
<br>
<center><b>Witaj '.$login.'!</b></center><br>
<br>
Twoje konto jest jeszcze nie aktywne. Od aktywacji konta dzieli Cię jeszcze tylko jeden krok :) Wystarczy tylko, że klikniesz w link który znajduje się poniżej.<br>
<a href="http://'.$domena.'/index.php?code='.$kod.'">Aktywuj Konto</a><br>
<br>
Jeżeli to nie ty zakładałeś konto nie klikaj w link. Konto zostanie automatycznie usunięte po dwóch dniach.</div>
</body>';
$mail->From = "admin@$domena";
$mail->FromName = "First Club";
$mail->Subject = "Rejestracja $login na $domena";
$mail->MsgHTML($tresc);
$mail->AddAddress("$email", "$login");
$mail->CharSet = "UTF-8";
if(!$mail->Send()) {
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Mailer Error: ' . $mail->ErrorInfo; } else {
echo '<div class="good"> Do całkowitego założenia konta pozostało jeszcze aktywowanie konta. Aby to zrobić zaloguj się na swój adres email i postępuj według wskazówek tam przedstawionych.'; }
} else {
echo '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Błąd bazy danych. Prosimy o kontakt z <a href="mailto:admin@'.$domena.'">administratorem</a>'; }
}
}
?>
Takie rozwiązanie jest też lepsze ponieważ wyświetla w miejscu na błędy, nie tylko moje błędy (rejestracji), ale również błędy prasera php.
Demo jak byś chciał zobaczyć to jest pod adresem
http://teambook.pl