Foros del Web » Programando para Internet » PHP »

undefined function

Estas en el tema de undefined function en el foro de PHP en Foros del Web. Estoy trabajando en un sitio web hecho en php + mysql. Trabajo en mi pc donde tengo levantado un servidor apache, php, y mysql, todo ...
  #1 (permalink)  
Antiguo 06/10/2008, 23:06
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 10 meses
Puntos: 7
Pregunta undefined function

Estoy trabajando en un sitio web hecho en php + mysql.

Trabajo en mi pc donde tengo levantado un servidor apache, php, y mysql, todo instalado con el paquete appserv 2.5.9.

Subí los ficheros a un host remoto y me funciona todo bastante bien, hasta que llego a un alta donde recibo archivos. Para subirlos al servidor tengo problemas cuando al querer ver la extensión del archivo utilizo la posición del punto.


Fatal error: Call to undefined function: stripos() in ... utilidades.php on line 60


No sé por qué pasa esto, aparentemente no maneja la función stripos() el servidor, pero en mi pc funciona muy bien.

Este es el bloque de código:

Código PHP:
function upload($nombre_archivo$tamanio_archivo$destino$nuevonombre$temp)
{
    
$extension strrchr($nombre_archivo,'.');

    
//Se busca la posición del punto para saber hasta dónde va el viejo nombre
    
$posicionpunto strpos($nombre_archivo".");
    
//Obtengo nombre viejo para poder buscarlo en el nombre original
    
$nombreviejo substr($nombre_archivo0$posicionpunto);
    
//Sustituyo nombre viejo por nombre nuevo
    
$nombrefinal substr_replace($nombre_archivo$nuevonombre0strlen($nombreviejo));
    
//Coloco el nombre final luego del directorio de destino
    
$destino $destino.$nombrefinal;

    
//Busca si la extensión está dentro de las aceptadas
    
if (!((stripos($extension"jpg") || stripos($extension"jpeg") || stripos($extension"gif") || stripos($extension"png") || stripos($extension"txt") || stripos($extension"doc") || stripos($extension"xls") || stripos($extension"ppt") || stripos($extension"pps")) && ($tamano_archivo 1000000))) {
        return 
false;
    }else
    {
        if (
move_uploaded_file($temp$destino)){
            return 
true;
        }else
        {
            return 
false;
        }
    }

  #2 (permalink)  
Antiguo 06/10/2008, 23:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: undefined function

verifica que sea la misma versión de PHP en tu host y local
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/10/2008, 05:55
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 18 años, 3 meses
Puntos: 22
Respuesta: undefined function

stripos() es una función de php5. Debe haber una versión anterior en tu hosting mientras que el appserv viene con php5.

Podrías reemplazar esa línea con algo así:

Código PHP:
$extension strtolower(strrchr($nombre_archivo,'.'));
...
if ((
$extension!=".jpg" && $extension!=".jpeg" && $extension!=".gif" && $extension!=".png"  && $extension!=".txt" && $extension!=".doc" && $extension!=".xls" && $extension!=".ppt" && $extension!=".pps") || ($tamano_archivo 1000000)) { 
A menos que hayas utilizado stripos() por algo en especial, caso en que podrías intentar reemplazarla por strpos() que convirtiendo la extensión a minúsculas como puse arriba teóricamente cumple la misma función.

Saludos

Saludos
  #4 (permalink)  
Antiguo 07/10/2008, 06:00
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 10 meses
Puntos: 7
Respuesta: undefined function

Les agradezco, voy a intentar lo propuesto.

Las versiones de PHP son las siguientes:

Local--->PHP 5.2.3
Host---->PHP 5.2.5

Ambas máquinas trabajan en base a versiones superiores a la 5, e incluso la versión del servidor es más reciente que la que tengo yo, de todas formas no funciona.
  #5 (permalink)  
Antiguo 07/10/2008, 06:07
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 18 años, 3 meses
Puntos: 22
Respuesta: undefined function

Que extraño... ¿Esa es la versión que dicen tener o la que tiene tu host realmente?
Porque algunos hostings te dejan elejir desde el panel de control entre php4 y php5, pero en los planes ponen php5.

Saludos.
  #6 (permalink)  
Antiguo 07/10/2008, 20:42
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 10 meses
Puntos: 7
Respuesta: undefined function

Es bastante raro sí, pero de todas formas ya lo solucioné usando strpos en lugar de stripos.

Muchas gracias por tomarse las molestias del caso.
  #7 (permalink)  
Antiguo 07/10/2008, 21:28
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: undefined function

Siempre es bueno los comentarios que dejan otros usuarios en el manual de cada función PHP. Fíjate en esta función que un usuario publicó, y que podrías usar en versiones de PHP < 5:

Código php:
Ver original
  1. if (!function_exists("stripos")) {
  2.     function stripos($str,$needle,$offset=0) {
  3.         return strpos(strtolower($str),strtolower($needle),$offset);
  4.     }
  5. }
Saludos,
  #8 (permalink)  
Antiguo 08/10/2008, 07:53
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 10 meses
Puntos: 7
Respuesta: undefined function

En ambos lados uso una versión superior a la 5, de todas formas gracias porque esto me va a servir igual sin dudas.
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 22:04.