Autor Tema: [Ayuda] Codigo me marca indefinido creo  (Leído 977 veces)

Desconectado DJ-Iachi960

  • PHPer@ Fijo
  • ***
  • Mensajes: 165
  • Karma: 0
  • Viva php
    • Ver Perfil
[Ayuda] Codigo me marca indefinido creo
« en: 15 de Diciembre de 2011, 22:35:59 pm »
como ya sabéis yo soy nuevo en php y llevaba una buena racha hasta que se me presento esto
Error :
Notice: Undefined index: Usuario in C:\xampp\htdocs\loggin.php on line 3

Notice: Undefined index: Usuario in C:\xampp\htdocs\loggin.php on line 6
código :
<?
// Extraemos el nombre del usuario
$conect = mysql_query("SELECT * FROM users WHERE name = '".$_SESSION['Usuario']."'")or die(mysql_error());
$con = mysql_fetch_assoc($conect);

if ($_SESSION['Usuario']){
}
 else
{
?>
<?php
/**
 * @author Rastrillox
 * @copyright 2011
 */
if(isset($_SESSION['name'])) {
 
    header("location: index.php");
 
}
 
if(isset($_POST['entrar'])) {
 
    $nick = FilterText($_POST['name']);
    $passw = htmlspecialchars(mysql_real_escape_string(md5($_POST['password'])));
 
    if(empty($nick) || empty($passw)) {
 
        echo 'Debes rellenar todos los campos.';
 
    }
   else
   {
 
        // Comprobamos si hay usuarios con el nombre de usuario y contraseña introducidos.
        $con = mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `name`='" . $nick . "' AND `password`='" . $passw . "'"));
 
        if($con == 0) {
 
            echo 'No existen usuarios con los datos de acceso.';
 
        } else {
 
            // Session iniciada con extio.
            $_SESSION['name'] = $nick;
         
         // Actualizamos la bd para mostrarlo como conectado
         $estado = mysql_query("UPDATE users SET `online` = 'online' WHERE `name` = '".$_SESSION['name']."'");
 
            echo("<meta http-equiv='refresh' content='0;url=index.php'>");
 
        }
 
    }
 
}
 
?>
porfavor ayudarme

Comunidad PHPeros

[Ayuda] Codigo me marca indefinido creo
« en: 15 de Diciembre de 2011, 22:35:59 pm »

Desconectado Pepus

  • PHPerit@
  • *
  • Mensajes: 31
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
    • Google
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #1 en: 15 de Diciembre de 2011, 22:48:34 pm »
Te falta un } por cerrar al final del todo.

Desconectado DJ-Iachi960

  • PHPer@ Fijo
  • ***
  • Mensajes: 165
  • Karma: 0
  • Viva php
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #2 en: 15 de Diciembre de 2011, 23:00:35 pm »
eso esta cubiero abajo de todo el archivo estaba solo que al copiar y pegar me lo deje   :P :-[
pd: si fuese eso el problema me marcaria error de sintaxis
« Última modificación: 15 de Diciembre de 2011, 23:02:13 pm por DJ-Iachi960 »

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
No es gran problema
« Respuesta #3 en: 15 de Diciembre de 2011, 23:32:54 pm »
Es un error "Notice", además de que no importa mucho (no afecta al funcionamiento aunque si se ve feo), usa este código:

<?
// Extraemos el nombre del usuario
$conect mysql_query("SELECT * FROM users WHERE name = &#39;".$_SESSION[&#39;Usuario&#39;]."&#39;")or die(mysql_error());
$con mysql_fetch_assoc($conect);
if ((isset(
$_SESSION[&#39;Usuario&#39;])) && ($_SESSION[&#39;Usuario&#39;])){ 
}
 else 

?>
<?php
/**
 * @author Rastrillox
 * @copyright 2011
 */
if(isset($_SESSION[&#39;name&#39;])) {
    
header("location: index.php");
}
if(isset(
$_POST[&#39;entrar&#39;])) {
    
$nick FilterText($_POST[&#39;name&#39;]);
    
$passw htmlspecialchars(mysql_real_escape_string(md5($_POST[&#39;password&#39;])));
     
if(empty($nick) || empty($passw)) {
        echo &
#39;Debes rellenar todos los campos.&#39;;
    

   else 
   {
        
// Comprobamos si hay usuarios con el nombre de usuario y contraseña introducidos.
        
$con mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `name`=&#39;" $nick "&#39; AND `password`=&#39;" $passw "&#39;"));
        if(
$con == 0) {
            echo &
#39;No existen usuarios con los datos de acceso.&#39;;
        
} else {
            
// Session iniciada con extio.
            
$_SESSION[&#39;name&#39;] = $nick;        
         // Actualizamos la bd para mostrarlo como conectado
         
$estado mysql_query("UPDATE users SET `online` = &#39;online&#39; WHERE `name` = &#39;".$_SESSION[&#39;name&#39;]."&#39;");
            
echo("<meta http-equiv=&#39;refresh&#39; content=&#39;0;url=index.php&#39;>");
        }
    }
}
?>

Desconectado DJ-Iachi960

  • PHPer@ Fijo
  • ***
  • Mensajes: 165
  • Karma: 0
  • Viva php
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #4 en: 16 de Diciembre de 2011, 22:42:59 pm »
Gracias, pituko xdd sel o pediría a rastrillox pero dejo eso de la programación ... y sus codigos eran mano de santo me costaba seguir uno
PD:aCTUALIZE Y ME SIGUE DANDO EROR NOTICE INVESTIGARE YO AUNKE GRAVCIAS POR LA AYUDA
« Última modificación: 16 de Diciembre de 2011, 22:59:49 pm por DJ-Iachi960 »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #5 en: 17 de Diciembre de 2011, 00:07:47 am »
Estás tratando de usar una variable de sesión sin antes usar la función session_start().

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #6 en: 17 de Diciembre de 2011, 05:09:27 am »
Es cierto lo que dicee Physlet. sobre los archivos que te mandé todo esta incluido al index.. por eso al abrir el archivo loggin.php solo siempre te tirara ese error por que no tiene incluido.. como se dice ammm ya ni rrecuerdo si es funcion o variable eso de Session.sart()

Desconectado nmartin021

  • PHPero Avanzado
  • ****
  • Mensajes: 250
  • Karma: 9
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #7 en: 17 de Diciembre de 2011, 14:08:26 pm »
Pon esto al principio del archivo:

<?php
error_reporting
(E_ALL & ~E_NOTICE);
?>


Listo, problema solucionado ;)

Desconectado DJ-Iachi960

  • PHPer@ Fijo
  • ***
  • Mensajes: 165
  • Karma: 0
  • Viva php
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #8 en: 17 de Diciembre de 2011, 14:30:23 pm »
grax a martin k+

Desconectado nmartin021

  • PHPero Avanzado
  • ****
  • Mensajes: 250
  • Karma: 9
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #9 en: 17 de Diciembre de 2011, 14:40:41 pm »
grax a martin k+
Gracias :D
PD: Para más información sobre error_reporting, entra aquí.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #10 en: 17 de Diciembre de 2011, 15:15:36 pm »
Pon esto al principio del archivo:

<?php
error_reporting
(E_ALL & ~E_NOTICE);
?>


Listo, problema solucionado ;)
Si te fijas, el problema está en que intenta acceder a la superglobal $_SESSION, la cual no está inicializada porque no ejecutó session_start() antes.
Además, lo mejor es que para efectos de desarrollo muestre todo tipo de error y así darle solución a TODO.

Los notices de tipo "undefined index" / "undefined variable" a pesar de que sean inofensivos, lo mejor es solucionarlos. Como programador debes entender que hay que inicializar todas las variables a utilizar en el script y realizar todas las validaciones pertinentes para optimizar el código, además de que cada uno de esos NOTICES representa una línea nueva en el error log de apache :P

Usar el código que publicaste es esconder los problemas, no resolverlos.

Para efectos de producción, es decir, cuando ya esté la página terminada y va a ser accedida por el público, si es lo mejor ocultar todos los errores :P
« Última modificación: 17 de Diciembre de 2011, 15:17:33 pm por Physlet »

Desconectado DJ-Iachi960

  • PHPer@ Fijo
  • ***
  • Mensajes: 165
  • Karma: 0
  • Viva php
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #11 en: 17 de Diciembre de 2011, 19:32:31 pm »
el problema no afecta al sistema asi que tampoco vulnera la webp or asi decirlo esconderlo es lo mejor ya que como dijo pituko "queda feo" XD

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #12 en: 17 de Diciembre de 2011, 19:36:20 pm »
el problema no afecta al sistema asi que tampoco vulnera la webp or asi decirlo esconderlo es lo mejor ya que como dijo pituko "queda feo" XD
Los NOTICE son mensajes de error. Quizás no afecte a la aplicación, pero es buena practica corregirlos. Como te dije, de igual forma cada NOTICE es una línea nueva en el log de error de apache.

Desconectado nmartin021

  • PHPero Avanzado
  • ****
  • Mensajes: 250
  • Karma: 9
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #13 en: 17 de Diciembre de 2011, 20:03:09 pm »
Physlet, sí, es mejor solucionarlos, pero el necesitaba una solución y se la di porque yo tuve muchos dolores de cabeza con eso. Con el tiempo comprenderá que es mucho mejor inicializar las variables.

Desconectado DJ-Iachi960

  • PHPer@ Fijo
  • ***
  • Mensajes: 165
  • Karma: 0
  • Viva php
    • Ver Perfil
Re:[Ayuda] Codigo me marca indefinido creo
« Respuesta #14 en: 17 de Diciembre de 2011, 21:06:26 pm »
yo de momento en el archivo he puesto eso peor antes de ponerlo hice una copia y lo estoy intentando solucionar estoy aprendiendo php si no lo intentara no aprendería mas de lo que se ....