Foros del Web » Programando para Internet » PHP »

Problema con explode

Estas en el tema de Problema con explode en el foro de PHP en Foros del Web. Hola buenas tengo un problema de logica y le eh modificado todo el presunto daño que puediese presentar pero no doy Error: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 13/02/2013, 16:06
Avatar de VencerNow  
Fecha de Ingreso: noviembre-2010
Ubicación: Mexico D.F.
Mensajes: 27
Antigüedad: 13 años, 5 meses
Puntos: 1
Pregunta Problema con explode

Hola buenas tengo un problema de logica y le eh modificado todo el presunto daño que puediese presentar pero no doy

Error:
Código Error:
Ver original
  1. Notice: Undefined variable: tipo in C:\wamp\www\proyecto\subearchivo.php on line 17
  2.  
  3. Warning: explode() expects parameter 3 to be long, string given in C:\wamp\www\proyecto\subearchivo.php on line 17

Si pudiesen ayudarme porfavor ya tengo mas de 2 dias pegado en el ordenador.
Este es el codigo:
Código PHP:
<?php
 
if ($_POST)

{

 
$str "ABCDEFGHIJKLMNOPQESTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
 
$cad "";
 
define('separador',DIRECTORY_SEPARATOR);
 for (
$i=0;$i<12;$i++) 
 {
 
$cad .= substr($str,rand(0,62),1);
 }
 
 
$tamano $_FILES'file' ][ 'size' ];
 
$tamano_max="5000000";
 if( 
$tamano $tamano_max){
 
$destino 'uploaded' ;
  
$sep=explode('image/'$_FILES'file' ]['tmp_name'], $destino separador $cad'.' $tipo);
 
$tipo=$sep;
 if(
$tipo == "gif" || $tipo == "jpeg" || $tipo == "gif" || $tipo == "bmp" || $tipo == "pdf"){
 
move_uploaded_file ($_FILES'file'][ 'tmp_name' ], $destino '/' $cad '.' $tipo);
 include(
'post.html');
}}}
?>
  #2 (permalink)  
Antiguo 13/02/2013, 16:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con explode

La pregunta que me hago es: ¿ya leíste en el manual acerca de como usar explode()?

Porque los errores son por mal uso de la función, además declaras $tipo después de la linea dónde la usas, eso carece completamente de sentido.

Primero debes definir la variable y luego usarla, no al revés.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/02/2013, 16:21
Avatar de VencerNow  
Fecha de Ingreso: noviembre-2010
Ubicación: Mexico D.F.
Mensajes: 27
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Problema con explode

Bueno, lo que pasa es que soy diseñador mas no programador y la verdad ando en pañales en el ambiente programacion, y si eh leido acerca de el, segun entendí sirve para separar la url, pero en todos los ejemplos que leo no estan relacionados, por lo cual se me hace dificil entender.

Como puedes observar es un codigo sencillo pero bueno, si me puedes guiar por el camino correcto te agradeceria, con que me arregles ese problema yo checo que ise mal y sobre de eso aprendo gracias por la oportuna respuesta.

Mi codigo quedaria si mas no entendi asi

Código PHP:
Ver original
  1. $tipo=$sep;
  2.  $sep=explode('image/', $_FILES[ 'file' ]['tmp_name'], $destino . separador . $cad. '.' . $tipo);

Pero sigue presentando el problema

Última edición por VencerNow; 13/02/2013 a las 16:36
  #4 (permalink)  
Antiguo 13/02/2013, 16:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con explode

Es que no necesitas que nadie te explique dicho problema, el mensaje de error es bastante claro:
Cita:
Warning: explode() expects parameter 3 to be long, string given in C:\wamp\www\proyecto\subearchivo.php on line 17
Si consultas el manual verás cómo es que debe hacerse.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 13/02/2013, 17:16
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: Problema con explode

Si uno lo traduce (desde el traductor de google por ejemplo) queda:
Cita:
Advertencia: explode() espera que el 3er parámetro sea un entero largo, cadena dada
Creo que más claro que eso imposible.
  #6 (permalink)  
Antiguo 13/02/2013, 17:26
Avatar de VencerNow  
Fecha de Ingreso: noviembre-2010
Ubicación: Mexico D.F.
Mensajes: 27
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Problema con explode

Ya eh estado leyendo el manual y salgo igual, no entiendo el porque me dice que es muy largo el tercer parametro
  #7 (permalink)  
Antiguo 13/02/2013, 17:34
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: Problema con explode

LONG: Entero largo, es decir, un número. La diferencia que hay entre long e int es el rango de valores permitidos para almacenar.
  #8 (permalink)  
Antiguo 13/02/2013, 18:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con explode

Mira, según entiendo lo que buscas con explode() es separa el valor del MIME usando "image/" como delimitador, pero el punto es que el tercer argumento que usas no es correcto.

El tercer argumento, como dice el manual, establece el limite de "cortes" de la cadena, el segundo es la cadena a cortar y el primero la cadena de corte.

Además lo que devuelve la función es un array y tu estás usando el resultado como si fuera cadena.

Se nota que has leído el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: explode
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 14:26.