Голямото зацикляне PHP и jQuery проблем ..

UmriWe

Registered
Здравейййййте ;д Пичове,колеги, всякакви бродстващи програмисти във форума искам да ви помоля за една много много голяма услуга. Днес ми излезе много кофти бъг с jQUery-то и PHP.. Та проблема е следния кодът който ще дам е форма за регистрация само че нямам Субмит бутон ами бутонче с onclick което събмитва формата и проверява нейните полета и когато събмитне ми изкарва бяла страница с абсолютно никакъв резултат .. Помощ ;(
PHP-то
Код:
if ($_SESSION['username']) {
                                    $this->pageError('You are alerdy registred... Why do you want to register one more time ?');
                                } else {
                                    echo '<div class="news">
                                      <div class="news_title">
				      <div class="news_title_text"><center>Register an Account</center></div>
                                      </div>
                                      <div class="news_content">
                                      <div class="news_content_text">
                                      <form method="POST" name="regForm" id="regForm">
                                      <img src="../images/register/title_username.png" style="align: left;"/>   <input type="text" id="username" name="username" class="inn"/> <span id="status"></span><hr />
                                      <img src="../images/register/title_password.png" style="align: left;"/>   <input type="password" id="password" name="password" /><hr />
                                      <img src="../images/register/title_confirm_password.png" style="align: left;"/>   <input type="password" id="passwordc" name="passwordc" /><hr />
                                      <img src="../images/register/title_email.png" style="align: left;"/>   <input type="text" id="email" name="email" /><hr />
                                      <img src="../images/register/title_confirm_email.png" style="align: left;"/>   <input type="text" id="emailc" name="emailc" /><hr />
                                      <img src="engine/include/captcha.php" style="border: 2px solid #000; margin-left: 100px;" alt="CaPTCHA" /><br />
                                      <img src="../images/register/title_captcha.png" style="align: left;"/>   <input type="text" id="code" name="code" /><br />
                                      </form><br />
                                      <center><div class="reg_button" onclick="fnChkRegFrm()"> </div></center>
                                      </div>
                                      </div>
                                      <div class="news_footer"></div>
			              <div class="space_filler_news"></div>
		                      </div>';
                                    if (isset($_POST['code'])) {
                                        $Username1 = htmlspecialchars($_POST['username']);
                                        $Username = preg_replace("/[^A-Za-z0-9]/", "", $Username1);
                                        $Password1 = htmlspecialchars($_POST['password']);
                                        $PasswordC1 = htmlspecialchars($_POST['passwordc']);
                                        $Password = preg_replace("/[^A-Za-z0-9]/", "", $Password1);
                                        $PasswordC = preg_replace("/[^A-Za-z0-9]/", "", $PasswordC1);
                                        $Email = htmlspecialchars($_POST['email']);
                                        $EmailC = htmlspecialchars($_POST['emailc']);
                                        $Captcha = $_POST['code'];
                                        //Checking for duplicating emails
                                        $mysql = new Mysql();
                                        $mysql->AccDB();
                                        $UserCheck = $mysql->query("SELECT login FROM accounts WHERE login='$Username'") or die(mysql_error());
                                        $CheckU = mysql_num_rows($UserCheck) or die(mysql_error());
                                        $EmailCheck = $mysql->query("SELECT email FROM accounts WHERE email='$Email'") or die(mysql_error());
                                        $CheckE = mysql_num_rows($EmailCheck) or die(mysql_error());
                                        if ($CheckE >= 1) {
                                            $error = "Duplicating Email addresses. Try again !";
                                        } elseif ($CheckU >= 1) {
                                            $error = "Duplicating usernames. Try again !";
                                        } else {
                                            if ($Username != NULL && $Password == $PasswordC && $Email == $EmailC && $Captcha == $_SESSION['rand_code']) {
                                                $mysql->query("INSERT INTO accounts(login,password,gm,email,flags) VALUES('$Username', '$Password', '0', '$Email', '8')") or die(mysql_error());
                                                header("Location: accoint/create/");
                                                exit;
                                            }
                                       }
                                    }
                                }
и Jquery-то
Код:
function fnChkRegFrm() {
    if (document.regForm.username.value.length == 0) {
        alert ('Please enter a valid username.');
        regForm.username.value = "";
        regForm.username.focus();
        return false;
    }else if (document.regForm.username.value.length <= 3) {
        alert ('Username must be 4 characters or more.');
        regForm.username.focus();
        return false;
    }
    else if (document.regForm.password.value == document.regForm.username.value) {
        alert ('Please do not use the same password as your username.');
        regForm.password.value = "";
        regForm.password.focus();
        return false;
    }
    else if (document.regForm.password.value.length == 0) {
        alert ('Please enter a valid password.');
        regForm.password.value = "";
        regForm.password.focus();
        return false;
    }
    else if (document.regForm.password.value.length <= 3) {
        alert ('Password must be 4 characters or more.');
        regForm.password.focus();
        return false;
    }
    else if (document.regForm.passwordc.value.length == 0) {
        alert ('Please retype your password.');
        regForm.passwordc.value = "";
        regForm.passwordc.focus();
        return false;
    }
    else if (document.regForm.password.value != document.regForm.passwordc.value) {
        alert ('The passwords you entered did not match.');
        regForm.password.value = "";
        regForm.passwordc.value = "";
        regForm.password.focus();
        return false;
    }
    else if (document.regForm.email.value.length == 0) {
        alert ('Please enter a valid email address.');
        regForm.email.value = "";
        regForm.email.focus();
        return false;
    }
    else if (document.regForm.emailc.value.length == 0) {
        alert ('Please retype your email address.');
        regForm.emailc.value = "";
        regForm.emailc.focus();
        return false;
    }
    else if (document.regForm.email.value != document.regForm.emailc.value) {
        alert ('The email address you entered did not match.');
        regForm.emailc.value = "";
        regForm.emailc.focus();
        return false;
    }
    else if (document.regForm.code.value.length == 0) {
        alert ('Please enter a valid CaPTCHA code.');
        regForm.code.value = "";
        regForm.code.focus();
        return false;
    }
    else {
        document.getElementById('regForm').submit();
        return true;
    }
}
Благодаря предварително :)
 
Като за начало - това на което ти му казваш jQuery, всъщност няма нищо общо с jQuery, а си е обикновен javascript.

Провери си логиката в РНР-то. Записва ли въобще нещо в таблицата accounts или умира преди това? Прави ли проверките? Открий къде се спира изпълнението на РНР кода.

Включи си съобщенията за грешка или си виж error_log файла, може там да е решението на проблема.
 
При двете проверки, ти задаваш стойност на променливата $error, но никъде не я принтираш?

Код:
if ($CheckE >= 1) {
   $error = "Duplicating Email addresses. Try again !";
} elseif ($CheckU >= 1) {
   $error = "Duplicating usernames. Try again !";
} else {
    ........
    header("Location: accoint/create/");
    exit;
}

//покажи грешката, ако я има
echo $error;
 
1. Бутона ти е много интересен, само <div class="reg_button" , който таг даже не е завършен.
2. С div не се прави бутон, по-добре го направи с <input type="button">
3. Никъде не викаш тази функция, че да ти се изпълни submit-a. Защо не пробваш

HTML:
<input type="button" value="Register!" onClick="fnChkRegFrm();" class="reg_button" />
</form>

4. Това не е jQuery, а чист JavaScript код.
 

Back
Горе