Foros del Web » Programando para Internet » PHP »

subir datos de una forma

Estas en el tema de subir datos de una forma en el foro de PHP en Foros del Web. hola amigos tengo 3 archivos en una forma para subir datos: index.html Código PHP: < html > < body > < form enctype = "multipart/form-data"  action ...
  #1 (permalink)  
Antiguo 02/03/2009, 15:57
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
subir datos de una forma

hola amigos tengo 3 archivos en una forma para subir datos:
index.html
Código PHP:
<html>
<
body>
<
form enctype="multipart/form-data" action="guardar.php" method="POST">
<
table>
<
tr><td><h1>NOMBRE:</h1></td><td><input type="text" name="nombre"></td></tr>
<
tr><td><h1>APELLIDO:</h1></td><td><input type="text" name="apellido"></td></tr>
<
tr><td><h1>EMAIL:</h1></td><td><input type="text" name="email"></td></tr>
<
tr><td><h1>SUBIR ESTA IMAGEN:</h1></td><td> <input name="upfile" id="upfile" type="file"/></td></tr>
<
tr><td><h1>Comentario de imagen:</h1></td><td> <input name="comen" type="text" size="40" maxlength="50" /></td></tr>
<
tr><td><h1>COLOR FAVORITO</h1></td>
    <
td>
    <
select name="color1[]" size="4" multiple="MULTIPLE" >
    <
option value="0">Amarillo</option>
    <
option value="1">Azul</option>
    <
option value="2">Rojo</option>
    <
option value="3">Verde</option>
    </
select>
    </
td></tr>
<
tr><td><h1>COLOR NO FAVORITO</h1></td>
    <
td>
    <
input type="checkbox" name="Azul" value="blue">Azul<br>
    <
input type="checkbox" name="Rojo" value="red">Rojo<br>
    <
input type="checkbox" name="Verde" value="green">Verde<br>
    <
input type="checkbox" name="Amarillo" value="yellow">Amarillo<br>
    </
td></tr>
<
tr><td><h1>COLOR NO FAVORITO2</h1></td>
    <
td>
    <
select name="colores" size="0">
    <
option value="Azul" selected>Azul</option>
    <
option value="Rojo">Rojo</option>
    <
option value="Verde">Verde</option>
    <
option value="Amarillo">Amarillo</option>
    </
select>
    </
td></tr>
<
tr><td><h1>SEXO</h1></td>
    <
td>
    <
input type="radio" name="sexo" value="Hombre">Hombre<br>
    <
input type="radio" name="sexo" value="Mujer">Mujer<br>
    </
td></tr>
</
table>
<
input type="submit" value="Enviar">
</
form>
</
body>
</
html
guardar.php
Código PHP:
<?php
include "coneccion.php"//coneccion con la db
$nombre $_POST["nombre"]; //nombre
$apellido $_POST["apellido"]; //apellido
$comentario $_POST["comen"]; //comentario
$correo $_POST["email"]; //email
echo "$nombre"."<br>"."$apellido"."<br>"."$email"."<br>"."$comentario"."<br>";
//select multiple
foreach($_POST["color1"] as  $colors)
    {
        echo 
"Has elegido la opcion(1): $colors<br>";
    }
//check box    
foreach($_POST as $ind => $valor)
    {
        echo 
"Has elegido la opcion(2): <font color=$valor>$ind</font><br>";
    }
//select list
if($_POST["colores"])
    {
        echo 
"Has elegido la opcion(3): ".$_POST["colores"]."<br>";
    }
    else
    {
        echo 
"No has elegido ninguna opcion.";
    }    
//Radio    
if($_POST["sexo"])
    {
        echo 
"Has elegido la opcion(4): ".$_POST["sexo"]."<br>";
    }
    else
    {
        echo 
"No has elegido ninguna opcion.";
    }        
$max=1500000;
$uploaddir "/fotos/";
$filesize $_FILES['upfile']['size'];
$filename trim($_FILES['upfile']['name']);
$filename substr($filename, -20); 
$filename ereg_replace(" """$filename);
if(
$filesize $max){
if(
$filesize 0){
if((
ereg(".jpg"$filename)) || (ereg(".gif"$filename)) || (ereg(".JPG"$filename))|| (ereg(".GIF"$filename))){
$uploadfile $uploaddir $filename;
if (
move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile)) {
print(
"Archivo subido correctamente");
} else {
print(
"Error de conexi&oacute;n con el servidor.");
}
} else {
print(
"Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.");
}
}
else {
print(
"<br><br>Campo vac&iacute;o, no ha seleccionado ninguna imagen");
}
}
else {
print(
"<br><br>La imagen que ha intentado adjuntar es mayor de 1.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.");
}
?>
y el de coneccion.
mi pregunta es:
1 por que cuando quiero ver los datos ingresados, sin cargar en la bd me muestra repetido
Código PHP:
//check box    
foreach($_POST as $ind => $valor)
    {
        echo 
"Has elegido la opcion(2): <font color=$valor>$ind</font><br>";
    } 
2 por que no esta cargando las imagenes a la carpeta fotos, me sale como error que no son los formatos adecuador.
3 para ingresar los daos en la base de datos tengo que usar INPUT... pero en el caso de las imagenes como es lo que tengo que hacer ya qe quero que cada imagen se guarde con el nombre del correo electronico, y despues para sacar los datos, como tendria que hacer?

mi base de datos es la siguiente:

Cita:
CREATE TABLE `registracion` (
`N` int(11) NOT NULL auto_increment,
`nombre` varchar(50) NOT NULL,
`apellido` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`imagen` varchar(50) NOT NULL,
`nomimagen` varchar(50) NOT NULL,
`color1` varchar(50) NOT NULL,
`color2` varchar(50) NOT NULL,
`color3` varchar(50) NOT NULL,
`sexo` varchar(50) NOT NULL,
PRIMARY KEY (`N`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;
gracias de antemano
  #2 (permalink)  
Antiguo 02/03/2009, 17:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: subir datos de una forma

1- Actualmente estas recorriendo todo lo que hay en $_POST y solo necesitas un simple IF para saber si se selecciono algo:
Código php:
Ver original
  1. if(isset($_POST['checkbox']))
  2.     echo 'Se selecciono el checkbox';

2- Estas definiendo una ruta absoluta para guardar fotos y que seguramente no existe
Código php:
Ver original
  1. // Esto buscara la carpeta fotos en la raiz del disco duro
  2. $uploaddir = "/fotos/";
  3.  
  4. // esto es mas cercano a lo que necesitas:
  5. $uploaddir = "/wamp/www/sitio/fotos/";
  6.  
  7. // Tambien se puede con ruta relativa eliminando la primera diagonal:
  8. // Entonces se buscara el directorio fotos a partir del directorio donde esta tu script
  9. $uploaddir = "fotos/";

3- No necesitas un INPUT para ingresar los datos a la tabla, solo validalos, verifica que la imagen se subio correctamente y haces un INSERT:
Código php:
Ver original
  1. mysql_query("INSERT INTO tabla SET campo='valor', campo_n='valor_n'");
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 02/03/2009, 19:42
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: subir datos de una forma

Hola Triby, tienes razon con la primera pregnta, ya coloqu el if, gracias; para la segunda pregunta coloque la direccion de la siguiente forma:
Cita:
$uploaddir = "fotos/"
; pero no funciona, yo creo que no es el archivo, sino el problema esta en los formatos ya que el mensaje que mesale es el sigiente "Sуlo se permiten imбgenes en formato jpg. y gif., no se ha podido adjuntar" y eso corresponde a un If que se encuentra casi al final; con la tercera pregunta si funciono, muchas gracias
  #4 (permalink)  
Antiguo 02/03/2009, 19:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: subir datos de una forma

Nunca va a encontrar la extension asi:

Código php:
Ver original
  1. $filename = substr($filename, -20);
  2. // Que pasa si el nombre de archivo tiene menos de 20 caracteres?
  3.  
  4. // Consigue la extension antes de recortar el nombre
  5. $extension = end(explode('.', $filename));
  6.  
  7. // Compara con la extension:
  8. if($extension == 'jpg' || $extension == 'gif') // Agrega las necesarias
  9.  
  10. // Primero reemplaza los espacios, como lo tienes en tu script
  11. // Si el nombre de archivo es demasiado largo:
  12. if(strlen($filename) > 20) {
  13.      // Forza la longitud y agrega la extension nuevamente
  14.      $filename = substr($filename, 0, 16) . ".$extension";
  15. }
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 02/03/2009, 20:02
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: subir datos de una forma

claro, tienes razon, es un tremendo error que cometi, muchas gracias; a, en la primera pregunta que te hice, yo coloque asi:
Código PHP:
if ( $azul == "on" ){ echo "<B>Has elegido la opcion(2) azul</B> "; };
if ( 
$rojo == "on" ){ echo "<B>Has elegido la opcion(2) rojo</B> "; };
if ( 
$verde == "on" ){ echo "<B>Has elegido la opcion(2) verde</B> "; };
if ( 
$amarillo == "on" ){ echo "<B>Has elegido la opcion(2) amarillo</B> "; }; 
me trabajo con un ejemplo, pero ya no me funciona, esta algo mal?
gracias
  #6 (permalink)  
Antiguo 02/03/2009, 20:09
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: subir datos de una forma

ok, mucs racias, ya me di cuenta de mi error

Código PHP:
if (isset($_POST['Azul'])){ echo "<B>Has elegido la opcion(2) azul</B>"; }; 
el codigo para cargar la imagen, lo tengo de esta forma:
Código PHP:
$max=1500000;
$uploaddir "Z://home//localhost//www//k//fotos/";
$filesize $_FILES['upfile']['size'];
$filename trim($_FILES['upfile']['name']);
$extension end(explode('.'$filename));
if(
$extension == 'jpg' || $extension == 'gif'
if(
strlen($filename) > 20) {
     
$filename substr($filename016) . ".$extension";

$filename ereg_replace(" """$filename);
if(
$filesize $max){
if(
$filesize 0){
if((
ereg(".jpg"$filename)) || (ereg(".gif"$filename)) || (ereg(".JPG"$filename))|| (ereg(".GIF"$filename))){
$uploadfile $uploaddir $filename;
if (
move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile)) {
print(
"Archivo subido correctamente");
} else {
print(
"Error de conexi&oacute;n con el servidor.");
}
} else {
print(
"Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.");
}
}
else {
print(
"<br><br>Campo vac&iacute;o, no ha seleccionado ninguna imagen");
}
}
else {
print(
"<br><br>La imagen que ha intentado adjuntar es mayor de 1.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.");

como podria hacer para que cambie el nombre del archivo al de N que se encuentra en la base de datos, que se supone no se repetira; por elemplo digamos que el archivo de imagenes foto1.jpg al cargarlo tendria que llamarse en el direcorio fotos 1.jpg

Última edición por diego007007; 02/03/2009 a las 20:24
  #7 (permalink)  
Antiguo 03/03/2009, 08:13
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: subir datos de una forma

encontre es te script, pero no se como implementarlo a mi codigo

Código PHP:
<?php
rename
("mifoto.jpg""20050322.jpg");
?>
si alguien podria ayudarme
  #8 (permalink)  
Antiguo 03/03/2009, 13:04
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: subir datos de una forma

Cuando insertes el registro, obtienes la ID y renombras la imagen:

Código php:
Ver original
  1. $nuevo_nombre = mysql_insert_id() . ".$extension";
  2.  
  3. // Solo asegurate que la ruta sea la misma donde subiste el archivo y listo
  4. rename($uploadfile, "/ruta/$nuevo_nombre");
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 06/03/2009, 10:38
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: subir datos de una forma

Hola amigos, tengo la siguiente consulta:
cree el siguiente codigo
Código PHP:
$lpjp "LPJP";
$str trim($textos);
// Reemplazas saltos de linea y espacios multiples por un solo caracter de espacio:
$str preg_replace("/\s\s+/"' '$str);
// Obtienes todas las palabras en una matriz (array)
$a explode(' '$str);
$x 32
$count count($a);
for (
$row 0$row $count $row++) {
$cadena strlen($a["$row"]);
    if(
$cadena == $x){
        echo 
$a["$row"]."<br>";
        
$dato $a["$row"];
        
$query "INSERT INTO md5 SET numero='$dato', fecha='NOW()', pag='$lpjp'";
        
mysql_query($query);
    }

Y el problema es que se guardan bien $datos y $lpjp, pero no se guarda la fecha que le puse NOW(), alguien que me diga cual es el problema.
de antemano gracias
  #10 (permalink)  
Antiguo 06/03/2009, 11:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: subir datos de una forma

NOW() no debe estar entre comillas, porque lo tomaria como cadena.
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 06/03/2009, 12:21
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: subir datos de una forma

si, tienes razon, muchas gracias

salu2
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 02:43.