Si tenemos por ejemplo un formulario de contacto con las variables definidas así:
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
$spamcheck = $_REQUEST['spamcheck'];
$error = false;
Nos aparecerá el siguiente mensaje en nuestra web: "
Notice: Undefined index:" porque que estamos accediendo a un array cuyo indice no existe. Lo solucionamos de esta forma:
if (isset($_REQUEST['name'])) {
$name = $_REQUEST['name'];
} else {
$name = "";
}
if (isset($_REQUEST['email'])) {
$email = $_REQUEST['email'];
} else {
$email = "";
}
if (isset($_REQUEST['subject'])) {
$subject = $_REQUEST['subject'];
} else {
$subject = "";
}
if (isset($_REQUEST['message'])) {
$message = $_REQUEST['message'];
} else {
$message = "";
}
if (isset($_REQUEST['spamcheck'])) {
$spamcheck = $_REQUEST['spamcheck'];
} else {
$spamcheck = "";
}
php_flag display_errors 1
ResponderEliminarphp_value error_reporting 7
en .htacces
Excelente, funka de maravilla!
EliminarMe sirvió, gracias
ResponderEliminarGracias xD
ResponderEliminarMuchas gracias, si funcionó XP
ResponderEliminargracias :D
ResponderEliminarMuchas gracias :)
ResponderEliminarotra solucion es modificando la configuracoin del php en php.ini
ResponderEliminarla cuestion es que modificar no lo se por que en un servidor linux funciona bien pero en el wamp y xamp no funcionan da el mismo error
Cuanta menos configuración se toque mejor...
ResponderEliminar¡¡¡ Muchas gracias !!!!!
Gracias por el dato .HTACCESS !!!
ResponderEliminarPara quienes tienen problemas para crear el archivo .htaccess (debido a que no tiene nombre antes del punto) pueden usar Unlocker (freeware) y seleccionar "rename" como acción.
Muchas GRACIAAAAAAAAAAAAAAAAAAAAAAAAS!!!!!!!!! Me sirvió un saludo hermano :D
ResponderEliminarGracias Muy bueno
ResponderEliminarmuchas gracias
ResponderEliminarmuchas gracias
ResponderEliminarsolution:
ResponderEliminarIf you are pretty sure about what you are doing use @.
@$name = $_REQUEST['name'];
Perfecto !!!!
EliminarFunciona !!
EliminarOtimo menin@!! Mas simple y logico imposible! :) Thanks!
EliminarGenial, la mejor solución
Eliminarexcelente!! sos un genio! te consulto...que funcion tiene el "@" ? muchisimas gracias!
EliminarFunciona, claro que funciona, pero no sabeis lo que estais haciendo en cuanto a rendimiento de vuestra aplicacion.
EliminarEl uso de @ para evitar mostrar los errores está totalmente desaconsejado por la cantidad de recursos que consume. No imagino una aplicacion toda llena de @.
Lo que se indica en este articulo es cómo conseguir evitar esos NOTICE, todo lo demas es esconderlos para que no se vean.
EXCELENTE ME SIRVIO.
EliminarGracias!!! esta solución es mucho más práctica! =D
Eliminargracias :DDD
ResponderEliminarMuchas gracias me sirvio
ResponderEliminarGRACIAS...SOLUCIONO EL PROBLEMA...
ResponderEliminarMuchas Gracias por tu ayuda XD
ResponderEliminarLO MEJOR Y MÁS RÁPIDO, UTILIZEN : error_reporting(E_ALL ^ E_NOTICE);
ResponderEliminarGracias! me sirvió :)
ResponderEliminarHola, pues a mi no me ha funcionado la solución propuesta en este blog. Voy a detallar mis resultado. Cuando el formulario se envía utilizando el metodo get, puedo ver en la barra de direcciones el query que deberia llegar al script que actua como cgi, y efectivamente puedo ver las variables y sus valores, pero cuando trato de extraerlo aparece como si estuviera vacio y aparece el error "Notice: Undefined index:..." que es de lo que trata el post, hasta donde entiendo la corrección que proponen es de asignar un valor a la variable para que no arroje el error; si por algun motivo el valor no viene en el query, es decir si $_REQUEST["variable"] existe se asigna, y sino se llena con una cadena vacia y resuelto no hay error, pero en mi caso el problema es que puedo ver los parámetros debido al método get y también puedo ver el query utilizando $_SERVER['QUERY_STRING'], pero no he podido extraerlo de $_REQUEST["variable"] ni de $_GET['variable'], asi que agradecería mucho si alguien tiene alguna idea de cual es el problema y como podría solucionarlo, he hecho esta prueba utilizando el ejemplo propuesto en la pagina de php "http://php.net/manual/es/tutorial.forms.php", y lo estoy probando en XAMPP 1.8.2 para windows.
ResponderEliminarcon las soluciones que dan, el error desaparece, pero los valores que deberia traer la query quedan vacios para esas variables que estaban mecionadas en el error...
ResponderEliminarDisculpen alguien me podría ayudar tengo una lista desplegable que se alimenta de una base de datos, el problema es que no le he podido pasar esos parámetros para que sean la consulta de la base de datos he hecho varias cosas pero me dice ahora undefined index, que puedo hacer?
ResponderEliminarGracias
Ya me estaba dando dolores de cabeza ese erro! Esto me sirvio! Gracias!
ResponderEliminargracias
ResponderEliminarsolvento mi error
Excelente!! funciona de diez
ResponderEliminarhola por favor me pueden ayudar.
ResponderEliminarTengo el mismo mensaje de error que indican inicialmente, he ingresado la línea de código
error_reporting(E_ALL ^ E_NOTICE);
y ya no aparecen los errores, pero cuando quiero ir a otros enlaces del sistema, me aparece este error:
Notice: Undefined variable: HTTP_SESSION_VARS in C:\xampp\htdocs\Control\Menus\Marcos.php on line 3
He leído un poco y me dice que se trata de una configuración del servidor, pues el mismo código funciona en otro computador sin problema.
Me pueden ayudar porfa.
Gracias
Mil gracias amigos, no lo podía solucionar.
ResponderEliminarGracias!, Muy bueno
ResponderEliminarMUY WUENO
ResponderEliminarmuchas Gracias
ResponderEliminarMuchas gracias me sirvió de muchísimo, llevaba semanas de quebradero de cabeza intentándolo corregir yo sólo pero al final no pudé y tuve que recurrir a San-Goolge y encontré tú página y con ella la solución, de nuevo MUCHAS GRACIAS AMIGO, Dios te bendiga y te ayude...
ResponderEliminarEstimados una solución fácil y rápida es modificar el php.ini la siguiente linea.
ResponderEliminardisplay_errors = on (se cambia a off);
Excelente muchas gracias.
ResponderEliminarsolucionado muchas gracias
ResponderEliminarEL esconder los errores con el @ o en el .httacces no soluciona el log que queda en el archivo php_error_log, por lo tanto aconsejo siempre ir dejando sus variables de la siguiente manera:
ResponderEliminar(!empty($_POST['mi_variable'])?$_POST['mi_variable']:"")
Merci
ResponderEliminarmil gracias
ResponderEliminarCRACK GRACIAS!!
ResponderEliminarMuy buena explicación. Me ha sido muy útil. ¡Gracias!
ResponderEliminarcorta
ResponderEliminarMe sirvió, ¡muchas gracias!
ResponderEliminar$_SESSION['usuario'] y me sigue dan do error Notice
ResponderEliminar: Undefined index: usuario in
C:\xampp\htdocs\PAGINA-WEB0\carritodecompra.php
on line
101
Despues de
ResponderEliminary si lo tengo con post sirve igual
ResponderEliminarcambiandole lo que tu le colocaste
Excelente si me funciono , gracias
ResponderEliminarmuchas gracias...funciono es lo que estaba buscando...
ResponderEliminarPermiteme felicitarte, excelente aporte
ResponderEliminarLo probe con el software postman y el resultado en json me sale asi:
ResponderEliminar[
{
"0": "Tocofa S.A. de C.V.",
"razon_social": "Tocofa S.A. de C.V."
},
{
"0": "Tocofa S.A. de C.V.",
"razon_social": "Tocofa S.A. de C.V."
},
{
"0": "Tocofa S.A. de C.V.",
"razon_social": "Tocofa S.A. de C.V."
}
]
a que se debera?