Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vinicius015

Cadastra, mas não cadastra - Erro de insert

Recommended Posts

Bom dia pessoal, tudo na paz? Como foram de FDS?

 

Queria uma auxílio de vocês em uma questão.

 

Um sistema que estava funcional, após alguma atualização da UOLHOST parou de funcionar.

 

Neste sistema cadastro os campos: ID autoincrement - nome - descrição - valor - imagem (que faz upload para uma determinada pasta).

 

Agora quando cadastro, ele somente cadastra o ID que ele pega automático os outro dados ele não insere no banco, vou copiar o code logo mais abaixo.

 

E outro que ocorre também. No administrador, quando vou excluir algo, ele diz que foi excluído, porém nada ocorre.

 

Código do inserir.

 

                    <h2>INSERINDO PRODUTO<br></h2>
<?
$imagem = $_FILES[$arquivo];
if($arquivo){

 //diretorio destino do upload
  $dir="noticias/";
  $caminho=$dir.$arquivo_name;
 //arquivos suportados
 if(eregi(".gif|.jpg",$arquivo_name)){
  copy($arquivo,$caminho);
   }
}

$randomico = rand(1,999999);
$teste="noticias_";
$arquivo = "noticias/$arquivo_name";
$nomenovo = "noticias/$teste"."_$randomico"."$arquivo_name";
rename($arquivo,$nomenovo);
$arquivo = $nomenovo;

$sql = mysql_query("INSERT INTO vendas (`nome`,`descricao`,`valor`,`imagem`) VALUES ('$nome','$descricao','$valor','$arquivo')");
if(!$sql)
{
echo "Erro ao tentar incluir registro: ".mysql_error();
}
else{
echo "<table border='0' width='810' align='center' style='margin-bottom:10; border-width:0; border-color:rgb(204,204,204); border-style:solid;' cellpadding='0' cellspacing='0'>
        <tr>
            <td width='810' valign='middle'>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            <p style='margin-top:10; margin-bottom:10;' align='center'><span class='tit-preto'>$nome</span></p>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            <p style='margin-top:10; margin-bottom:10;' align='center'><font face='Verdana' color='red'><span style='font-size:12pt;' class='tit-vermelho'><b>Incluído
            com sucesso!</b></span></font></p>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            </td>
        </tr>
    </table>";
}
?>

excluir.php

<?
//CÓDIGO DE ATUALIZAÇÃO
$apagar = "delete from vendas where id=$id";
mysql_query($apagar);
mysql_close();
print "<table border='0' width='810' align='center' style='margin-bottom:10; border-width:0; border-color:rgb(204,204,204); border-style:solid;' cellpadding='0' cellspacing='0'>
        <tr>
            <td width='500' valign='middle'>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            <p style='margin-top:10; margin-bottom:10;' align='center'><span class='tit-preto'>Informações Excluídas com</span></p>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            <p style='margin-top:10; margin-bottom:10;' align='center'><font face='Verdana' color='red'><span style='font-size:12pt;' class='tit-vermelho'><b>Sucesso!</b></span></font></p>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            </td>
        </tr>
    </table>";

//	print "<script>document.location.href='baladas_administrador.php';</script>";

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente desativaram regiister_global no php.ini.

Vc deve definir o escopo das variáveis:

$_GET["campo do form"] ou $_POST["campo do form"]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita, deu tudo isso de erro rs

 

Notice: Undefined index: arquivo in /home/controlife/public_html/vendas/inserir.php on line 61

Notice: Undefined variable: arquivo in /home/controlife/public_html/vendas/inserir.php on line 62

Notice: Undefined index: in /home/controlife/public_html/vendas/inserir.php on line 62

Notice: Undefined variable: arquivo in /home/controlife/public_html/vendas/inserir.php on line 63

Notice: Undefined variable: arquivo_name in /home/controlife/public_html/vendas/inserir.php on line 76

Notice: Undefined variable: arquivo_name in /home/controlife/public_html/vendas/inserir.php on line 77

Warning: rename(noticias/,noticias/noticias__852634) [function.rename]: Invalid argument in/home/controlife/public_html/vendas/inserir.php on line 78

Notice: Undefined variable: nome in /home/controlife/public_html/vendas/inserir.php on line 81

Notice: Undefined variable: descricao in /home/controlife/public_html/vendas/inserir.php on line 81

Notice: Undefined variable: valor in /home/controlife/public_html/vendas/inserir.php on line 81

Notice: Undefined variable: nome in /home/controlife/public_html/vendas/inserir.php on line 98

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa definir as variáveis antes de usá-las... De onde vem os dados que quer inserir? Via POST? SE for POST, faça algo do tipo:

$nome = isset($_POST['nome']) ? $_POST['nome'] : null;
$descricao = isset($_POST['descricao']) ? $_POST['descricao'] : null;
$valor = isset($_POST['valor']) ? $_POST['valor'] : null;

A mesma coisa para as variáveis $arquivo e $arquivo_name... De onde elas tem que vir? Defina as variáveis antes de usá-las:

$arquivo = $_FILES[$arquivo];
$arquivo_name = "";


Isso aqui está certo?

$_FILES[$arquivo]


Você está fazendo um upload? Porque está usando uma variável dentro do $_FILES, é proposital?

$_FILES['arquivo'];

 


Compartilhar este post


Link para o post
Compartilhar em outros sites

é upload sim =] vou tesrar de acordo como disse para ver se funciona e aviso ja =]

 

obrigado de ante-mão



Jonas, para os campos de texto funcionaram normal, porém para o upload ainda não, a imagem não foi pra o diretorio, porem o banco gravou o endereço da imagem.

 

esta dando estes erros:

 

Notice: Undefined index: in /home/controlife/public_html/vendas/inserir.php on line 62

Notice: Undefined variable: arquivo_name in /home/controlife/public_html/vendas/inserir.php on line 76

Notice: Undefined variable: arquivo_name in /home/controlife/public_html/vendas/inserir.php on line 77

Warning: rename(noticias/,noticias/noticias__24681) [function.rename]: Invalid argument in/home/controlife/public_html/vendas/inserir.php on line 78

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como se chama o campo do formulário que você escolhe o arquivo para upload? Se atentou ao que eu disse acima? Tente algo assim:

$arquivo         = "";
$imagem         = isset( $_FILES['arquivo']['tmp_name'] ) ? $_FILES['arquivo']['tmp_name'] : null;
$arquivo_name     = isset( $_FILES['arquivo']['name'] ) ? $_FILES['arquivo']['name'] : null;

if ( !empty( $imagem ) ) {
    //diretorio destino do upload
    $dir         = "noticias/";
    $caminho    = $dir.$arquivo_name;
    
    //arquivos suportados
    if( eregi( ".gif|.jpg", $arquivo_name) ) {
        copy( $arquivo, $caminho );
    }

    $randomico     = rand(1,999999);
    $teste         = "noticias_";
    $arquivo     = "noticias/$arquivo_name";
    $nomenovo     = "noticias/" . $teste . "_" . $randomico .$arquivo_name;
    rename( $arquivo, $nomenovo );
    $arquivo = $nomenovo;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...

 

O campo no formulário se chama "arquivo"

 

obrigado,



Jonas, deu este erro

 

Warning: copy() [function.copy]: Filename cannot be empty in /home/controlife/public_html/vendas/inserir.php on line 72

Warning: rename(noticias/1044709_563843890346660_1484734148_n.jpg,noticias/noticias__7142341044709_563843890346660_1484734148_n.jpg) [function.rename]: No such file or directory in /home/controlife/public_html/vendas/inserir.php on line 79

 

conferi as strings, esta tudo de acordo =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Warning: copy() [function.copy]: Filename cannot be empty in /home/controlife/public_html/vendas/inserir.php on line 72

 

Experimente alterar seu código para:

if( eregi( ".gif|.jpg", $arquivo_name) ) {         
    copy( $imagem, $caminho );     
}

E aqui:

Warning: rename(noticias/1044709_563843890346660_1484734148_n.jpg,noticias/noticias__7142341044709_563843890346660_1484734148_n.jpg) [function.rename]: No such file or directory in /home/controlife/public_html/vendas/inserir.php on line 79

Verifique se criou a pasta "noticias" dentro do seu sistema... Deve estar no mesmo nível que seu arquivo que faz o upload... E deixe esta pasta com chmod 777

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jonas, deu certinho =] muito obrigado.

 

Uma coisa somente, no administrador, eu não consigo excluir o cadastro =/

 

o código é este abaixo poderia me ajudar?

 

<?
//CÓDIGO DE ATUALIZAÇÃO
$apagar = "delete from vendas where id=$id";
mysql_query($apagar);
mysql_close();
print "<table border='0' width='810' align='center' style='margin-bottom:10; border-width:0; border-color:rgb(204,204,204); border-style:solid;' cellpadding='0' cellspacing='0'>
        <tr>
            <td width='500' valign='middle'>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            <p style='margin-top:10; margin-bottom:10;' align='center'><span class='tit-preto'>Informações Excluídas com</span></p>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            <p style='margin-top:10; margin-bottom:10;' align='center'><font face='Verdana' color='red'><span style='font-size:12pt;' class='tit-vermelho'><b>Sucesso!</b></span></font></p>
            <p style='margin-top:10; margin-bottom:10;' align='center'> </p>
            </td>
        </tr>
    </table>";

//	print "<script>document.location.href='baladas_administrador.php';</script>";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu ambiente de desenvolvimento e testes, sempre deixe os erros do PHP ativados, pois com eles você saberia o que está errado:

error_reporting(E_ALL);
ini_set( 'display_errors','1');

E quando fazer o deploy do seu código para o ambiente final, de produção, desative todos os erros e somente guarde as mensagens de erro em algum log... O Apache já faz isso pra você.

 

Bom, com o código acima no script, a saída de erros provavelmente vai ser semelhante aos erros acima: undefined index...

 

De vem o ID que deseja apagar? Faça igual fez no outro script. Se for POST:

$id = isset($_POST['id']) ? (int)$_POST['id'] : null;

Se for GET:

$id = isset($_GET['id']) ? (int)$_GET['id'] : null;

E assim sucessivamente... Lembre-se, antes de usar uma variável, declare ela, mesmo vazia, para evitar usar o Register Globals e ter erros do tipo notice enviados pelo PHP...

 

Esse erros devem estar acontecendo porque provavelmente em seu ambiente de trabalho, você deixa a opção Register Globals ativada nas configurações do PHP. Isto quer dizer que as variáveis serão automaticamente declaradas pelo PHP pra você...mas isto te gera um problema de segurança enorme, tanto que nas versões mais recentes do PHP essa opção nem existe mais...

 

Se der certo, marque o tópico com resolvido, do contrário, poste sempre as mensagens de erro para facilitar :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.