Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2008, 09:19
adibu
 
Fecha de Ingreso: septiembre-2007
Mensajes: 50
Antigüedad: 16 años, 7 meses
Puntos: 0
Problema con validación de usuarios

Estimados amigos.

Mi problema es el siguiente:
Tengo una web con PHP y base de datos MySQL.
Dentro de ella hay 3 documentos entre los que está el problema.

areaprivada.php
Donde se introduce usuario y contraseña y se accede a consultas.php

En consultas.php se ven una avanzadilla de los datos de cada cliente.
Si pinchamos en un cliente en concreto, accedemos a la página
datos_cliente.php
En datos_cliente.php tenemos todos los datos de ese cliente en concreto.

El documento que se genera es del tipo:
www.............../datos_cliente.php?Id=62

Si alguien teclea esa dirección en el navegador, accede directamente a esos datos.
También pasa lo mismo con consultas.php, si alguien teclea:
www........../consultas.php accede a la página sin haber puesto usuario ni contraseña.
No quiero que eso ocurra.
¿Cómo lo puedo solucionar?
Soy bastante novato en esto así que si me lo podéis explicar muy claro o aún mejor si me dais un código que deba introducir, os lo agradecería.

He intentado hacer un inicio de sesión, pero al parecer lo hago mal, porque sigue ocurriendo lo mismo.

Envío los códigos de las tres páginas:


1ª PÁGINA: areaprivada.php


<?php require_once('Connections/conexionreformas.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['usuario'])) {
$loginUsername=$_POST['usuario'];
$password=$_POST['contrase'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "consultas.php";
$MM_redirectLoginFailed = "fallo.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_conexionreformas, $conexionreformas);

$LoginRS__query=sprintf("SELECT usuario, contrase FROM usuarios WHERE usuario='%s' AND contrase='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $conexionreformas) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";

//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
..................................
........................

2ª PÁGINA: consultas.php


<?
session_start();
$_SESSION["usuario"] = $_POST["usuario"];
$_SESSION["contrase"] = $_POST["contrase"];
?>
<?php require_once('Connections/conexionconsultas.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];
?>
<?php require_once('Connections/conexionconsultas.php'); ?>
<?php
$maxRows_con = 25;
$pageNum_con = 0;
if (isset($_GET['pageNum_con'])) {
$pageNum_con = $_GET['pageNum_con'];
}
$startRow_con = $pageNum_con * $maxRows_con;

mysql_select_db($database_conexionconsultas, $conexionconsultas);
$query_con = "SELECT * FROM `general` ORDER BY Id DESC";
$query_limit_con = sprintf("%s LIMIT %d, %d", $query_con, $startRow_con, $maxRows_con);
$con = mysql_query($query_limit_con, $conexionconsultas) or die(mysql_error());
$row_con = mysql_fetch_assoc($con);

if (isset($_GET['totalRows_con'])) {
$totalRows_con = $_GET['totalRows_con'];
} else {
$all_con = mysql_query($query_con);
$totalRows_con = mysql_num_rows($all_con);
}
$totalPages_con = ceil($totalRows_con/$maxRows_con)-1;

$queryString_con = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_con") == false &&
stristr($param, "totalRows_con") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_con = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_con = sprintf("&totalRows_con=%d%s", $totalRows_con, $queryString_con);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
...................
........................

3ª PÁGINA: datos_cliente.php


<?
session_start();
$_SESSION["usuario"] = $_POST["usuario"];
$_SESSION["contrase"] = $_POST["contrase"];
?>
<?php require_once('Connections/conexionconsultas.php'); ?>
<?php
$colname_cliente = "-1";
if (isset($_GET['Id'])) {
$colname_cliente = (get_magic_quotes_gpc()) ? $_GET['Id'] : addslashes($_GET['Id']);
}
mysql_select_db($database_conexionconsultas, $conexionconsultas);
$query_cliente = sprintf("SELECT * FROM `general` WHERE Id = %s", $colname_cliente);
$cliente = mysql_query($query_cliente, $conexionconsultas) or die(mysql_error());
$row_cliente = mysql_fetch_assoc($cliente);
$totalRows_cliente = mysql_num_rows($cliente);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
............
....................