-1
所以我的註冊和登錄php代碼有問題。我把它們放在一個名爲index.php的php文件中,並且註冊工作正常,但是當我嘗試登錄時它與註冊語句發生衝突。爲什麼我的註冊和登錄代碼發生衝突PHP
<?php
include_once("php_includes/check_login_status.php");
// If user is already logged in, header that weenis away
if($user_ok == true){
header("location: user.php?u=".$_SESSION["username"]);
exit();
}
?>
<!-- .registerphp -->
<?php
// Ajax calls this NAME CHECK code to execute
if(isset($_POST["usernamecheck"])){
include_once("php_includes/db_conx.php");
$username = preg_replace('#[^a-z0-9]#i', '', $_POST['usernamecheck']);
$sql = "SELECT id FROM users WHERE username='$username' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$uname_check = mysqli_num_rows($query);
if (strlen($username) < 3 || strlen($username) > 16) {
echo '<strong style="color:#F00;">3 - 16 characters please</strong>';
exit();
}
if (is_numeric($username[0])) {
echo '<strong style="color:#F00;">Usernames must begin with a letter</strong>';
exit();
}
if ($uname_check < 1) {
echo '<strong style="color:#009900;">' . $username . ' is OK</strong>';
exit();
} else {
echo '<strong style="color:#F00;">' . $username . ' is taken</strong>';
exit();
}
}
?>
<?php
// Ajax calls this REGISTRATION code to execute
if(isset($_POST["u"])){
// CONNECT TO THE DATABASE
include_once("php_includes/db_conx.php");
// GATHER THE POSTED DATA INTO LOCAL VARIABLES
$u = preg_replace('#[^a-z0-9]#i', '', $_POST['u']);
$e = mysqli_real_escape_string($db_conx, $_POST['e']);
$p = $_POST['p'];
$g = preg_replace('#[^a-z]#', '', $_POST['g']);
$c = preg_replace('#[^a-z ]#i', '', $_POST['c']);
// GET USER IP ADDRESS
$ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR'));
// DUPLICATE DATA CHECKS FOR USERNAME AND EMAIL
$sql = "SELECT id FROM users WHERE username='$u' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$u_check = mysqli_num_rows($query);
// -------------------------------------------
$sql = "SELECT id FROM users WHERE email='$e' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$e_check = mysqli_num_rows($query);
// FORM DATA ERROR HANDLING
if($u == "" || $e == "" || $p == "" || $g == "" || $c == ""){
echo "The form submission is missing values.";
exit();
} else if ($u_check > 0){
echo "The username you entered is alreay taken";
exit();
} else if ($e_check > 0){
echo "That email address is already in use in the system";
exit();
} else if (strlen($u) < 3 || strlen($u) > 16) {
echo "Username must be between 3 and 16 characters";
exit();
} else if (is_numeric($u[0])) {
echo 'Username cannot begin with a number';
exit();
} else {
// END FORM DATA ERROR HANDLING
// Begin Insertion of data into the database
// Hash the password and apply your own mysterious unique salt
include_once ("php_includes/blowfish.php");
$cryptpass = crypt($p);
$p_hash = cryptPass($cryptpass)."$cryptpass".cryptPass($cryptpass);
// Add user info into the database table for the main site table
$sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)
VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
$query = mysqli_query($db_conx, $sql);
$uid = mysqli_insert_id($db_conx);
// Establish their row in the useroptions table
$sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
$query = mysqli_query($db_conx, $sql);
// Create directory(folder) to hold each user's files(pics, MP3s, etc.)
if (!file_exists("user/$u")) {
mkdir("user/$u", 0755);
}
// Email the user their activation link
$to = "$e";
$from = "[email protected]";
$subject = 'PFolio Account Activation';
$message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>PFolio Message</title></head><body style="margin:0px; font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;"><a href="http://www.pfolio.bugs3.com"><img src="http://www.pfolio.bugs3.com/images/smalllogo.png" width="215" height="50" alt="PFolio" style="border:none; float:left;"></a>PFolio Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />Click the link below to activate your account when ready:<br /><br /><a href="http://www.pfolio.bugs3.com/activation.php?id='.$uid.'&u='.$u.'&e='.$e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* Username: <b>'.$u.'</b></div></body></html>';
$headers = "From: $from\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
mail($to, $subject, $message, $headers);
echo "signup_success";
exit();
}
exit();
}
?>
<!-- .registerphp -->
<!-- .loginphp -->
<?php
// AJAX CALLS THIS LOGIN CODE TO EXECUTE
if(isset($_POST["u"])){
// CONNECT TO THE DATABASE
include_once("php_includes/db_conx.php");
// GATHER THE POSTED DATA INTO LOCAL VARIABLES AND SANITIZE
$u = mysqli_real_escape_string($db_conx, $_POST['u']);
$p = crypt($_POST['p']);
// GET USER IP ADDRESS
$ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR'));
// FORM DATA ERROR HANDLING
if($u == "" || $p == ""){
echo "login_failed";
exit();
} else {
// END FORM DATA ERROR HANDLING
$sql = "SELECT id, username, password FROM users WHERE username='$u' AND activated='1' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$row = mysqli_fetch_row($query);
$db_id = $row[0];
$db_username = $row[1];
$db_pass_str = $row[2];
if($p != $db_pass_str){
echo "login_failed";
exit();
} else {
// CREATE THEIR SESSIONS AND COOKIES
$_SESSION['userid'] = $db_id;
$_SESSION['username'] = $db_username;
$_SESSION['password'] = $db_pass_str;
setcookie("id", $db_id, strtotime('+30 days'), "/", "", "", TRUE);
setcookie("user", $db_username, strtotime('+30 days'), "/", "", "", TRUE);
setcookie("pass", $db_pass_str, strtotime('+30 days'), "/", "", "", TRUE);
// UPDATE THEIR "IP" AND "LASTLOGIN" FIELDS
$sql = "UPDATE users SET ip='$ip', lastlogin=now() WHERE username='$db_username' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
echo $db_username;
exit();
}
}
exit();
}
?>
<!-- .loginphp -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<title>P'Folio</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="css/loginstyle.css" rel="stylesheet" type="text/css">
<script src="js/main.js"></script>
<script src="js/ajax.js"></script>
<!-- .registerjs -->
<script>
function restrict(elem){
var tf = _(elem);
var rx = new RegExp;
if(elem == "email"){
rx = /[' "]/gi;
} else if(elem == "username"){
rx = /[^a-z0-9]/gi;
}
tf.value = tf.value.replace(rx, "");
}
function emptyElement(x){
_(x).innerHTML = "";
}
function checkusername(){
var u = _("username").value;
if(u != ""){
_("unamestatus").innerHTML = 'checking ...';
var ajax = ajaxObj("POST", "index.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
_("unamestatus").innerHTML = ajax.responseText;
}
}
ajax.send("usernamecheck="+u);
}
}
function signup(){
var u = _("username").value;
var e = _("email").value;
var p1 = _("pass1").value;
var p2 = _("pass2").value;
var c = _("country").value;
var g = _("gender").value;
var status = _("status");
if(u == "" || e == "" || p1 == "" || p2 == "" || c == "" || g == ""){
status.innerHTML = "Fill out all of the form data";
} else if(p1 != p2){
status.innerHTML = "Your password fields do not match";
} else {
_("signupbtn").style.display = "none";
status.innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "index.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText != "signup_success"){
status.innerHTML = ajax.responseText;
_("signupbtn").style.display = "block";
} else {
window.scrollTo(0,0);
_("signupform").innerHTML = "OK "+u+", check your email inbox and junk mail box at <u>"+e+"</u> in a moment to complete the sign up process by activating your account. You will not be able to do anything on the site until you successfully activate your account.";
}
}
}
ajax.send("u="+u+"&e="+e+"&p="+p1+"&c="+c+"&g="+g);
}
}
</script>
<!-- .registerjs -->
<!-- .loginjs -->
<script>
function emptyElement(x){
_(x).innerHTML = "";
}
function login(){
var u = _("user_name").value;
var p = _("pass_word").value;
if(u == "" || p == ""){
_("sta_tus").innerHTML = "Fill out all of the form data";
} else {
_("loginbtn").style.display = "none";
_("sta_tus").innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "index.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText == "login_failed"){
_("sta_tus").innerHTML = "Login unsuccessful, please try again.";
_("loginbtn").style.display = "block";
} else {
window.location = "user.php?u="+ajax.responseText;
}
}
}
ajax.send("u="+u+"&p="+p);
}
}
</script>
<!-- .loginjs -->
</head>
<body>
<!-- .wrapper -->
<div class="wrapper">
<!-- .header-->
<header class="header"> <img src="images/logo.png" alt="logo" title="P'Folio"> </header>
<!-- .header-->
<!-- .login -->
<div class="login">
<form id="loginform" onsubmit="return false;">
<div><img class="h1" src="images/lh.png" alt="login%20here"/></div>
<div><img class="p1" src="images/wb.png" alt="welcome%20back"/></div>
<input type="text" id="user_name" onfocus="emptyElement('status')" maxlength="16" class="loginboxes" placeholder="Username">
<input type="password" id="pass_word" onfocus="emptyElement('status')" maxlength="100" class="loginboxes" placeholder="Password">
<br />
<button id="loginbtn" onclick="login()">Log In</button>
<p id="sta_tus"></p>
<a href="#">Forgot Your Password?</a>
</form>
</div>
<!-- .login -->
<!-- .main -->
<main class="content">
<p>Are you a musician, a model, actor or actress or anyone with a talent then sign up for P'Folio.
Here on P'Folio we look to give you space to upload a portfolio for you to be noticed. </p>
</main>
<!-- .main -->
<!-- .signup -->
<div class="signup">
<form name="signupform" id="signupform" onsubmit="return false;">
<div><img class="h1" src="images/caa.png" alt="create%20account"/></div>
<div><img class="p1" src="images/ntm.png" alt="new%20to%20P'Folio"/></div>
<span id="unamestatus"></span>
<input id="username" type="text" onblur="checkusername()" onkeyup="restrict('username')" maxlength="16" placeholder="Username" class="registerboxes">
<input id="email" type="text" onfocus="emptyElement('status')" onkeyup="restrict('email')" maxlength="88" placeholder="Email" class="registerboxes">
<input id="pass1" type="password" onfocus="emptyElement('status')" maxlength="100" placeholder="Password" class="registerboxes">
<input id="pass2" type="password" onfocus="emptyElement('status')" maxlength="100" placeholder="Confirm Password" class="registerboxes">
<select id="gender" onfocus="emptyElement('status')" class="registerboxes">
<option value="0" selected="selected">Choose...</option>
<option value="m">Male</option>
<option value="f">Female</option>
</select>
<select id="country" onfocus="emptyElement('status')" class="registerboxes">
<?php include_once("template_country_list.php"); ?>
</select>
<div class="conditions">By clicking Sign Up,
you agree to our <a href="#">Terms</a> and that
you have read our <a href="#">Privacy Policy</a> ,
including our <a href="#">Cookie Use</a> .</div>
<button id="signupbtn" onclick="signup()">Create Account</button>
<span id="status"></span>
</form>
</div>
<!-- .signup -->
<!-- .footer -->
<footer class="footer">
<div id="legal"><a class="legal" href="JavaScript:newPopup('Login/Legal/Terms.php');">Terms</a> | <a class="legal" href="JavaScript:newPopup('Login/Legal/Privacy.php');">Privacy</a></div>
<div id="font"><a class="font">P'folio © 2014</a></div>
</footer>
<!-- .footer -->
</div>
<!-- .wrapper -->
</body>
</html>
爲什麼我的註冊和登錄代碼不起作用?
登錄與註冊正在檢查相同的條件:'isset($ _ POST [「u」])' –
@JustinIurman請你可以展開 – user3276488