problema estranho - Comunidade Portuguesa de PHP

Transcrição

problema estranho - Comunidade Portuguesa de PHP
problema estranho
Posted by claralt - 2009/04/20 01:28
_____________________________________
ola a todos
Sou novas nestas andanças e provavelmente a minha questão é muito estranha mas ca fica
tenho no meu computador o MySQL o Apache e o PHP, fiz umas páginas e por FTP mandei-as para um servidor do
tipo www.omeusite.com.
No meu computador em localhost funcionam às mil maravilhas, criei uma página de login dcom o MySQL, o PHP
comunica bem com o MySQL, tudo ok.
Quando as coloquei no Dominio www.omeusite.com o login "berrou", identifica o binómio Password/username como
existente mas depois não me deixa ver as páginas que estão protegidas pelo inicio de sessão.
E sim ta tudo igual... a BD e as tabelas estão iguais, chequei as passwords, os campos das tabelas, as letras
grandes/pequenas... 500 vezes! Alguma ideia please? ***Isto até estava a correr bem***
deixo aqui o copy/paste do código
o index.html é onde está o formulario que chama o checklogin.php
...
<form name="form1" method="post" action="checklogin.php">
,,,
checklogin.php
<?php
ob_start();
$host="localhost"; // Host name
$user=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name
mysql_connect("$host", "$user", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$user=$_POST;
$password=$_POST;
$user = stripslashes($user);
$password = stripslashes($password);
$user = mysql_real_escape_string($user);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM $tbl_name WHERE user='$user' and password='$password'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
"login_success.php"
session_register("user");
session_register("password");
header("location:login_success.php");
}
else {
echo "Não está autorizado a ver esta página";
}
PHP-PT.com Forum - Comunidade Portuguesa de PHP
Joomlaboard Forum Component version: 1.1.4 Stable
Generated: 1 October, 2016, 20:01
ob_end_flush();
?>
este é o login_success.php
<?php
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// For security, start by assuming the visitor is NOT authorized.
$isValid = False;
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
// Therefore, we know that a user is NOT logged in if that Session variable is blank.
if (!empty($UserName)) {
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
// Parse the strings into arrays.
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
// Or, you may restrict access to only certain users based on their username.
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && true) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "index2.php";
if (!((isset($_SESSION)) && (isAuthorized("",$MM_authorizedUsers, $_SESSION, $_SESSION)))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER;
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
Quando coloco a password e o user correctos a mensagem é "Access Denied" que é precisamente a mensagem que
atribui para quando a sessão expira
index2.php
<?php
session_start();
if (!isset($_SESSION))
{
die ("Access Denied");
}
PHP-PT.com Forum - Comunidade Portuguesa de PHP
Joomlaboard Forum Component version: 1.1.4 Stable
Generated: 1 October, 2016, 20:01
?>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title></title>
</head>
<body>
</body></html>
Alguma ideia?
============================================================================
Re:problema estranho
Posted by mAiN_iNfEcTiOn - 2009/04/20 09:31
_____________________________________
1º Um dos problemas poderá ser do session_register() por várias razões:
- A partir do PHP 5.3.0 essa função foi considerada deprecada, isto é, ultrapassada, inútil. No PHP 6.0 já foi removida;
Eu aconselho o seguinte uso:
session_start();
$_SESSION=strip_tags($_POST);
$_SESSION=strip_tags($_POST);
- Essa função usa variáveis globais... Confirma se o servidor tem o parâmetro register_globals On (faz phpinfo(); e vê)
- Além disso, tu fazes re-utilização de variáveis (eu também sou defensor de tal coisa... Aliás, para quê criar mais
variáveis, que implica mais alocação de memória, quando elas a meio do código são inúteis? Mais vale re-utilizar), até
aqui tudo bem... Agora eu duvido que o acesso à tua base de dados no tal servidor não tenha password (nao sei se nao
puseste aqui por razões OBVIAS... se assim foi, fizeste bem :) senao ... verifica qual é a password e o utilizador e vai
testando a ligação).
2º Verifica também se não falta ao login_success.php o session_start(); na primeira linha... ;) :)
3º Por fim, um conselho... Não guardes dados sensíveis em sessões... :) Aliás porque a palavra passe NÃO deve ser
guardada em sessão... Tu deves poder sempre aceder-lha através da base de dados e sempre que for necessário,
validá-la com o user :)
Abraço
============================================================================
Re:problema estranho
Posted by claralt - 2009/04/20 11:00
_____________________________________
ok, provavelmente instalei no computador a versão antiga do PHP... coloquei o código que propões e pelo menos já nao
me veta o acesso às páginas com a mensagem acesso negado... contudo o register_globals está off... será que o
consigo activar? vou tentar procurar a solução.
Quanto à password do servidor, sim não a coloquei de propósito... ela tá lá no ficheiro, retirei o conteúdo entre aspas B)
obrigada pela ajuda
PS- depois de fazer o php info reparei que a versão instalada no servidor é a PHP Version 5.1.6....
Post edited by: claralt, at: 2009/04/20 11:05
PHP-PT.com Forum - Comunidade Portuguesa de PHP
Joomlaboard Forum Component version: 1.1.4 Stable
Generated: 1 October, 2016, 20:01
============================================================================
PHP-PT.com Forum - Comunidade Portuguesa de PHP
Joomlaboard Forum Component version: 1.1.4 Stable
Generated: 1 October, 2016, 20:01

Documentos relacionados