Foros del Web » Programando para Internet » PHP »

¿Pero qué demonios hago mal?

Estas en el tema de ¿Pero qué demonios hago mal? en el foro de PHP en Foros del Web. Hola, estoy creando este script pero no me funciona. Creo que no hago mal el if(isset($submit)) pero nose. Cuando relleno el formulario al pulsar el ...
  #1 (permalink)  
Antiguo 24/05/2006, 16:08
 
Fecha de Ingreso: marzo-2006
Mensajes: 147
Antigüedad: 11 años, 8 meses
Puntos: 0
¿Pero qué demonios hago mal?

Hola, estoy creando este script pero no me funciona. Creo que no hago mal el if(isset($submit)) pero nose. Cuando relleno el formulario al pulsar el boton no me sale lo que esta dentro de ese if.

Código PHP:
<html>
<?php
//Incluimos lo que necesitemos
include ("inc/conexion.php");
include (
"inc/head.htm");
include (
"lang/index.php");
?>
<body>
<?php
include ("inc/header.htm");
//Damos un nombre a la sesion
session_name('admin');
//Iniciamos la sesion
session_start();
if (!isset(
$submit))
{
  
session_destroy();
  echo 
"
  <!-- Creamos el formulario -->
  <div class=\"login\">
  <form action=\"$PHP_SELF\" method=\"POST\" enctype=\"multipart/form-data\" name=\"login\">"

  
_ADMIN"<input type=\"text\" size=\"14\" name=\"admin\" /><br />
  <br />"
.
  
_PASS"<input type=\"password\" size=\"14\" name=\"pass\" /><br />
  <br />
  <input type=\"submit\" value=\""
_SUBMIT ."\" name=\"submit\" />
  </form>
  </div>
  "
;
}
elseif (isset(
$submit))
{
  
//Obtenemos datos
  
$sql mysql_query("SELECT * FROM cj_upl_users WHERE admin='$admin'") or die(mysql_error());
  
//Metemos los datos en un array
  
$row mysql_fetch_array($sql);
  
//Codificamos la pass
  
$encode_pass md5($pass);
  if (
$encode_pass == $row['pass'])
  {
  
/* 
     Vamos a crear una session para utilizarla para las demas paginas de autentificacion
  
     Si no entiendes esto no pasa nada, yo tampoco :P Lo voy a explicar lo mejor que pueda
  */
  //Ahora le decimos que no guarde la caché
  
session_cache_limiter('nocache,private');
  
//Asignamos variables a la sesion
  
$_SESSION['id']   = $row['id'];
  
$_SESSION['admin'] = $row['admin'];
  
$_SESSION['pass'] = $row['pass'];
  
  echo 
$row;
  }
}
Un Saludo
  #2 (permalink)  
Antiguo 24/05/2006, 16:37
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 12 años, 5 meses
Puntos: 1
el session_start debe estar al principio del documento php sino no funciona, es decir
<? session_start(); ?>
<html>.............
  #3 (permalink)  
Antiguo 24/05/2006, 16:47
 
Fecha de Ingreso: marzo-2006
Mensajes: 147
Antigüedad: 11 años, 8 meses
Puntos: 0
La he puesto al principio y sigue igual...
  #4 (permalink)  
Antiguo 24/05/2006, 17:37
 
Fecha de Ingreso: mayo-2004
Mensajes: 34
Antigüedad: 13 años, 6 meses
Puntos: 1
A no ser que tengas la directiva register_globals activada, tienes que usar $_POST['submit'] en lugar de simplemente $submit.

Saludos
  #5 (permalink)  
Antiguo 24/05/2006, 23:57
 
Fecha de Ingreso: marzo-2006
Mensajes: 147
Antigüedad: 11 años, 8 meses
Puntos: 0
Muchas gracias, pero ahora el problema que le veo es que no hace bien:
Código PHP:
$sql mysql_query("SELECT * FROM cj_upl_users WHERE admin='$admin'") or die(mysql_error());
  
//Metemos los datos en un array
  
$row mysql_fetch_array($sql); 
¿Por qué lo sé? Porque si pones echo $row['admin'] no sale nada.

Un Saludo
  #6 (permalink)  
Antiguo 25/05/2006, 00:17
 
Fecha de Ingreso: marzo-2006
Mensajes: 147
Antigüedad: 11 años, 8 meses
Puntos: 0
He cambiado todos los $submit, $admin, etc. por $_POST['xxx'] y ya funciona.

Un Saludo y muchas gracias
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 08:55.