Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) inserir dados junto com imagem


msantana

Pergunta

estou tentando inserir informações dos produtos junto com a imagem, não funciona e não retorna nenhum erro, para na pagina op_produtos.php

quando faz separado funciona normal, mas junto não funciona.

se alguém poder me ajudar serei muito grato!!!

frm_categoria.php

<?php include "conexao.php";
$acao = $_GET["acao"];
$id = $_GET["id"];

if ($acao != "")
{
$sql = "select p.*, c.*, s.* from produtos p, categorias c, subcategorias s where p.id_categoria = c.id_categoria and p.id_subcategoria =  s.id_subcategoria and p.id_produtos= $id";

    $resultado = mysql_query ($sql);
    $linha = mysql_fetch_array($resultado); 
     
    
    $id_categoria         = $linha[id_categoria];
    $subcategoria          = $linha[subcategoria];
    $produto              = $linha[produto];
    $foto                  = $linha[foto];
    $estoque              = $linha[estoque];
    $preço                  = $linha[preço];
    $descricao              = $linha[descricao];
    
}



?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style1 {
    font-size: 16px;
    font-weight: bold;
}
-->
</style>
</head>

<body>

<table width="99%" border="1">
  <tr>
    <td><div align="center" class="style1">Produtos</div></td>
  </tr>
  <tr>
    <td><form id="form1" name="form1" method="post" action="op_produto.php">
      <table width="304" border="1" align="center" cellpadding="2">
        <p> </p>
        <tr>
          <td width="127">categoria</td>
          <td width="157">
          <select name= "id_categoria">
          <option> </option>
          <?php
          $sql_cat = "select * from categorias order by categoria";
          $result = mysql_query($sql_cat);
           
          while ($registro = mysql_fetch_array($result))
          {
              $valor = $registro["id_categoria"];
              
              if($id_categoria == $valor)
                  $selecionado = "selected";
                else
                    $selecionado = "";
                    
                    print "<option value = \"{$registro['id_categoria']}\" $selecionado >{$registro['categoria']}</option>";

          }
          
          ?>
          
          </select>
          
          
          </td>
        </tr>
        <tr>
        <tr>
          <td width="127">Subcategoria</td>
          <td width="157">
          <select name= "id_subcategoria">
          <option> </option>

          <?php
          $sql_cat = "select * from subcategorias order by subcategoria";
          $result = mysql_query($sql_cat);
           
          while ($registro = mysql_fetch_array($result))
          {
              $valor = $registro["id_categoria"];
              
              if($id_categoria == $valor)
                  $selecionado = "selected";
                else
                    $selecionado = "";
                    
                    print "<option value = \"{$registro['id_subcategoria']}\" $selecionado >{$registro['subcategoria']}</option>";

          }
          
          ?>
          
          
          </select>
          
          
          </td>
        </tr>
          <td>produto</td>
          <td width="157"><input name="txt_produto" type="text" id="txt_produto" size="35" value="<?php echo $produto ?>" /></td>
        </tr>  <tr>
            <td>foto</td>
            <td align="center">Enviar Foto:
              <input type="file" size="30" name="foto" id="foto" /></td>
          </tr>
          <tr>
            <td>estoque</td>
            <td><label>
              <input name="txt_estoque" type="text" id="txt_estoque" value="<?php echo $estoque; ?>" />
            </label></td>
          </tr>
          <tr>
            <td>pre&ccedil;o</td>
            <td><label>
              <input name="txt_preco" type="text" id="txt_preco" value="<?php echo $preço; ?>" />
            </label></td>
          </tr>
          <tr>
            <td>descri&ccedil;&atilde;o</td>
            <td><label>
              <textarea name="txt_descricao" id="txt_descricao" cols="45" rows="5"> <?php echo $descricao; ?> </textarea>
              
            </label></td>
          </tr>
        <tr>
          <td height="49" colspan="2"><label>
              <div align="center">
               <input type="hidden" name="id" value="<?php echo $id; ?>" />
                <input type="hidden" name="acao" value="<?php if ($acao !="") {echo $acao;}else {echo "Inserir";} ?>" />
                <input type="submit" name="Submit" value="<?php if ($acao !="") {echo $acao;}else {echo "Inserir";} ?>" />
              </div>
            </label></td>
        </tr>
      </table>
    </form></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>

</body>
</html>
op.php
<?php include "conexao.php";

$acao                = $_POST["acao"];
$id                     = $_POST["id"];
$foto                = $_POST['foto'];


$id_categoria           = $_POST["id_categoria"];
$id_subcategoria        = $_POST["id_subcategoria"];
$txt_produto               = $_POST["txt_produto"];
$txt_foto                   = $_POST["txt_foto"];
$txt_estoque              = $_POST["txt_estoque"];
$txt_preco                   = $_POST["txt_preco"];
$txt_descricao               = $_POST["txt_descricao"];
$txt_lancamento               = $_POST["txt_lancamento"];





if($acao=="Inserir" ){
    // Prepara a variável caso o formulário tenha sido postado
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

$config = array();
// Tamano máximo da imagem, em bytes
$config["tamanho"] = 106883;
// Largura Máxima, em pixels
$config["largura"] = 1350;
// Altura Máxima, em pixels
$config["altura"] = 1250;
// Diretório onde a imagem será salva
$config["diretorio"] = "fotos/";

// Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..
// Função Recursiva
function nome($extensao)
{
    global $config;

    // Gera um nome único para a imagem
    $temp = substr(md5(uniqid(time())), 0, 10);
    $imagem_nome = $temp . "." . $extensao;
    
    // Verifica se o arquivo já existe, caso positivo, chama essa função novamente
    if(file_exists($config["diretorio"] . $imagem_nome))
    {
        $imagem_nome = nome($extensao);
    }

    return $imagem_nome;
}

if($arquivo)
{
    $erro = array();
    
    // Verifica o mime-type do arquivo para ver se é de imagem.
    // Caso fosse verificar a extensão do nome de arquivo, o código deveria ser:
    //
    // if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) {
    //      $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; }
    //
    // Mas, o que ocorre é que alguns usuários mal-intencionados, podem pegar um vírus .exe e simplesmente mudar a extensão
    // para alguma das imagens e enviar. Então, não adiantaria em nada verificar a extensão do nome do arquivo.
    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 em 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";
        }
    }

    if(!sizeof($erro))
    {
        // Pega extensão do arquivo, o indice 1 do array conterá a extensão
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
        
        // Gera nome único para a imagem
        $imagem_nome = nome($ext[1]);

        // Caminho de onde a imagem ficará
        $imagem_dir = $config["diretorio"] . $imagem_nome;

        // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
    }
}
if($arquivo && !sizeof($erro))
{
    $txt_foto = $imagem_nome;
    
    $sql = "INSERT INTO produtos  ( id_categoria, id_subcategoria, produto, estoque, foto, preço, descricao, lancamento) 
    VALUES
    ('$id_categoria', '$id_subcategoria', '$txt_produto', '$txt_foto', 'foto', '$txt_estoque', '$txt_preco', '$txt_descricao', '$txt_lancamento' )";
    mysql_query($sql) or die (mysql_error());
    print "<script type = 'text/javascript'> location.href = 'principal.php?link=10' </script>";
}
else{
if(sizeof($erro))
{
    echo "<tr><td colspan=2 bgcolor=red><B><U>Ocorreu(am) o(s) seguinte(s) erro(s):</u><BR>";
    foreach($erro as $err)
    {
        echo " - " . $err . "<BR>";
    }
    echo "</B></td></tr>";
}
}
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

faça a interação de iamgens e dados

tipo de uma loja virtual com:

php + xml

apenas use o sql para os cadastros de clientes.

assim você pode ao invés de cadastrar uma imagem no banco, você apenas diz para o xml

o caminho da imagem no ftp.

para cada linha do xml, você pode adicionar atributos.

pesquise sobre isso.

obs.:

nunca usei com o php, mas sim com o flash, e provavelmente devem se comportar da mesma forma

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...