Hola buenas, tengo un problema con el xplode me sale este error
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.
<?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
Dice que la variable $tipo no esta definida.
$tipo=$sep;
$sep=explode('image/', $_FILES[ 'file' ]['tmp_name'], $destino . separador . $cad. '.' . $tipo);
Cita de: EFEX en 14 Febrero 2013, 21:26 PM
Dice que la variable $tipo no esta definida.
$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?
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
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()
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?
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. :(
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.
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:
<?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
<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 :-\ :-\ :-\ :-\