OIas...
este é o meu código para editar um formulário:
if ($opcao == 'Guardar')
{
$ref = $_POST['ref'];
$imag_ant = $_POST['img'];
$erro = $config = array();
// retirar o espaço no titulo, por causa de depois dar o nome à imagem
$ref = ereg_replace("[^a-zA-Z0-9_.]", "", strtr($ref, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_"));
// Prepara a variável do arquivo
$arquivo = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;
// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 106883;
// Largura máxima (pixels)
$config["largura"] = 700;
// Altura máxima (pixels)
$config["altura"] = 700;
// Formulário postado... executa as ações
if($arquivo)
{
// Verifica se o mime-type do arquivo é de imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))
{
$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg,
bmp, gif ou png. Envie outro arquivo";
}
else
{
// Verifica tamanho do arquivo
if($arquivo["size"] > $config["tamanho"])
{
$erro[] = "Arquivo tem um tamanho muito grande!
A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.
Envie outro arquivo";
}
// Para verificar as dimensões da imagem
$tamanhos = getimagesize($arquivo["tmp_name"]);
// Verifica largura
if($tamanhos[0] > $config["largura"])
{
$erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
}
// Verifica altura
if($tamanhos[1] > $config["altura"])
{
$erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
}
}
// Imprime as mensagens de erro
if(sizeof($erro))
{
foreach($erro as $err)
{
header("location:../index.php?alt_cliente=".md5(5));
}
}
// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
else
{
// Ver qual a extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
// Caminho onde a imagem ficará
$imagem_dir = "../catalogoIMG/$ref".$ext[0] ;
//Elimina a imagem antiga
$dir = "../catalogoIMG/$imag_ant";
unlink($dir);
// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
$imagem_n=$ref.$ext[0] ;
}
}
//GUARDA OS VALORES NA BASE DE DADOS
$ref = $_POST['ref'];
$desc = $_POST['desc'];
$stock = $_POST['stock'];
$pvp = $_POST['pvp'];
$cod_linha = $_POST['linha'];
$linha_ant = $_POST['linha_ant'];
//echo "nao entrou!";
$alt_prod = "UPDATE produtos set descritivo='$desc', stock='$stock', pvp='$pvp',imag='$imagem_n', cod_linha='$cod_linha' where referencia='$ref'";
// executa a query
$sql=mysql_query($alt_prod) or die(mysql_error());
if(($sql))
{
header("location: ../index.php?cod_pag=edit_prod");
}
else
{
header("location: ../index.php?alt_cliente=".md5(4));
}
}
as imagens são guardadas numa pasta e o nome com que fica guardada a imagem nessa pasta é guardada na Base de dados.
O meu problema é que nao consigo arranjar forma de so puder editar o campo, por exemplo "artigo" ($desc = $_POST['desc'];), sem apagar ao nome da imagem da BD, com este código qq edição no formulario sem intreferir com a imagem faz com que o nome desta seja apagado da BD, permanecendo na pasta.
a linha relativa à entrada de imagens é:
<input type="file" name="imagem"/><input type="hidden" name="img" id="img" value="<? echo $refr['imag']; ?>" />
Gostaria que me ajudassem a descobrir uma forma de verificar se houve alguma entrada neste campo "imagem", ou seja que o conteúdo fosse !="" e se fosse então procederia à edição da imagem, senão, nao interferiria...
espero ter-me feito entender!
Obrigado.
este é o meu código para editar um formulário:
if ($opcao == 'Guardar')
{
$ref = $_POST['ref'];
$imag_ant = $_POST['img'];
$erro = $config = array();
// retirar o espaço no titulo, por causa de depois dar o nome à imagem
$ref = ereg_replace("[^a-zA-Z0-9_.]", "", strtr($ref, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_"));
// Prepara a variável do arquivo
$arquivo = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;
// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 106883;
// Largura máxima (pixels)
$config["largura"] = 700;
// Altura máxima (pixels)
$config["altura"] = 700;
// Formulário postado... executa as ações
if($arquivo)
{
// Verifica se o mime-type do arquivo é de imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))
{
$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg,
bmp, gif ou png. Envie outro arquivo";
}
else
{
// Verifica tamanho do arquivo
if($arquivo["size"] > $config["tamanho"])
{
$erro[] = "Arquivo tem um tamanho muito grande!
A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.
Envie outro arquivo";
}
// Para verificar as dimensões da imagem
$tamanhos = getimagesize($arquivo["tmp_name"]);
// Verifica largura
if($tamanhos[0] > $config["largura"])
{
$erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
}
// Verifica altura
if($tamanhos[1] > $config["altura"])
{
$erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
}
}
// Imprime as mensagens de erro
if(sizeof($erro))
{
foreach($erro as $err)
{
header("location:../index.php?alt_cliente=".md5(5));
}
}
// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
else
{
// Ver qual a extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
// Caminho onde a imagem ficará
$imagem_dir = "../catalogoIMG/$ref".$ext[0] ;
//Elimina a imagem antiga
$dir = "../catalogoIMG/$imag_ant";
unlink($dir);
// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
$imagem_n=$ref.$ext[0] ;
}
}
//GUARDA OS VALORES NA BASE DE DADOS
$ref = $_POST['ref'];
$desc = $_POST['desc'];
$stock = $_POST['stock'];
$pvp = $_POST['pvp'];
$cod_linha = $_POST['linha'];
$linha_ant = $_POST['linha_ant'];
//echo "nao entrou!";
$alt_prod = "UPDATE produtos set descritivo='$desc', stock='$stock', pvp='$pvp',imag='$imagem_n', cod_linha='$cod_linha' where referencia='$ref'";
// executa a query
$sql=mysql_query($alt_prod) or die(mysql_error());
if(($sql))
{
header("location: ../index.php?cod_pag=edit_prod");
}
else
{
header("location: ../index.php?alt_cliente=".md5(4));
}
}
as imagens são guardadas numa pasta e o nome com que fica guardada a imagem nessa pasta é guardada na Base de dados.
O meu problema é que nao consigo arranjar forma de so puder editar o campo, por exemplo "artigo" ($desc = $_POST['desc'];), sem apagar ao nome da imagem da BD, com este código qq edição no formulario sem intreferir com a imagem faz com que o nome desta seja apagado da BD, permanecendo na pasta.
a linha relativa à entrada de imagens é:
<input type="file" name="imagem"/><input type="hidden" name="img" id="img" value="<? echo $refr['imag']; ?>" />
Gostaria que me ajudassem a descobrir uma forma de verificar se houve alguma entrada neste campo "imagem", ou seja que o conteúdo fosse !="" e se fosse então procederia à edição da imagem, senão, nao interferiria...
espero ter-me feito entender!
Obrigado.