Foros del Web » Programando para Internet » PHP »

el avatar subido no aparece

Estas en el tema de el avatar subido no aparece en el foro de PHP en Foros del Web. hola a todos alguien save porque tengo este problema el avatar subida no aparece y aparce asi un cuadro azul el codigo para registrar es ...
  #1 (permalink)  
Antiguo 12/11/2013, 06:25
all7
Invitado
 
Mensajes: n/a
Puntos:
el avatar subido no aparece

hola a todos alguien save porque tengo este problema el avatar subida no aparece y aparce asi un cuadro azul

el codigo para registrar
es este

// Procedemos a comprobar que los campos del formulario no estén vacíos
$sin_espacios = count_chars($_POST['usuario_nombre'], 1);
if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco
echo "El campo <em>usuario_nombre</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_nombre'])) { // comprobamos que el campo usuario_nombre no esté vacío
echo "No haz ingresado tu usuario ._.<a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_clave'])) { // comprobamos que el campo usuario_clave no esté vacío
echo "No haz ingresado contraseña. <a href='javascript:history.back();'>Reintentar</a>";
}elseif($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) { // comprobamos que las contraseñas ingresadas coincidan
echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(!valida_email($_POST['usuario_email'])) { // validamos que el email ingresado sea correcto
echo "El email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";

}elseif(empty($_POST['avatar'])) { // comprobamos que el campo usuario_nombre no esté vacío
echo "No haz ingresado tu avatar ._.<a href='javascript:history.back();'>Reintentar</a>";


}else {
// "limpiamos" los campos del formulario de posibles códigos maliciosos
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
$usuario_email = mysql_real_escape_string($_POST['usuario_email']);

$avatar = mysql_real_escape_string($_POST['avatar']);


// comprobamos que el usuario ingresado no haya sido registrado antes
$sql = mysql_query("SELECT usuario_nombre FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'");
if(mysql_num_rows($sql) > 0) {
echo "El nombre usuario elegido ya ha sido registrado anteriormente. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_clave = md5($usuario_clave); // encriptamos la contraseña ingresada con md5
// ingresamos los datos a la BD
$reg = mysql_query("INSERT INTO usuarios (usuario_nombre, usuario_clave, usuario_email,avatar, usuario_freg) VALUES ('".$usuario_nombre."', '".$usuario_clave."', '".$usuario_email."','".$avatar."', NOW())");
if($reg) {
echo "Datos ingresados correctamente.";
}else {
echo "ha ocurrido un error y no se registraron los datos.";
}
}
}
}else {
?>

<html>

<head>

<title>Registro de Usuarios</title>



</head>

<body>

<h1>Formulario de Registro!</h1>

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" maxlength="15" /><br />
<label>Contraseña:</label><br />
<input type="password" name="usuario_clave" maxlength="15" /><br />
<label>Confirmar Contraseña:</label><br />
<input type="password" name="usuario_clave_conf" maxlength="15" /><br />
<label>Email:</label><br />
<input type="text" name="usuario_email" maxlength="50" /><br />

Avatar : <input type="file" name="avatar" size="90"><br>

<input type="submit" name="enviar" value="Registrar" />
<input type="reset" value="Borrar" />
</form>
<br />
<br />
<br />
<?php
}
?>

</body>

</html>




el codigo de perfil.php es este



<? include 'acceso_db.php'; ?>
<? $perfil = mysql_query("SELECT * FROM usuarios WHERE usuario_id='".$_GET['id']."'") or die(mysql_error());
if(mysql_num_rows($perfil)) { // Comprobamos que exista el registro con la ID ingresada
$row = mysql_fetch_array($perfil);
$usuario_id = $row["usuario_id"];
$usuario_nombre = $row["usuario_nombre"];
$usuario_email = $row["usuario_email"];
$usuario_freg = $row["usuario_freg"];
$facebook = $row["facebook"];
$twitter = $row["twitter"];
$avatar = $row["avatar"];
?>

<html>

<head>
<title>Perfil de <?=$usuario_nombre?> | Tu web</title>
</head>

<body>

<h2><? echo $nombre ?></h2>

<div id="menu">
<a href="usuarios.php">Usuarios</a> |
<a href="acceso.php">Acceso-Portal</a>
</div>

<h2>Perfil de <?=$usuario_nombre?></h2>

<img src="<?=$avatar?>" width="200" height="200" />

<p>Email: <?=$usuario_email?></p>
<p>Fecha de registro: <?=$usuario_freg?></p>






</body>

</html>

<? } else { ?>

<p>El usuario o perfil que buscas no existe .-.</p>
<a href="usuarios.php"><button>Lista de usuarios</button></a>

<? } ?>



pero cuando copio la imagen el servedor aparece el avatar
  #2 (permalink)  
Antiguo 12/11/2013, 09:34
 
Fecha de Ingreso: octubre-2012
Mensajes: 135
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: el avatar subido no aparece

Hay varios errores.

1- El formulario está mal, cuando subes un archivo, hay que ponerlo así:
Código HTML:
Ver original
  1. <form action="actualizar.php" method="post" enctype="multipart/form-data">

2-Los archivos no se suben por [post], para manipular hay que hacerlo así:
Código PHP:
Ver original
  1. $nombre_temporal = $_FILES['archivo']['tmp_name'];
  2.     $nombre_original = $_FILES['archivo']['name'];
  3. move_uploaded_file($nombre_temporal,$nombre_original);


3- Yo creo que es más cómodo y simple subir las imágenes en una carpeta y en la base de datos guardar solo el nombre de imagen, así, para mostrarla, recuperas el nombre y la enlazas.
  #3 (permalink)  
Antiguo 12/11/2013, 09:41
all7
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: el avatar subido no aparece

no entiendo puedes explicar que actualizar.php
  #4 (permalink)  
Antiguo 13/11/2013, 12:26
 
Fecha de Ingreso: octubre-2012
Mensajes: 135
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: el avatar subido no aparece

Tienes algunos errores en el código, como he puesto antes. Tu para mandar un archivo por POST tienes que añadir
Código HTML:
Ver original
  1. enctype="multipart/form-data"
a tu etiqueta de from.

Y para manejar el archivo no se puede hacer por $_POST, sino que se trabaja con la terminación $_FILES.

http://php.net/manual/es/features.file-upload.php

Etiquetas: avatar, fecha, formulario, html, mysql, registro, select, sql, usuarios
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 15:17.