Foros del Web » Programando para Internet » PHP »

no anda!!

Estas en el tema de no anda!! en el foro de PHP en Foros del Web. Hola a todos en el foro. Mi problema es el siguiente: Soy nuevo en el mundo php y el problema que tengo es que tengo ...
  #1 (permalink)  
Antiguo 11/06/2007, 04:28
 
Fecha de Ingreso: abril-2007
Mensajes: 73
Antigüedad: 17 años
Puntos: 1
no anda!!

Hola a todos en el foro.
Mi problema es el siguiente:

Soy nuevo en el mundo php y el problema que tengo es que tengo una pagina funcionando en un host gratuito bajo un subdominio, la cual me muestra una pagina principal que pide usuario y contraseña mediante un form. hasta aqui todo bien. El tema es que cunado acepta los datos del usuario tendria que enviarlos a otra pagina la cual llamo "chek_usuario.php" y que chekee los datos en una tabla llamada usuarios. en el caso que lo encuentre, que haga el enlace automaticamente a la pagina de incio mediate un ""header("location:menus.htm"), y en el caso que no, muestre "ACCESO DENEGADO...".

Al hacer todo esto lo unico que me muestra es una pagina en blanco con la publicidad del sitio.

aqui les mando mi codigo:
conexion.php:


Código HTML:
<?
    function conexion(){
    $host = "localhost"; 
    $username = "nicolas76\$nico"; 
    $password = "mipass"; 
    $database = "nicolas76\$midatabase"; 


   $c=mysql_connect($host, $username, $password);
   if(!$c){
   	die("ERROR AL CONECTAR AL SERVIDOR");
   	}
   	$db=mysql_select_db($database, $c);
   	if(!$db){die("ERROR AL CONCTARSE A LA BASE DE DATOS");}
}
?> 
chek_usuario.php:


Código HTML:
<?php
include('conexion.php');
$c=conexion();
$consulta = "select * from usuarios where usuario = '$user' and pass = '$clave'";
$x=mysql_query($consulta,$c);
if(mysql_num_rows($x))
{"location:menus.htm";}
else{echo "ACCESO DENEGADO. CONSULTE AL ADMINISTRADOR DEL SISTEMA";}
?> 
espero que me puedan ayudar.

muchas gracias a todos
  #2 (permalink)  
Antiguo 11/06/2007, 04:46
Avatar de Yranac  
Fecha de Ingreso: junio-2007
Mensajes: 125
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: no anda!!

Prueba así:
Código PHP:
<?php
include('conexion.php');
$c=conexion();
$consulta "select * from usuarios where usuario = '$user' and pass = '$clave'";
$x=mysql_query($consulta,$c);
if(
mysql_num_rows($x))
{
header("location:menus.htm");
}
else{
echo 
"ACCESO DENEGADO. CONSULTE AL ADMINISTRADOR DEL SISTEMA";
}
?>
Poniendo la función header() debería de funcionar o darte un error de header already send(que sería provocado por la publicidad del hostin gratuito)
  #3 (permalink)  
Antiguo 11/06/2007, 05:09
 
Fecha de Ingreso: abril-2007
Mensajes: 73
Antigüedad: 17 años
Puntos: 1
Re: no anda!!

Si ya lo he probado y tampoco funciona.
Lo ultimo que he hecho es cambiar la funcion include() por la funcion require() y ahi si me muestra ""ACCESO DENEGADO...". ES ovio que no ejecuta la consulta, pero no se por que. no veo el error en el codigo.
  #4 (permalink)  
Antiguo 11/06/2007, 05:16
Avatar de Yranac  
Fecha de Ingreso: junio-2007
Mensajes: 125
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: no anda!!

A ver, tu pones
Código PHP:
$c conexion(); 
Pero donde declaraste la función te falta devolver el identificador de la conexion
Código PHP:
<?
    
function conexion(){
    
$host "localhost"
    
$username "nicolas76\$nico"
    
$password "mipass"
    
$database "nicolas76\$midatabase"


   
$c=mysql_connect($host$username$password);
   if(!
$c){
       die(
"ERROR AL CONECTAR AL SERVIDOR");
       }
       
$db=mysql_select_db($database$c);
       if(!
$db){die("ERROR AL CONCTARSE A LA BASE DE DATOS");}

//TODO OK
return $c;
}
?>
  #5 (permalink)  
Antiguo 11/06/2007, 05:42
 
Fecha de Ingreso: abril-2007
Mensajes: 73
Antigüedad: 17 años
Puntos: 1
Re: no anda!!

Probe agregando el return y tampoco anda. Y a he checkeado los datos en la tabla usuarios y esta todo ok. la verdad es que estoy desconcertado
  #6 (permalink)  
Antiguo 11/06/2007, 06:37
 
Fecha de Ingreso: abril-2007
Mensajes: 73
Antigüedad: 17 años
Puntos: 1
Re: no anda!!

Lo que me parece raro es que si dejo el codigo como estaba inicialmente, y lo implemento de manera local, anda a la perfeccion. sera un problema en el hosting?
  #7 (permalink)  
Antiguo 11/06/2007, 07:06
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Re: no anda!!

Cita:
Iniciado por nikotina Ver Mensaje
Lo que me parece raro es que si dejo el codigo como estaba inicialmente, y lo implemento de manera local, anda a la perfeccion. sera un problema en el hosting?
Viendo tu codigo y en referencia a tu ultimo mensaje, especulo que el problema son las variables superglobales, puesto que la configuracion de localhost admite $user y $clave... he ahi el problema.

Si en tu forma usas GET o POST recoge los valores haciendo uso de las variables superglobales
$_GET["user"] y $_GET["clave"] o $_POST["user"] y $_POST["clave"]

http://www.php.net/manual/es/security.globals.php

Saludos
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #8 (permalink)  
Antiguo 11/06/2007, 09:47
 
Fecha de Ingreso: abril-2007
Mensajes: 73
Antigüedad: 17 años
Puntos: 1
Re: no anda!!

Ahi estaba el problema!!!. le cambie la forma de tomar las variables y andubo a la perfeccion. Muchas gracias por la ayuda y el tiempo cedido de ambos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:53.