2015-08-23 53 views
0

我有我的登录部分验证码:我如何让PHP登录?

<form method="post" action="loginprocess.php"> 
    <div class="row"> 
     <div class="6u 12u$(mobile)"><input type="text" name="username" placeholder="Usuario" /></div> 
     <div class="6u$ 12u$(mobile)"><input type="password" name="pass" placeholder="Contraseña" /></div> 
     <div class="12u$"> 
      <input type="submit" value="Iniciar sesion" /> 
     </div> 
    </div> 
</form> 

这里有我的注册代码:

<?php 
    include"config.php"; 
    $username = $_POST['username']; 
    $email = $_POST['email']; 
    $pass  = md5($_POST['pass']); 
    $rpass = md5($_POST['rpass']); 
    $reqlen = strlen($username) * strlen($email) *strlen($pass) * strlen($rpass); 
    $insert = 'INSERT INTO registro (username, email, pass) VALUES ("'.$username.'", "'.$email.'", "'.$pass.'")'; 
    $query = mysql_query("SELECT * FROM registro WHERE username='$username'"); 
    $query2 = mysql_query("SELECT * FROM registro WHERE email='$email'"); 

    if(mysql_num_rows($query) > 0) 
    { 
     header("Location: registrate.php?error1"); 
     exit; 
    } 
    else 
    { 
     if(mysql_num_rows($query2) > 0) 
     { 
     header("Location: registrate.php?error2"); 
     exit; 
     } 
    } 
    if ($reqlen > 0) 
    { 
     if ($pass === $rpass) 
     { 
      mysql_query($insert); 
      header("Location: index.php"); 
      exit; 
     } 
     else 
     { 
      header("Location: registrate.php?error3"); 
     } 
    } 
    else 
    { 
     header("Location: registrate.php?error4"); 
    } 
?> 

在这里,我连接到服务器:

<?php 
    $localhost = "localhost"; 
    $dbuser  = "root"; 
    $dbpass  = "admin"; 
    $dbname  = "vivejugando"; 

    $connect = mysql_connect($localhost, $dbuser, $dbpass) or die("No se pudo conectar a la base de datos"); 
    mysql_select_db("$dbname", $connect); 
?> 

我需要登录代码。我做了一些类似这样的,但不工作:

<?php 
    include"config.php" 
    $username = $_POST ['username']; 
    $pass  = md5($_POST['pass']); 
    $query  = mysql_query("SELECT * FROM registro WHERE username='$username' AND pass='$pass'"); 
    $data  = mysql_fetch_assoc($query); 

    if(mysql_num_rows($query)) 
    { 
     session_start(); 
     $_SESSION['username'] = $data['username']; 
     header("Location: members.php"); 
     exit; 
    } 
    header(""Location: regprocess.php"") 
?> 

如果有人提高了我的登录代码或使其优化,以我的代码,我欣赏了这么多。

+2

'不work'手段?请提及具体的错误,以便这里的开发人员可以快速解决您的问题。 – Jigar

+0

请指定错误。在mysql_query之后使用'或死(mysql_error())'。事实上,你不应该使用mysql_的东西,因为它们已被弃用。 –

回答

1

试试吧

include"config.php"; 
$username = $_POST['username']; 
$email = $_POST['email']; 
$pass  = md5($_POST['pass']); 
$rpass = md5($_POST['rpass']); 

if(isset($rpass) && $pass == $rpass) 
{ 
    $insert = 'INSERT INTO registro (username, email, pass) VALUES ("'.$username.'", "'.$email.'", "'.$pass.'")'; 
    mysql_query($insert); 
    session_start(); 
    $_SESSION['username'] = $username; 
    header("Location: index.php"); 
    exit; 
} 

$check_login = mysql_query("SELECT * FROM registro WHERE username='$username' and email='$email'");  
if(mysql_num_rows($check_login) > 0) 
{ 
    header("Location: index.php"); 
    exit; 
} 
else 
{ 
    header("Location: registrate.php?error1"); 
    exit; 
}