Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
salve galera!!
to com um + probleminha aqui..rs
um sisteminha de inclusão aqui, que esta dando erro no upload da imagem..
informa erro de arquivo inválido, e como não manjo quase nada de php não sei o que pode estar havendo..
o codigo é esse:
<?
include("../dados.php");
$nome = $_POST['nome'];
$modelo = $_POST['modelo'];
$descricao = $_POST['descricao'];
$valor = $_POST['valor'];
$codigo = $_POST['codigo'];
$data = date("d/m/Y \à\s H:i:s");
$existe = mysql_query("SELECT * FROM ofertas WHERE nome = '$nome'");
$contar = mysql_num_rows($existe);
if($contar > 0) {
echo "Já existe um produto registrado com o nome: <b>$nome</b><";
}else{
//Variável que guardará o local onde o arquivo será enviado
$imgs = "imgs";
$dest = $imgs."/".$file_name;
if(!move_uploaded_file($file, $dest)){
echo "Não foi possível fazer upload! Arquivo inválido.
<a href=java script:history.back();>Voltar</a>";
}else{
$img_enviada = "imgs/$file_name";
$sql = "INSERT INTO ofertas ( nome, modelo, descricao, valor, codigo, data, img) VALUES ( '$nome' , '$modelo' , '$descricao' , '$valor' , '$codigo' , '$data', '$img_enviada')";
if(mysql_query($sql)) {
echo "Cadastro efetuado com sucesso!
<a href=java script:history.back();>Voltar</a>";
}else{
echo "Não foi possivel cadastrar!
<a href=java script:history.back();>Voltar</a>";
}
}
}
?>mas na hora que joguei no servidor num funfa...
pode ser alguma restrição do servidor?
se alguém puder dar uma luz :D
valeu!
sim, creio que o form esteja correto rs
<form action="inserir_show.php" method="post" onSubmit="return validaForm()" enctype="multipart/form-data" name="ofertas" id="ofertas">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td width="24%">Nome:</td>
<td width="76%">
<input name="titulo" type="text" id="titulo" size="40"> </td>
</tr>
<tr>
<td width="24%">Descrição:</td>
<td><label>
<textarea name="descricao" id="descricao" cols="45" rows="5"></textarea>
</label></td>
</tr>
<tr>
<td height="20">Foto:</td>
<td><label>
<input type="file" name="file" id="file">
</label></td>
</tr>
<tr>
<td colspan="2"><label>
<input type="submit" name="enviar" id="enviar" value="inserir">
</label></td>
</tr>
</table>
</form>Qual versão do PHP está usando ?
versão 5.2.8
da um print_r($_FILES)
Se tiver algo no $_FILES, é porque ele não ta criando o $file_name, dai vais ter que usar $_FILES['file_name'] se não me engano...if(!move_uploaded_file($file, $dest)){
onde está está $file????
talvez não esteja funcionando pois register_globals esteja desativada...
inclua isso no seu arquivo de upload..
$file = $_FILES["file"];
echo "<pre>";
print_r($file);
echo "</pre>";
veja o que retorna..Não sei se você cortou parte do codigo, mas em nenhum momento apareceu você pegando arquivo da variavel global $_FILES atribuindo ele a variavel $files;
você pode verificar quando for recuperar o arquivo da $_files ela tem no vetor dentro e tem o indice error que você pode ver se está ok o arquivo.
edit: o padrão do php 5 é register_globals off, eh não é recomendado usar ele por segurança.
>
if(!move_uploaded_file($file, $dest)){
onde está está $file????
talvez não esteja funcionando pois register_globals esteja desativada...
inclua isso no seu arquivo de upload..
$file = $_FILES["file"];
echo "<pre>";
print_r($file);
echo "</pre>";
veja o que retorna..
eita...
na mosca amigo..
ativei o register globals e funfou heheheh
só pra constar, o erro que retornou foi
Array
(
[name] => 04.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phplyTfjk
[error] => 0
[size] => 13009)
>
Não sei se você cortou parte do codigo, mas em nenhum momento apareceu você pegando arquivo da variavel global $_FILES atribuindo ele a variavel $files;
você pode verificar quando for recuperar o arquivo da $_files ela tem no vetor dentro e tem o indice error que você pode ver se está ok o arquivo.
edit: o padrão do php 5 é register_globals off, eh não é recomendado usar ele por segurança.
hehehe, ativei o register globals e funfo
valeu a força galera!!
o que retornou não foi um erro, e sim um array com as informações do arquivo...
não é recomendável ativar register_globals, é melhor você adaptar o para que funcione com ela desativada...
>
o que retornou não foi um erro, e sim um array com as informações do arquivo...
não é recomendável ativar register_globals, é melhor você adaptar o para que funcione com ela desativada...
hummm, como disse num manjo de php.. o maximo é adaptar codigos hehehhe
o que poderia ser feito para essa adaptação então?
valeu!
ps. qual o risco do register_globals ativado?
para adaptá-lo, inicialmente resgate todos os dados utilizando a variáveis SUPERGLOBAIS ($_POST, $_GET, etc...)
no seu form tem os campos, titulo, descricao, file
resgate-os, assim:
$titulo = $_POST["titulo"];
$desc = $_POST["descricao"];
$file = $_FILES["file"];
* Campos do tipo file, retornam um array com os dados do arquivo...
troque isso
$dest = $imgs."/".$file_name;
move_uploaded_file($file, $dest)
por isso
$dest = $imgs."/".$file["name"];
move_uploaded_file($file["tmp_name"], $dest)
desative register_globals e veja se funciona...
mais informações:
http://www.php.net/manual/pt_BR/language.v...uperglobals.php
dá uma lidaí...
>
para adaptá-lo, inicialmente resgate todos os dados utilizando a variáveis SUPERGLOBAIS ($_POST, $_GET, etc...)
no seu form tem os campos, titulo, descricao, file
resgate-os, assim:
$titulo = $_POST["titulo"];
$desc = $_POST["descricao"];
$file = $_FILES["file"];
* Campos do tipo file, retornam um array com os dados do arquivo...
troque isso
$dest = $imgs."/".$file_name;
move_uploaded_file($file, $dest)
por isso
$dest = $imgs."/".$file["name"];
move_uploaded_file($file["tmp_name"], $dest)
desative register_globals e veja se funciona...
mais informações:
http://www.php.net/manual/pt_BR/language.v...uperglobals.php
dá uma lidaí...
Opa, valeu pela força, foi mal não ter voltado antes, estive ausente uns dias
então, tentei aqui, porém também não deu certo...
o cod ficou assim:
<?
include("../dados.php");
$titulo = $_POST['titulo'];
$descricao = $_POST['descricao'];
$file = $_FILES["file"];
$data = date("d/m/Y \à\s H:i:s");
$existe = mysql_query("SELECT * FROM fotos WHERE titulo = '$titulo'");
$contar = mysql_num_rows($existe);
if($contar > 0) {
echo "<div align=center><font size=1 face=verdana>
Já existe uma foto registrada com o nome: <b>$titulo</b></font></div>";
}else{
//Variável que guardará o local onde o arquivo será enviado
$imgs = "show";
$dest = $imgs."/".$file_name;
if(!move_uploaded_file($file["tmp_name"], $dest)){
echo "<div align=center><font size=1 face=verdana>Não foi possível fazer upload! Arquivo inválido.
<a href=java script:history.back();>Voltar</a></font></div>";
}else{
$img_enviada = "show/$file_name";
$sql = "INSERT INTO fotos ( titulo, descricao, data, img) VALUES ( '$titulo' ,'$descricao' , '$data', '$img_enviada')";
if(mysql_query($sql)) {
echo "<div align=center><font size=1 face=verdana>
Cadastro efetuado com sucesso!
<a href=java script:history.back();>Voltar</a></font></div>";
}else{
echo "<div align=center><font size=1 face=verdana>
Não foi possivel cadastrar!
<a href=java script:history.back();>Voltar</a></font></div>";
}
}
}
?>>
Warning: move_uploaded_file(show/) [function.move-uploaded-file]: failed to open stream: Is a directory in /home/grantelmateriais/www/admin/inserir_show.php on line 21
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/lib/php/phpPMbpGB' to 'show/' in /home/grantelmateriais/www/admin/inserir_show.php on line 21
alguma luz rs
valeu!****
$file_name só irá funcionar se REGISTER_GLOBALS estivar ativada...
faça assim...
$file = $_FILES["file"];
$file_name = $file["name"];
tentaí..Opa! legal agora funcionou hehehehhe
aproveitando a boa vontade sem querer abusar rs
tenho também um arquivo que edita o conteúdo inserido, porém o mesmo não funcionou com a alteração...
segui o mesmo procedimento para o arquivo de inclusão
<?
include("../dados.php");
$titulo = $_POST['titulo'];
$descricao = $_POST['descricao'];
$file = $_FILES["file"];
$file_name = $file["name"];
$imgs = "imgs";
$dest = $imgs."/".$file_name;
if(!move_uploaded_file($file["tmp_name"], $dest)){
echo "<div align=center><font size=1 face=verdana>Não foi possível fazer upload! Arquivo inválido.<br><br><a href=java script:history.back();>Voltar</a></font></div>";$img_enviada = "imgs/$file_name";
$x = mysql_query("UPDATE fotos SET titulo='$titulo', descricao='$descricao', img='$img_enviada' WHERE id='$id';");
if($x){
echo"cadastro editado com sucesso";
}else{
echo"o arquivo nao pode ser editado";
}
}
?>
ele faz o upload e indica que o cadastro foi editado porém não faz a alteração no banco de dadosvocê tem que passar o id do cadastro...
> $x = mysql_query("UPDATE fotos SET titulo='$titulo', descricao='$descricao', img='$img_enviada' WHERE id='$id';");
você usa a $id mas ela não existe no seu código...
caso você utilize um formulário para editar o cadastro, inclua um input hidden nele para passar o id do cadastro...
supondo que você acesse o arquivo "editar.php" assim, editar.php?id=5, só um exemplo...
no editar.php
$id = $_GET["id"];
aí você criará um input hidden para pegar essa id e passar para o arquivo que atualiza (o seu código aí acima)...
<input type="hidden" name="id" value="<?php echo $id; ?>" />
aí no arquivo que atualiza, você resgata o id...
$id = $_POST["id"]; // o restata o id que está no input hidden
espero ter ajudado...
heheheheh
funcionou!!
valeu cara! te devo uma cervejada kkkk
valeu a força, precisando tamo ai
>
heheheheh
funcionou!!
valeu cara! te devo uma cervejada kkkk
valeu a força, precisando tamo ai
Poderia colocar os arquivos finais aqui no tópico? não estou conseguindo montar os arquivos!
No formulário, página anterior, HTML...
você colocou o enctype do formulário (quando se envia inputs do tipo file, precisa) ?