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