Problema con el explode

Iniciado por vensernow, 14 Febrero 2013, 19:08 PM

0 Miembros y 1 Visitante están viendo este tema.

vensernow

Hola buenas, tengo un problema con el xplode me sale este error
Código (xml) [Seleccionar]

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



Este es mi código y la verdad lo tome prestado y solo ise algunas modificaciones pero no entiendo como para que aplicaron explode.

Código (php) [Seleccionar]


<?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'); 
}}} 
?>



Si alguien me puede ayudar estaria muy agradecido   :D

EFEX

Dice que la variable $tipo no esta definida.

Código (php) [Seleccionar]

$tipo=$sep;
$sep=explode('image/', $_FILES[ 'file' ]['tmp_name'], $destino . separador . $cad. '.' . $tipo);
GITHUB 

vensernow

Cita de: EFEX en 14 Febrero 2013, 21:26 PM
Dice que la variable $tipo no esta definida.

Código (php) [Seleccionar]

$tipo=$sep;
$sep=explode('image/', $_FILES[ 'file' ]['tmp_name'], $destino . separador . $cad. '.' . $tipo);


Alli quede resuelto talvez el problema de la variable indefinida, y lo de el explode?

alister

Cita de: vensernow en 14 Febrero 2013, 21:41 PM
Alli quede resuelto talvez el problema de la variable indefinida, y lo de el explode?

prueba a ejecutar el codigo y nos lo dices tú mismo
Back 2 business!

vensernow

ya le acomode como me dijeron y sale lo mismo

Cita de: alister en 14 Febrero 2013, 22:24 PM
prueba a ejecutar el codigo y nos lo dices tú mismo


Citar

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

los dos tienen una tabla que dice call stak  en un apartado que dice funcion dice en ambos {main}()

y en la de explode dice explode()

alister

CitarWarning: explode() expects parameter 3 to be long, string given in C:\wamp\www\proyecto\subearchivo.php on line 17

traducido
Citar
Advertencia: explode() espera que el tercer parametro sea de tipo long; en su lugar se le ha pasado una cadena de texto (subearchivo.php, línea 17)

por tanto:

$sep=explode('image/', $_FILES[ 'file' ]['tmp_name'], $destino . separador . $cad. '.' . $tipo);

en ese explode, los parametros pasados son:

parametro 1
'image/'

parametro 2
$_FILES[ 'file' ]['tmp_name']

parametro 3 (el conflictivo, el que deberia ser de tipo long pero es una cadena de texto, como dice el error)
$destino . separador . $cad. '.' . $tipo

y aqui se explica cómo se usa explode()
http://php.net/manual/es/function.explode.php

con estos datos sobre la mesa, tú que crees que está mal?
cómo lo arreglarias?
Back 2 business!

vensernow

El parametro tres es el que dice que esta mal, ya lei el manual pero no entiendo para que lo esta usando, reitero es un diseño que tome de otro lado y lo personalice creyendo que si funcionaria y nada mas le aumente lo que son la capacidad el nombre aleatorio, los formatos y una que otra cosilla pero ese ya vi el funcionamiento pero no entiendo  :-[  :-[  :-[ por ms obvio que parezca el error yo no comprendo ya que lo mio es el diseño grafico y apenas ando iniciando en php, si me podais ayudar con el resultado? y ya vere en que estoy mal o en que estuvo mal y talvez así comprenda el error.  :(

alister

Cita de: vensernow en 15 Febrero 2013, 00:46 AM
El parametro tres es el que dice que esta mal, ya lei el manual pero no entiendo para que lo esta usando, reitero es un diseño que tome de otro lado y lo personalice creyendo que si funcionaria y nada mas le aumente lo que son la capacidad el nombre aleatorio, los formatos y una que otra cosilla pero ese ya vi el funcionamiento pero no entiendo  :-[  :-[  :-[ por ms obvio que parezca el error yo no comprendo ya que lo mio es el diseño grafico y apenas ando iniciando en php, si me podais ayudar con el resultado? y ya vere en que estoy mal o en que estuvo mal y talvez así comprenda el error.  :(

es que el codigo está incompleto o mal hecho.

le falta, por ejemplo, determinarl el type del archivo.

y el explode no tiene ni pies ni cabeza, no hay por donde cogerlo. es un disparate.

ya que estas reciclando código y no te importa porque no pierdes nada que hayas hecho, ¿puedes explicar qué quieres hacer exactamente para que podamos prescindir de este trozo de codigo problemático y usar uno decente?

sea lo que sea, seguro que ya esta inventado y podemos encontrar un snippet valido. despues de todo parece que lo único que intentas es cargar ficheros y colocarlos en una carpeta aleatoria.
Back 2 business!

vensernow

Cita de: alister en 15 Febrero 2013, 00:58 AM
es que el codigo está incompleto o mal hecho.

le falta, por ejemplo, determinarl el type del archivo.

y el explode no tiene ni pies ni cabeza, no hay por donde cogerlo. es un disparate.

ya que estas reciclando código y no te importa porque no pierdes nada que hayas hecho, ¿puedes explicar qué quieres hacer exactamente para que podamos prescindir de este trozo de codigo problemático y usar uno decente?

sea lo que sea, seguro que ya esta inventado y podemos encontrar un snippet valido. despues de todo parece que lo único que intentas es cargar ficheros y colocarlos en una carpeta aleatoria.


En si lo que intento hacer en este código es subir una imagen con un nombre aleatorio o que valla aumentando de menor a mayor, en una carpeta llamada uploaded, eso es todo la estoy usando en un formulario y el codigo completo se complementa con este:

Código (php) [Seleccionar]

<?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'); 
}}} 
?>


<?php
$nombre
=$_POST['nombre'];
$apat=$_POST['apat'];
$amat=$_POST['amat'];
$correo=$_POST['correo'];
$escpro=$_POST['escpro'];
$curso=$_POST['curso'];


if (
$nombre!="" && $apat!="" && $amat!="" && $correo!="" && $escpro!="" && $curso!="")
{
$con=Mysql_connect("localhost","root","");
if(
$con){
mysql_select_db("relacion");
mysql_query("INSERT INTO curso1(nombre,apat,amat,correo,escpro,curso) VALUES('".$nombre."','".$apat."'.$amat."'.'".$correo."','".$escpro."','".$curso."');");
}else{echo"la conexión falla";}}
?>



Este es mi archivo subearchivo.php

Y el form bueno es htm basico y esta todo en linea solo queda comentar que el form lo abro asi
Código (html4strict) [Seleccionar]

<form action="subearchivo.php" method="post" enctype="multipart/form-data">


Como veis, lo ocupo para por medio un formulario subir una imagen a una carpeta y los datos se guarden en la base de datos, y bueno hasta ahora no eh averiguado como pero tambien quiero que la url se guarde en un campo de la base, la base tambien ya esta creada.
gracias de antemano y perdon por ser un pedinche  :-\ :-\ :-\ :-\