Foros del Web » Programando para Internet » PHP »

no entiendo que falla en estas líneas de php

Estas en el tema de no entiendo que falla en estas líneas de php en el foro de PHP en Foros del Web. Tengo un problema con mysql y php, tengo una página con dos campos (name y clave) que una vez rellenados los campos me envía a ...
  #1 (permalink)  
Antiguo 19/04/2006, 11:47
Avatar de niconico  
Fecha de Ingreso: enero-2006
Mensajes: 166
Antigüedad: 11 años, 11 meses
Puntos: 0
no entiendo que falla en estas líneas de php

Tengo un problema con mysql y php, tengo una página con dos campos (name y clave) que una vez rellenados los campos me envía a validar php que dependiendo si el usuario está en la base de datos o no ne enviará a inde.php o a insertar.htm.
validar.php tiene este código
Código:
<html>
<body>
<?php
<?php session_start();?>
$Link=mysql_connect("localhost","root","patan");
Mysql_select_db("periplo");
$sql="select * from usuario where nombre='".$nombre."' AND clave='".$clave."'";
$result=mysql_query($sql);
if (Mysql_num_rows($result)>0)
{
	$_SESSION['permiso']=1;
	header("location:indice.php");
}
else
{
   	$_SESSION['permiso']=0;
	header("location:contrase.html");
}

?>
</body>
</html>
Pero lo único que me hace es que el explorador me lee desde el >0 no se porqué, si le pongo ==0 no me sale nada, no lo entiendo.
Muchas gracias
  #2 (permalink)  
Antiguo 19/04/2006, 12:01
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Mi no entender
1)¿No te valida al usuario?
2) Donde esta la declaracion de $nombre y $clave?. Recuerda que si estas enviando los datos por POST o por GET, los debes recibir ya sea con $_POST[] o $_GET[]
  #3 (permalink)  
Antiguo 19/04/2006, 12:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
session_start() ha de estar por encima de todo ese HTML que tienes ahí (<html> .. etc).

Si ese script hace un proceso como el que presentas que:
1) hace una consulta SQL a una BBDD.
2) en función de su resultado .. redirecciona.

Todo ese HTML que indicas ahí NO tiene sentido. Fijate que PHP NUNCA va a generar esa página .. en cualquier caso siempre va a redireccionar y lo hará por cabeceras HTTP (que se envian -antes- de ese HTML o "salida" que puedas generar o tener ahí).

Debes pensar que estás programando en PHP no en "HTML con incrustraciones de PHP". Es decir . .que PHP va a generar tu página "HTML" (o lo que esta contenga como salida).

Cita:
Pero lo único que me hace es que el explorador me lee desde el >0 no se porqué, si le pongo ==0 no me sale nada, no lo entiendo.
No entendí nada .. Pero si tu navegador aparentemente no ves nada .. mira su "ver-> código fuente" .. a veces por ahí sale un mensaje de error que no se presentó por otras razones.

También puede ser que tengas "apagado" que PHP muestre mensajes de error. Eso lo puedes "forzar" con error_reporting() y ajustando tu php.ini sobre la directiva: error_display (o al reves) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 19/04/2006, 12:59
Avatar de niconico  
Fecha de Ingreso: enero-2006
Mensajes: 166
Antigüedad: 11 años, 11 meses
Puntos: 0
muchas gracias lo probaré y os cuento.
Respecto al html es cierto que no pinta nada pero tampoco "entorpece" nada, ahí no creo que esté el problema. Respecto a lo que no entiendes es que mi navegador, con este código, me pone una vez que introducido el nombre y la clave y le he dado a enter
Código:
>0)
{
	$_SESSION['permiso']=1;
	header("location:indice.php");
}
else
{
   	$_SESSION['permiso']=0;
	header("location:contrase.html");
}

?>
</body>
</html>
es como si no leyera esa parte del código.
  #5 (permalink)  
Antiguo 19/04/2006, 13:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Respecto al html es cierto que no pinta nada pero tampoco "entorpece" nada, ahí no creo que esté el problema
Si que "entorpece" .. sobre todo el código HTML que puedas tener antes de header(), session_start() y funciones afines que -envian- cabeceras HTTP antes al navegador .. Esto no es un "capricho" mio, es la definición del portocolo HTTP simplemente. (además de realmente pensar en programar en PHP y no como decía antes).

De hecho deberías ver un "bonito" mensaje de error referente a este tema. (tal vez no lo veas por otro tipo de configuración de PHP concreta en tu caso).


Cita:
Respecto a lo que no entiendes es que mi navegador, con este código, me pone una vez que introducido el nombre y la clave y le he dado a enter
Código PHP:
<?php
<?php session_start();?>
$Link=mysql_connect("localhost","root","patan");
Mysql_select_db("periplo");
$sql="select * from usuario

Ok .. ahora queda más claro el problema y eso ayuda a ver detenidamente cierta parte de tu código:

Fijate .. te falta un <? antes de $Link .. !!!! .. Tienes un buen "popurí" de <?php y demás . .usa UNO Sólo ..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 20/04/2006, 02:10
Avatar de niconico  
Fecha de Ingreso: enero-2006
Mensajes: 166
Antigüedad: 11 años, 11 meses
Puntos: 0
He modificado el código y he puesto
Código:
<?php
session_start();
$Link=mysql_connect("localhost","root","patan");
Mysql_select_db("periplo");
$sql="select * from usuario where nombre='".$nombre."' AND clave='".$clave."'";
$result=mysql_query($sql);
if (Mysql_num_rows($result)>0)
{
	$_SESSION['permiso']=1;
	header("location:indice.php");
}
else
{
   	$_SESSION['permiso']=0;
	header("location:contrase.html");
}

?>
y lo que me hace ahora es que al darle a enter me sale en la pantalla todo el código, no hay ningún mensaje de error simplemente el código es como si no lo leyera. Teóricamente es un código sencillo comprueba los datos rellenados con la base de datos y si ésta reenvía algo pues vas a una página y sino reenvía nada pues vas a otra.
  #7 (permalink)  
Antiguo 20/04/2006, 07:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. a ver .. PHP en general en ese servidor te funciona?

Esto funciona?:

Código PHP:
<?php
phpinfo
();
?>
Ese escrpt lo llamas nombre.php (o lo estás poniendo como .html?). Debe ser .php su extensión.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 20/04/2006, 10:17
Avatar de niconico  
Fecha de Ingreso: enero-2006
Mensajes: 166
Antigüedad: 11 años, 11 meses
Puntos: 0
na al final lo resolvio un amigo, era un error en la configuración del php, pero de todos modos muchas gracias
  #9 (permalink)  
Antiguo 20/04/2006, 10:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por niconico
na al final lo resolvio un amigo, era un error en la configuración del php, pero de todos modos muchas gracias
Y que configuración tocó tu amigo?. Es decir .. tenías problemas con la instalación en sí de PHP o de qué?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 12:46.