¿Cómo hacer un formulario con PHP?

Hola yo no soy programadora pero tengo que hacer 1 formulario en el cual al darle al boton examinar m suba una imagen a mi sitio en mi servidor pero tiene que ser con php es que no m sube nada aki t pongo todo el codigo para k m digas donde esta el fallo y como puedo arreglarlo espero k m puedas ayudar gracias de antemano
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<div>          
        <form method="post" enctype="multipart/form-data" action="anadirimagen.php">
<table width="100%">
SUBIR IMAGENES
<tr>
<td align="right">imagen: </td>
<td><input type="file" name="image" id="image" maxlength="45"> </td>
</tr>
<tr>
<td height="10" colspan="2" align="center">
                    <input type="submit" name="enviar" value="enviar"/>
                </td>
</tr>
</table>
</form>
        </div>
</body>
</html>
<?php
    //CONEXION AL SERVIDOR FTP
    print_r($_FILE)
require_once("function/subir_archivos.php");
       $servidor="0.0.0.0";
        $puerto="21";
        $user="servidor";
        $pass="dddd";
        $ruta="imagenes_peptito";
      $fichero = $_FILES['image'];
     $subir=SubirFTP($servidor,$puerto,$user,$pass,$fichero,$ruta);
        ?>
<?php
function SubirFTP($servidor,$puerto,$user,$pass,$ruta)
{
$id_ftp=ConectarFTP($servidor,$puerto,$user,$pass) ;
$fichero=$archivo["name"];
if(ComprobarExtension($fichero)==true)
{
if(ComprobarExistente($id_ftp,$ruta,$fichero)==tru e)
{
$correcto=SubirArchivo($fichero,$ruta,$id_ftp);
ftp_close($id_ftp);
return $correcto;
}
else
{
return false;
}
}
else
{
return false;
}
}
function ConectarFTP($servidor,$puerto,$user,$pass)
{
//Permite conectarse al Servidor FTP
$id_ftp=ftp_connect($servidor,$puerto); //Obtiene un manejador del Servidor FTP
if(!$id_ftp)
{
echo "Error al conectar.";
}
$login=ftp_login($id_ftp,$user,$pass); //Se loguea al Servidor FTP
if(!$login)
{
echo "Error al loguearse";
}
ftp_pasv($id_ftp,"true"); //Establece el modo de conexion
return $id_ftp; //Devuelve el manejador a ladie(); funcion
}
function ComprobarExtension($fichero)
{
if(!eregi("jpeg",$fichero) && !eregi("jpg",$fichero)&& !eregi("gif",$fichero)&& !eregi("png",$fichero)&& !eregi("JPG",$fichero)&& !eregi("JPEG",$fichero)&& !eregi("GIF",$fichero)&& !eregi("PNG",$fichero))
{
?>
<script language="JavaScript" type="text/javascript">
alert("Las extensiones de las imagenes deben de ser jpg, jpeg, gif o png.");
</script>
<?php
return false;
}
else
{
return true;
}
}
function SubirArchivo($nombre_remoto,$ruta,$ id_ftp)
{
ftp_chdir($id_ftp,$ruta);
$accion=ftp_put($id_ftp,$nombre_remoto,FTP_ASCII);
if($accion==true)
{
return true;
}
else
{
?>
<script language="JavaScript" type="text/javascript">
alert("No se pudo subir alguno de los ficheros. Si el problema persiste consulte con el administrator.");
</script>
<?php
return false;
}
}
function ComprobarExistente($id_ftp,$ruta,$fichero)
{
$archivos=ftp_nlist($id_ftp,$ruta);
foreach($fichero as $indice =>$fichero)
{
if($fichero==substr($archivo,strlen($ruta),strlen( $archivo)-strlen($ruta)))
{
?>
<script language="JavaScript" type="text/javascript">
alert("El nombre del archivo ya existe en el servidor. Por favor, cambie el nombre del archivo.");
</script>
<?php
return false;
}
}
return true;
}
function Eliminar($id_ftp,$ruta_archivo)
{
if(ftp_delete($id_ftp,$ruta_archivo)==true)
{
return true;
}
else
{
?>
<script language="JavaScript" type="text/javascript">
alert("El archivo no pudo ser eliminado del servidor. Si el problema persiste consulte con su administrador.");
</script>
<?php
return false;
}
}
?>
espero que m puedas ayudar gracias de antemano

1 Respuesta

Respuesta
1
Ya revise tu codigo y lo estas haciendo por ftp, y esa manera es insegura. Aqui te pongo el codigo ya con los cambios que realize.
El archivo subir.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>
<body>
<div>           
<form method="post" enctype="multipart/form-data" action="anadirimagen.php"> 
<table width="100%">
SUBIR IMÁGENES 
<tr>
<td align="right">imagen: </td>
<td><input type="file" name="image" id="image" maxlength="45"> </td>
</tr>
<tr>
<td height="10" colspan="2" align="center"> 
                    <input type="submit" name="enviar" value="enviar"/> 
                </td>
</tr>
</table>
</form> 
        </div>
</body>
</html>

Y el archivo anadirimagen.php
<?php
function HandleError($message) {
header("HTTP/1.1 500 Internal Server Error");
echo $message;
}
    $save_path = "upload/";
              $upload_name = 'image';
$max_file_size_in_bytes =6291456;//  6 MB -> 6291456 bytes    2GB in  2147483647 bytes --- 100 - > 104857600;// 100 MB
  $extension_whitelist = array("jpg","jpeg","png","JPG","JPEG","PNG");
    $valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-';
$MAX_FILENAME_LENGTH = 260;
    $file_name = "";
$file_extension = "";
$uploadErrors = array(
        0=>"Error al momento de subir el archivo",
        1=>"El archivo pesa revasa de tamaño para subir en el servidor, revisa tu archivo php.ini",
        2=>"El archivo exede el Tamaño el tamaño del nombre",
        3=>"Solo se puede subir un archivo",
        4=>"No se encuentra la carpeta para subir el archivo",
        6=>"Missing a temporary folder"
);
// Validate the upload
if (!isset($_FILES[$upload_name])) 
{
HandleError("No upload found in \$_FILES for " . $upload_name." 2");
exit(0);

else if (isset($_FILES[$upload_name]["error"]) && $_FILES[$upload_name]["error"] != 0) 
       {
     HandleError($uploadErrors[$_FILES[$upload_name]["error"]]."1");
      exit(0);
           } 
    else if (!isset($_FILES[$upload_name]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload_name]["tmp_name"])) 
     {
      HandleError("Upload failed is_uploaded_file test."." 3");
   exit(0);
     } else  if (!isset($_FILES[$upload_name]['name'])) 
              {
              HandleError("File has no name."." 4");
             exit(0);
               } 
$file_size = @filesize($_FILES[$upload_name]["tmp_name"]);
if (!$file_size || $file_size > $max_file_size_in_bytes) {
HandleError("File exceeds the maximum allowed size"."5");
exit(0);
}
$file_name = preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));
if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) {
HandleError("Invalid file name"."6");
exit(0);
}
if (file_exists($save_path . $file_name)) {
HandleError("File with this name already exists"."7");
exit(0);
}
$path_info = pathinfo($_FILES[$upload_name]['name']);
$file_extension = $path_info["extension"];
$is_valid_extension = false;
foreach ($extension_whitelist as $extension) {
if ($file_extension == $extension) {
$is_valid_extension = true;
break;
}
}
if (!$is_valid_extension) {
HandleError("Invalid file extension"."8");
exit(0);
}
$BAND=0;
if (!move_uploaded_file($_FILES[$upload_name]["tmp_name"],$save_path.$file_name)) 
   {    
        $BAND=1;
HandleError("File could not be saved: ". $save_path.$file_name."9");
exit(0);
}
// Renombrar los Archivos ***************************************************
 if($BAND==0){
    srand(time());
    $KEY=substr(md5(time()).md5(rand(1,10000)),25);
$KEY=substr(md5($KEY),15);
   $Nuevo_Nombre=$KEY.".".$file_extension;
    rename($save_path.$file_name,$save_path.$Nuevo_Nombre); //Renombra el Archivo que se subio
print("Se subio exitosamente el archivo: ".$file_name. " y renombrado es: ".$Nuevo_Nombre);
}
?>
gracias por tu interes pero es k veras estoy haciendo un curso de programacion y m exigen que sea en ftp  haber si m puedes ayudar ha encontra el fallo gracias de antemano

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas