Foros del Web » Programando para Internet » PHP »

Warning: reset() [function.reset]: Passed variable is not an array or object in

Estas en el tema de Warning: reset() [function.reset]: Passed variable is not an array or object in en el foro de PHP en Foros del Web. miren la verdad soy nuevo en esto, baje un template de internet que en google chrome funciona DE MARAVILLA como todo lo que hace ese ...
  #1 (permalink)  
Antiguo 10/04/2012, 02:22
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Busqueda Warning: reset() [function.reset]: Passed variable is not an array or object in

miren la verdad soy nuevo en esto, baje un template de internet que en google chrome funciona DE MARAVILLA como todo lo que hace ese explorador.

pero ahora tengo un problema con IE .. que para no variar no le gusta el codigo y la hace de pedo por todo. el problema es que no se que diablos no le gusta. aqui pongo todo el php.

esta chingadera marca error en Warning: reset() [function.reset]: Passed variable is not an array or object in .../contact.php on line 15

y en esta linea Warning: current() [function.current]: Passed variable is not an array or object in .../contact.php on line 22

gracias!

Código PHP:
<?
Error_Reporting
(E_ALL & ~E_NOTICE);

 while (
$request current($_REQUEST)) {
     if (
key($_REQUEST)!='recipient') {
        
$pre_array=split ("&777&",  $request);
        
$post_vars[key($_REQUEST)][0]=$pre_array[0];
        
$post_vars[key($_REQUEST)][1]=$pre_array[1];
    }
    
next($_REQUEST);
}



reset($post_vars);


$subject="From ".$post_vars['your_name'][0] ;
$headers"From: ".$post_vars['your_email'][0] ."\n";
 
$headers.='Content-type: text/html; charset=iso-8859-1';
 
$message='';
  while (
$mess current($post_vars)) {
      if ((
key($post_vars)!="i") && (key($post_vars)!="your_email") && (key($post_vars)!="your_name")) {

         
$message.="<strong>".$mess[1]."</strong>&nbsp;&nbsp;&nbsp;".$mess[0]."<br>";
    }
    
next($post_vars);
 }

mail($_REQUEST['recipient'], $subject,  "
<html>
<head>
 <title>Contact letter</title>
</head>
<body>
<br>
  "
.$message."
</body>
</html>" 
$headers);
echo (
"Your message was successfully sent!");

?>
<script>
    resizeTo(300,300);
</script>
  #2 (permalink)  
Antiguo 10/04/2012, 05:19
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Warning: reset() [function.reset]: Passed variable is not an array or obje

En realidad te esta marcando warnings, no son errores en si. Si tu problema es que te muestra los warnings podes sacarselos para que no te los muestre, pero segun lo que posteaste, los warnings no te corta la ejecucion del programa.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 10/04/2012, 08:53
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Warning: reset() [function.reset]: Passed variable is not an array or obje

como puedo quitar las advertencias? y es que este php es para mandar un correo de contacto ... al final de las warnings no manda el correo
  #4 (permalink)  
Antiguo 10/04/2012, 08:58
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: Warning: reset() [function.reset]: Passed variable is not an array or obje

Hola aironet,

si se intenta hacer un reset a una variable que no se ha inicializado te saltará el warning.
que es lo q te pasa con $post_vars

prueba con un $post_vars =""; al principio de tu código, después del Error_reporting.

en cuanto al Error_reporting
aqui puedes ver el nivel de reporte de errores que quieras -> [URL="http://php.net/manual/es/function.error-reporting.php"]http://php.net/manual/es/function.error-reporting.php[/URL]
Código PHP:
<?php

// Desactivar toda notificación de error
error_reporting(0);

// Notificar solamente errores de ejecución
error_reporting(E_ERROR E_WARNING E_PARSE);

// Notificar E_NOTICE también puede ser bueno (para informar de variables
// no inicializadas o capturar errores en nombres de variables ...)
error_reporting(E_ERROR E_WARNING E_PARSE E_NOTICE);

// Notificar todos los errores excepto E_NOTICE
// Este es el valor predeterminado establecido en php.ini
error_reporting(E_ALL E_NOTICE);

// Notificar todos los errores de PHP (ver el registro de cambios)
error_reporting(E_ALL);

// Notificar todos los errores de PHP
error_reporting(-1);

// Lo mismo que error_reporting(E_ALL);
ini_set('error_reporting'E_ALL);

?>
Saludos
  #5 (permalink)  
Antiguo 10/04/2012, 09:23
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Warning: reset() [function.reset]: Passed variable is not an array or obje

Si tenes acceso al php.ini del servidor, tambien lo podes quitar de ahi, buscando:

Código C:
Ver original
  1. error_reporting = E_ALL & ~E_DEPRECATED

y comentarlo con un ; delante
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #6 (permalink)  
Antiguo 10/04/2012, 17:11
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Warning: reset() [function.reset]: Passed variable is not an array or obje

como bien me dice bugger y linuxzero solo eran warnings y los elimine con el error_reporting en sus diferentes modalidades ... ahora no hay warnings y me sale el mensaje de "Your message was successfully sent!" ... el problema es que no recibo nada en mi bandeja.

cabe recordar que el codigo funciona, funciona perfectamente en chrome ... el problema es cuando lo hago con IE.
  #7 (permalink)  
Antiguo 11/04/2012, 01:14
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: Warning: reset() [function.reset]: Passed variable is not an array or obje

Hola de nuevo,

por lo que veo en tu código, no veo que compruebes que se ha mandado correctamente el correo.

prueba a meterle un condicionante, a ver si con IE salta algun mensaje:

Código PHP:
$cuerpo=  "<html> 
<head> 
 <title>Contact letter</title> 
</head> 
<body> 
<br> 
  "
.$message.
</body> 
</html>"
;
if (
mail($_REQUEST['recipient'], $subject,  $cuerpo$headers)){
echo 
"Your message was successfully sent!";
} else { 
"No se pudo enviar el email"

  #8 (permalink)  
Antiguo 18/04/2012, 03:04
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Warning: reset() [function.reset]: Passed variable is not an array or obje

gracias bugger pero tampoco funciona me sale otro error y todavia no manda el correo ...

en serio, no entiendo porque en chrome funciona y en IE para nada ....

salta los warnings y ahora sale el mensaje de correo enviado, pero no es cierto, no manda nada.

Etiquetas: html, object, reset, warning, variables
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:41.