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

NÃo Funciona Mas NÃo DÁ Erro


Ricardo Amancio

Pergunta

Galera, adaptei um script que faz upload de um arquivo para o servidor e cadastra o nome do arquivo junto com a categoria a que ele pertence dentro de um banco mysql.

Enquanto eu estava testando ele localmente tudo funcionava mil maravilhas.

Agora que eu subi os arquivos do site pro server remoto meu script não funciona. Mas também não retorna erro nenhum.

Estou um tempão tentando entender isso.

Aconexão com o banco de dados tá ok.

Mas quando eu entro com o endereço "www.meudominio.com.br/envia_peca.php?acao=entrar"

não aparece o form pra eu entrar com os dados.

Me ajudem.

O script é esse:

<? include ("connections/conecta.php"); /*Conecta com o BD MySQL */?>
<?php
mysql_select_db($database_conecta, $conecta);
$query_Recordset1 = "SELECT categoria.categoria FROM categoria ORDER BY categoria.categoria";
$Recordset1 = mysql_query($query_Recordset1, $conecta) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<html>
<head>
<title>FoxGraf - Enviar</title>
<script language="javascript">
function VerificaCampos(form) {
if (frm_upload.categoria.value.length == 0) {
alert("Indique a Categoria!");
frm_upload.categoria.focus();
return false;
}
if (frm_upload.imagem.value.length == 0) {
alert("Selecione um arquivo!");
frm_upload.imagem.focus();
return false;
}
return true;
}
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?
if($acao == 'enviar') { /*Faz o upload da imagem */

if($imagem_size > 50000) { /*verifica o tamanho da imagem enviada */
$erros++;
$errors = $errors."O tamanho do arquivo é maior que 50 Kb<br>";
}

$arquivo = "imagens/$imagem_name"; /*caminho pra onde vai a imagem*/

if (file_exists($arquivo)) { /*verifica se o arquivo existe no diretório */
$erros++;
$errors = $errors."O arquivo já existe, por favor renomeie o arquivo<br>";
} /*fecha verificação do arquivo*/

if($erros == 0) {
copy($imagem, "imagens/$imagem_name"); /*envia a imagem para a pasta*/

$sql = mysql_query("INSERT INTO trabalhos(nomecategoria, imagem) VALUES('$categoria', '$imagem_name')")
or die("Erro no SQL: ".mysql_error()); /*Insere o nome da figura no banco de dados*/
echo "Imagem enviada com Sucesso!!<br>Você será redirecionado em 3 segundos. <meta http-equiv='refresh' content='3; url=envia_peca.php?acao=entrar'/>";
}/* fecha erros = 0 */
else {
echo "Foram encontrados os seguintes erros:<br>$errors";
}/*fecha else*/

}/* fecha acao=enviar*/ ?>

<? if($acao == 'entrar') { /*Mostra o formulário para Upload de imagens*/ ?>
<form name="frm_upload" method="post" action="<? echo $PHP_SELF;?>?acao=enviar" enctype="multipart/form-data" onSubmit="return VerificaCampos(this);">
<table align="center">
    <tr> 
      <td colspan="2">Categoria:</td>
    </tr>
    <tr> 
      <td colspan="2">
        <select name="categoria">
          <option value="">---------------> Selecione uma Categoria <--------------- 
          </option>
        <?php do { ?>
          <option value="<?php echo $row_Recordset1['categoria']; ?>"><?php echo $row_Recordset1['categoria']; ?></option>
        <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?></td>
        </select>
    </tr>
    <tr> 
      <td width="56" height="49">Imagem:</td>
      <td width="240"><input type="file" name="imagem" size="25"></td>
    </tr>
    <tr> 
      <td colspan="2"> <div align="center"> 
          <input type="submit" name="submit" value="     Enviar     ">
        </div></td>
    </tr>
</table>
</form>
<?
}/* fecha acao=entrar */?>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

aí é que tá meu caro Beraldo este código que tá aí, funciona do jeito que tá quando testo no meu servidor local, sem problemas.

Acontece que quando jogo pro remoto, o form que está dentro deste mesmo código não aparece.

porque meu Deus???

não tenho nem como testar se o restante do cod funciona.

sacou?

socorro

Link para o comentário
Compartilhar em outros sites

  • 0

O problema deve estar na falta do $_GET também.

você pega a variável $acao da URL, certo? Portanto você deve primeiramente fazer isto:

$acao = $_GET['acao'];

Assim como você também deve usar $_POST e $_FILES.

Se não me engano, isso está ligado com o resgister_globals, do php.ini. Com ele habiliatdo, não é necssário usar $_GET, etc. Mas se ele estiver desabilitado, deve-se usar as variáveis $_POST, etc.

Link para o comentário
Compartilhar em outros sites

  • 0

entendi... realmente no meu servidor local o resgister_globals está ligado.

no meu servidor remoto não deve estar e eu não tenho acesso a estas configurações.

bom inseri as seguintes linhas:

__________________________________________________________________

<?

$acao = $_GET['acao'];

$imagem = $_FILES['imagem'];

$categoria = $_POST['categoria'];

if($acao == 'enviar') { /*Faz o upload da imagem */

if($imagem_size > 50000) { /*verifica o tamanho da imagem enviada */

$erros++;

$errors = $errors."O tamanho do arquivo é maior que 50 Kb<br>";

}

__________________________________________________________________

Acontece que quando inseri apenas a linha

$acao = $_GET['acao];

a página abriu normal.

Mas quando inseri as outras a página parou de ser exibida.

O que estou fazendo errado?

Baixei algumas apostilas de PHP mas não estou conseguindo entender onde estou errando.

Link para o comentário
Compartilhar em outros sites

  • 0

legal quase tudo funcionando

Beraldo, realmente tive de declarar tudo:

$acao = $_GET["acao"];

$imagem = $_FILES["imagem"];

$categoria = $_POST["categoria"];

$imagem_name = $_FILES["imagem"][name];

$imagem_size = $_FILES["imagem"];

$img = $imagem;

$cat = $categoria;

$img_nome = $imagem_name;

$img_size = $imagem_size;

Agora agarrei no tal do caminho pra salvar a imagem. Acho que é a declaração do caminho.

No meu serv local funcionava assim:

copy($img, "imagens/$img_nome");

o que pode ser?

Link para o comentário
Compartilhar em outros sites

  • 0

Tente assim/

$acao = $_GET["acao"];
$imagem = $_FILES["imagem"];
$categoria = $_POST["categoria"];
$imagem_name = $_FILES["imagem"][name];
$imagem_size = $_FILES["imagem"][size];
imagem_tmp = $_FILES["foto"][tmp_name];

move_uploaded_file($imagem_tmp,"./imagens/".$imagem_name);

Link para o comentário
Compartilhar em outros sites

  • 0

Funicionou perfeitamente.

Valeu mesmo por todas as dicas.

Aqui tá o cod finalizado pra quem quiser:

<? include ("connections/conecta.php");

$acao        = $_GET["acao"];
$imagem      = $_FILES["imagem"];
$categoria   = $_POST["categoria"];
$imagem_name = $_FILES["imagem"][name];
$imagem_size = $_FILES["imagem"][size];
$imagem_temp = $_FILES["imagem"][tmp_name];

$img      = $imagem;
$cat      = $categoria;
$img_nome = $imagem_name;
$img_size = $imagem_size;
$img_tmp  = $imagem_temp;

mysql_select_db($database_conecta, $conecta);
$query_Recordset1 = "SELECT categoria.categoria FROM categoria ORDER BY categoria.categoria";
$Recordset1 = mysql_query($query_Recordset1, $conecta) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

if($acao == 'enviar') { /*Faz o upload da imagem */

if($img_size > 50000) { /*verifica o tamanho da imagem enviada */
$erros++;
$errors = $errors."O tamanho do arquivo é maior que 50 Kb<br>";
}

$arquivo = "imagens/$img_nome"; /*caminho pra onde vai a imagem*/

if (file_exists($arquivo)) { /*verifica se o arquivo existe no diretório */
$erros++;
$errors = $errors."O arquivo já existe, por favor renomeie o arquivo<br>";
} /*fecha verificação do arquivo*/

if($erros == 0) {
move_uploaded_file($img_tmp, "imagens/".$img_nome); /*envia a imagem para a pasta*/

$sql = mysql_query("INSERT INTO trabalhos(nomecategoria, imagem) VALUES('$categoria', '$img_nome')") or die("Erro no SQL: ".mysql_error()); /*Insere o nome da figura no banco de dados*/

echo "Imagem enviada com Sucesso!!<br>Você será redirecionado em 3 segundos. <meta http-equiv='refresh' content='3; url=envia_peca.php?acao=entrar'/>";
}/* fecha erros = 0 */

else {

echo "Foram encontrados os seguintes erros:<br>$errors";

}/*fecha else*/

}/* fecha acao=enviar*/
?>
<?
if($acao == 'entrar') { /*Mostra o formulário para Upload de imagens*/
?>
<script language="javascript">
function VerificaCampos(form) {
if (frm_upload.categoria.value.length == 0) {
alert("Indique a Categoria!");
frm_upload.categoria.focus();
return false;
}
if (frm_upload.imagem.value.length == 0) {
alert("Selecione um arquivo!");
frm_upload.imagem.focus();
return false;
}
return true;
}
// -->
</script>
<form name="frm_upload" method="post" action="<?echo $PHP_SELF;?>?acao=enviar" enctype="multipart/form-data" onSubmit="return VerificaCampos(this);">
<table align="center">
    <tr> 
      <td colspan="2">Categoria:</td>
    </tr>
    <tr> 
      <td colspan="2">
        <select name="categoria">
          <option value="">---------------> Selecione uma Categoria <--------------- 
          </option>
        <?php do { ?>
          <option value="<?php echo $row_Recordset1['categoria']; ?>"><?php echo $row_Recordset1['categoria']; ?></option>
        <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
        </select>
    </tr>
    <tr> 
      <td width="56" height="49">Imagem:</td>
      <td width="240"><input type="file" name="imagem" size="25"></td>
    </tr>
    <tr> 
      <td colspan="2"> <div align="center"> 
          <input type="submit" name="submit" value="     Enviar     ">
        </div></td>
    </tr>
</table>
</form>
<?
}/* fecha acao=entrar */
?>
<?php
mysql_free_result($Recordset1);
?>

Podem fechar, valeu mesmo...

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...