There are two syntax errors in your code.
Line: 22, Error type: 4 Message: syntax error, unexpected '>'
This error was caused because at line echo "<p>Sessão iniciada com sucesso como {$_SESSION['username']}</p>
you should close quotes and include ;
at the end of the line. After correcting this syntax error, there is still another error that appears:
Line: 24, Error type: 4 Message: syntax error, unexpected end of
file
This error is caused by missing a }
by closing the first if (!empty($_POST)) {
.
I also tried to give a better format in your code, see if it solves:
<?php
// começar ou retomar uma sessão
session_start();
// se vier um pedido para login
if (!empty($_POST)) {
// estabelecer ligação com a base de dados
mysql_connect('host', 'user', 'senhar') or die(mysql_error());
mysql_select_db('tabela');
// receber o pedido de login com segurança
$username = mysql_real_escape_string($_POST['username']);
$password = sha1($_POST['password']);
// verificar o utilizador em questão (pretendemos obter uma única linha de registos)
$login = mysql_query("SELECT userid, username FROM users WHERE username = '$username' AND password = '$password'");
if ($login && mysql_num_rows($login) == 1) {
// o utilizador está correctamente validado
// guardamos as suas informações numa sessão
$_SESSION['id'] = mysql_result($login, 0, 0);
$_SESSION['username'] = mysql_result($login, 0, 1);
echo "<p>Sessão iniciada com sucesso como {$_SESSION['username']}</p>";
} else {
// falhou o login
echo "<p>Utilizador ou password invalidos.</p>";
}
}
?>
Furthermore another recommendation ... mysql_connect
was considered discontinued, use MySQLi
or PDO
to connect to the bank.
I leave a link with complementary reading about these php
extensions that manage connections to a database .