hola, despues de lucha y lucha solucionando problemas sin tener ni idea en php, me topo con lo siguiente... haver si pueden hechame una manito please!!
en mi sistema de usuarios tengo un form para que actualizen sus datos mis usuarios, ahi pude integrar un subidor de imagenes que me da la url escriptada, y esa url se guarde en la base de datos, ahora el caso es que, cada vez que tenga que editar su perfil algun usuario obligadamente tiene que subir una imagen si quiere mantener su foto, ya que si no lo hace, ps el formulario lo envia el dato de la foto en blanco o bien solo una url pero sin el final de la imagen (lo escriptado md5 me parece) Lo intentado de diversas formas, intente copiar el codigo de la contraseña, por que pense que como la contraseña no se actualiza cuando no escribimos nada en el espacio de contraseña, ps igual seria para la imagen, nada!! tampoco....
Por favor si alguien puede indicarme como puedo arreglar este codigo, lo que quiero es que el campo de avatar en la base de datos solo se actualize cuando se cargue una imagen en el formulario.
al parecer es que al pulsar el "submit" se ejecuta todo lo de la pagina, entonces como no se carga ninguna imagen en el formulario, la base de datos toma la url base de la imagen que no se cargo (../../avatar/AKI-FALTA-LO-ESCRIPTADO-DE-LA-IMAGEN) lo que quiero es que solo se cargue el dato de la imagen en la base de datos cuando el usuario suba una foto.... que le puedo hacer? please ayudenme...
PD: por si no me explique bien, si el usuario escoge una imagen de su pc, y le da en el submit, la imagen sube y la url se guarda en la base de datos, hasta ahi esta bien, ahora, si el usuario solo edita su nombre por ejemplo, y le da en submit, no sube ninguna imagen, obiamente, pero lo malo es que en la base de datos se guarda la url del directorio en donde se guardan las imagenes cuando la suben, por eso es que quiero evitar que la base de datos guarde ese dato si el usuario no sube ninguna imagen, como puedo hacer eso?
en mi sistema de usuarios tengo un form para que actualizen sus datos mis usuarios, ahi pude integrar un subidor de imagenes que me da la url escriptada, y esa url se guarde en la base de datos, ahora el caso es que, cada vez que tenga que editar su perfil algun usuario obligadamente tiene que subir una imagen si quiere mantener su foto, ya que si no lo hace, ps el formulario lo envia el dato de la foto en blanco o bien solo una url pero sin el final de la imagen (lo escriptado md5 me parece) Lo intentado de diversas formas, intente copiar el codigo de la contraseña, por que pense que como la contraseña no se actualiza cuando no escribimos nada en el espacio de contraseña, ps igual seria para la imagen, nada!! tampoco....
Por favor si alguien puede indicarme como puedo arreglar este codigo, lo que quiero es que el campo de avatar en la base de datos solo se actualize cuando se cargue una imagen en el formulario.
<?
include("config.php");
include("login.php");
$varrand = substr(md5(uniqid(rand())),0,10);
$varallw = array("image/bmp","image/gif","image/jpeg","image/pjpeg","image/png","image/jpg","image/x-png");
$varpath = "tmp/avatar/";
$varstat = "";
if($_POST[editar]) {
if (is_uploaded_file($_FILES["imagen"]["tmp_name"])) {
$varname = $_FILES["imagen"]['name'];
$vartemp = $_FILES['imagen']['tmp_name'];
$vartype = $_FILES['imagen']['type'];
if (in_array($vartype, $varallw) && $varname != "") {
$arrname = explode(".", $varname);
$varname = $varrand.".".$arrname[1];
if (copy($vartemp, "tmp/avatar/".$varname)) {
$varpath = $varpath.$varname;
$varstat = "ok";
} else {
$varstat = "Oops... Error al subir el archivo";
}
} else {
$varstat = "Archivo no admitido, solo puedes subir archivos tipo: jpg, gif, jpeg y png.";
}
}
if($_POST[contrasena1] && $_POST[contrasena2]){
if($_POST[contrasena1] == $_POST[contrasena2]){
$contrasena = md5($_POST[contrasena1]);
mysql_query("UPDATE usuarios SET contrasena='$contrasena' WHERE id='$_COOKIE[id]'");
} else {
$error = _ALERTA_CONTRASENA_;
}
}
function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
return $texto ;
}
$email = quitar($_POST[email]);
$nombre = quitar($_POST[nombre]);
$n_dia = quitar($_POST[n_dia]);
$n_mes = quitar($_POST[n_mes]);
$n_ano = quitar($_POST[n_ano]);
$ip = $REMOTE_ADDR;
$sexo = quitar($_POST[sexo]);
$boletin = quitar($_POST[boletin]);
if($_POST[web]=="http://"){ $web = ""; } else { $web = quitar($_POST[web]); }
$pais = quitar($_POST[pais]);
$messenger = quitar($_POST[messenger]);
$yahoo_messenger = quitar($_POST[yahoo_messenger]);
$aim = quitar($_POST[aim]);
$icq = quitar($_POST[icq]);
$descripcion = quitar($_POST[descripcion]);
if($_POST[avatar]){
$avatar = quitar($_POST[avatar]);
}
if($_POST[borrar]){
$varpath = "";
}
if(!$error){
if(!mysql_query("UPDATE usuarios SET email='$email',nombre='$nombre',ip='$ip',sexo='$sexo',
boletin='$boletin',web='$web',avatar='$varpath',pais='$pais',
messenger='$messenger',yahoo_messenger='$yahoo_messenger',
aim='$aim',icq='$icq',descripcion='$descripcion',n_dia='$n_dia',
n_ano='$n_ano',n_mes='$n_mes',mostrarm='$mostrarm' WHERE id='$_COOKIE[id]'")){
$mensaje = _ERROR_QUERY_PRFL_;
} else {
$mensaje =_OK_QUERY_PRFL_;
}
} else {
echo"<script>alert('$error');history.back();</script>";
}
}
$query = mysql_query("SELECT * FROM usuarios WHERE id='$_COOKIE[id]'");
while($datos = mysql_fetch_array($query)){
?>
<table width="100%" height="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td>
[b]<?=_EDITAR_PERFIL_?> [/b]<?
if($mensaje){
echo"
".$mensaje."";
}
?>al parecer es que al pulsar el "submit" se ejecuta todo lo de la pagina, entonces como no se carga ninguna imagen en el formulario, la base de datos toma la url base de la imagen que no se cargo (../../avatar/AKI-FALTA-LO-ESCRIPTADO-DE-LA-IMAGEN) lo que quiero es que solo se cargue el dato de la imagen en la base de datos cuando el usuario suba una foto.... que le puedo hacer? please ayudenme...
PD: por si no me explique bien, si el usuario escoge una imagen de su pc, y le da en el submit, la imagen sube y la url se guarda en la base de datos, hasta ahi esta bien, ahora, si el usuario solo edita su nombre por ejemplo, y le da en submit, no sube ninguna imagen, obiamente, pero lo malo es que en la base de datos se guarda la url del directorio en donde se guardan las imagenes cuando la suben, por eso es que quiero evitar que la base de datos guarde ese dato si el usuario no sube ninguna imagen, como puedo hacer eso?