Jump to content

Session login


Developer17
 Share

Go to solution Solved by HappyHippyHippo,

Recommended Posts

Bons dias!

Acho que finalmente consegui criar um sistema login em condições, contudo ao inserir o user e a pass dá-me o seguinte erro:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Doubleh\login.php on line 24

o meu doc login.php é o seguinte:

<?php
session_start(); // Starting Session
$error=''; // Variable To Store Error Message
if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else
{
// Define $username and $password
$username=$_POST['username'];
$password=$_POST['password'];
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$connection = mysql_connect("localhost", "root", "");
// To protect MySQL injection for Security purpose
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
// Selecting Database
$db = mysql_select_db("teste", $connection);
// SQL query to fetch information of registerd users and finds user match.
$query = mysql_query("select * from users where password='$password' AND username='$username'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user']=$username; // Initializing Session
header("location: profile.php"); // Redirecting To Other Page
} else {
$error = "Username or Password is invalid";
}
mysql_close($connection); // Closing Connection
}
}
?>
Edited by apocsantos
geshi
Link to comment
Share on other sites

altera a seguinte linha e diz o que aparece:

$query = mysql_query("select * from users where password='$password' AND username='$username'", $connection) or die(mysql_error());

Hum, agora nem sequer me deixa abrir a página, coloco no endereço o "localhost/Doubleh/index.php" e ele passa a "localhost/Doubleh/profile.php" e na página aparece Esta página Web tem um ciclo de redireccionamento

Edited by Developer17
Link to comment
Share on other sites

Hum, agora nem sequer me deixa abrir a página, coloco no endereço o "localhost/Doubleh/index.php" e ele passa a "localhost/Doubleh/profile.php" e na página aparece Esta página Web tem um ciclo de redireccionamento

isso é porque alteraste mais coisas do que disse para alterar ...

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

isso é porque alteraste mais coisas do que disse para alterar ...

Tinhas razão, tinha alterado uma coisa para testar e esqueci-me de voltar a colocar igual..

Voltei a colocar o código todo como tinha no inicio e agora já está tudo a funcionar, não entendo.

De qualquer forma muito obrigado pelo teu tempo e ajuda 🙂

Link to comment
Share on other sites

Tinhas razão, tinha alterado uma coisa para testar e esqueci-me de voltar a colocar igual..

Voltei a colocar o código todo como tinha no inicio e agora já está tudo a funcionar, não entendo.

De qualquer forma muito obrigado pelo teu tempo e ajuda 🙂

WTF?! die(); resolve problemas agora? AHAHAHHAHAHAAHAHHAHAHAHAHHAHA

1º Foste tu que 'criaste' mesmo isso? Se sim, porque usas partes em inglês e outras em português? ahah

2º Não está bem em condições porque estás a usar uma versão descontinuada de conexão à base de dados

  • Vote 1

developer @ filipealves.net

filipealvesbcl [a] gmail.com

github.com/filipealvesbcl

Link to comment
Share on other sites

Agora só estou com um problema...

É que incorporei este session login no meu "site" e tenho uma stylesheet para uma caixa de login e ele não me está a assumir essa formatação.

Portanto, o index.php está desta forma:

<?php
include('login.php'); // Includes Login Script
if(isset($_SESSION['login_user'])){
header("location: profile.php");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>DoubleH</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/login.css" rel="stylesheet">
<style type="text/css">
 body {
 padding-top: 60px;
 padding-bottom: 40px;
 }

 .bgcolor {
 background-color: none;
 }	

 .lightblue {
 background-color: none;
 }

</style>
<link href="css/bootstrap-responsive.css" rel="stylesheet">

<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
 <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="../assets/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
 <div class="navbar-inner">
 <div class="container-fluid">
	 <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
	 <span class="icon-bar"></span>
	 <span class="icon-bar"></span>
	 <span class="icon-bar"></span>
	 </a>
	 <a class="brand" href="#">DoubleH</a>
	 <div class="nav-collapse collapse">
	 <p class="navbar-text pull-right">
		 Logged in as <a href="profile.php" class="navbar-link">Username</a>
	 </p>
	 <ul class="nav">
		 <li class="active"><a href="#">Home</a></li>
		 <li><a href="cliente.html">Novo cliente</a></li>
		 <li><a href="servico.html">Novo serviço</a></li>
		 <li><a href="relatorio.html">Relatório</a></li>
	 </ul>
	 </div><!--/.nav-collapse -->
 </div>
 </div>
</div>
<br><br><br><br><br>
<section id="login">
<h2>Login Form</h2>
<form action="" method="post">
<label>UserName :</label>
<input id="name" name="username" placeholder="username" type="text">
<label>Password :</label>
<input id="password" name="password" placeholder="**********" type="password">
<input name="submit" type="submit" value=" Login ">
<span><?php echo $error; ?></span>
</form>
</section>
 <hr>
 <footer>
 <p>© DoubleH 2015</p>
 </footer>
</div><!--/.fluid-container-->

<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="js/jquery-1.8.0.min.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
e o meu login.css assim:
@charset "utf-8";
/* CSS Document */
.login {
width: 300px;
height: 285px;
overflow: hidden;
background: #1e1e1e;
border-radius: 6px;
margin: 50px auto;
box-shadow: 0px 0px 50px rgba(0,0,0,.8);
}
.login .titulo {
width: 298px;
height: 14px;
padding-top: 13px;
padding-bottom: 13px;
font-size: 14px;
text-align: center;
color: #bfbfbf;
font-weight: bold;
background: #121212;
border: #2d2d2d solid 1px;
margin-bottom: 30px;
border-top-right-radius: 6px;
border-top-left-radius: 6px;
font-family: Arial;
}
.login form {
width: 240px;
height: auto;
overflow: hidden;
margin-left: auto;
margin-right: auto;
}
.login form input[type=text], .login form input[type=password] {
width: 200px;
font-size: 12px;
padding-top: 14px;
padding-bottom: 14px;
padding-left: 40px;
border: none;
color: #bfbfbf;
background: #141414;
outline: none;
margin: 0;
}
.login form input[type=text] {
border-top-left-radius: 6px;
border-top-right-radius: 6px;
border-top: #0b0b0b solid 1px;
background: #141414 url(http://dev.dhenriquez.com/test-img/icons/111-user.png) 10px center no-repeat;
}
.login form input[type=password] {
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
border-top: #0b0b0b 1px solid;
border-bottom: #353535 1px solid;
background: #141414 url(http://dev.dhenriquez.com/test-img/icons/54-lock.png) 10px center no-repeat;
}
.login form .enviar {
width: 240px;
height: 12px;
display: block;
padding-top: 14px;
padding-bottom: 14px;
border-radius: 6px;
border: none;
border-top: #4eb2a8 1px solid;
border-bottom: #161616 1px solid;
background: #349e92;
text-align: center;
text-decoration: none;
font-size: 12px;
font-weight: bold;
color: #FFF;
text-shadow: 0 -1px #1d7464, 0 1px #7bb8b3;
font-family: Arial;
}
.login .olvido {
width: 240px;
height: auto;
overflow: hidden;
padding-top: 25px;
padding-bottom: 25px;
font-size: 10px;
text-align: center;
}
.login .olvido .col {
width: 50%;
height: auto;
float: left;
}
.login .olvido .col a {
color: #fff;
text-decoration: none;
font: 12px Arial;
}
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block }
body { line-height: 1 }
ol, ul { list-style: none }
blockquote, q { quotes: none }
blockquote:before, blockquote:after, q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
 
Em 23/04/2015 às 16:05, chbcl disse:

WTF?! die(); resolve problemas agora? AHAHAHHAHAHAAHAHHAHAHAHAHHAHA

1º Foste tu que 'criaste' mesmo isso? Se sim, porque usas partes em inglês e outras em português? ahah

2º Não está bem em condições porque estás a usar uma versão descontinuada de conexão à base de dados

O die() não resolveu o problema, foi uma ótima sugestão para descobrir qual o problema.

O erro devia estar em algum include ou conexão à base de dados que quando tive de vereficar novamente o código devo ter alterado sem reparar e começou a funcionar.

O código não é meu, pesquiso na net, tiro umas coisinhas daqui e outras dali e vou tentando fazer funcionar.

Dizes que a minha conexão à base de dados está descontinuada porque deveria utilizar mysqli?

Link to comment
Share on other sites

Sim, devias usar mysqli.

É como comprares um telemóvel hoje, amanha ele ainda é bom mas daqui a uns anos com o avanço da tecnologia ele torna-se lento, com o avanço das falhas torna-se menos seguro, e com o avanço das funcionalidades torna-se limitado...

Por isso, partindo do principio que nao vais usar o site apenas para fazer login, devias começar logo de raiz pelo mysqli

Edited by chbcl

developer @ filipealves.net

filipealvesbcl [a] gmail.com

github.com/filipealvesbcl

Link to comment
Share on other sites

Sim, devias usar mysqli.

É como comprares um telemóvel hoje, amanha ele ainda é bom mas daqui a uns anos com o avanço da tecnologia ele torna-se lento, com o avanço das falhas torna-se menos seguro, e com o avanço das funcionalidades torna-se limitado...

Por isso, partindo do principio que nao vais usar o site apenas para fazer login, devias começar logo de raiz pelo mysqli

Hum ok, vou ver então se o faço.

Obrigado 😉

Link to comment
Share on other sites

porque é que nos inputs do teu form nao metes required? Assim ele nao te deixa passar para o php sem teres alguma coisa escrita no user e password e escusavas de ter essa primeira parte para verificar se os campos estao vazios ou não.

OFF: também tenho visto por ai para usar o comando msqli em vez de mysql ou até mesmo PDO, mas ainda não consegui perceber bem as diferenças. Basta-me simplesmente substituir mysql por mysqli e não preciso de mudar mais nada?

Link to comment
Share on other sites

porque é que nos inputs do teu form nao metes required? Assim ele nao te deixa passar para o php sem teres alguma coisa escrita no user e password e escusavas de ter essa primeira parte para verificar se os campos estao vazios ou não.

porque sempre, mas mesmo sempre se faz a verificação do lado do servidor mesmo existindo do lado do cliente.

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.