Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal é o seguinte, este sistema faz o cadastro(incluir, excluir e alterar) de notícias, as notícias podem ser vinculadas a uma ou mais imagens, sendo o sistema configurado para upload de até quatro imagens, para incluir notícias no sistema você pode enviar uma notícia sem vínculo a nenhuma imagem, podendo configurar no sistema se esta notícia será vinculada a uma imagem default ou não, pode também enviar uma notícia vinculada a uma ou mais imagens, e pode optar por enviar somente imagem, sem notícia vinculada. O sistema utiliza ajax sendo usada função ajaxGet de Micox, um de nossos prestigiados colaboradores no fórum. Algumas funções do sistema foram baseadas em posts aqui do fórum.
Não foi testado um total máximo de imagens que o sistema envia com segurança.
Foi testado no IE e FF.
O link do download esta quebrado...
Not Found
Poste os scripts aqui, colocando-os dentro dos famosos codeboxes, para que não haja problemas assim futuramente. ;)
[]'s
>
O link do download esta quebrado...
Not Found
Poste os scripts aqui, colocando-os dentro dos famosos codeboxes, para que não haja problemas assim futuramente. ;)
[]'s
Desculpem pessoal, o problema não é de link quebrado não, é porque é host gratuito e eles redirecionam o link, mas estou colocando os arquivos aqui no post, para no caso de não conseguirem pelo link, copiarem, abraços a todos.
Excelente Post!!! Testei e funcionou perfeitamente.
GALERA, ESTOU UTILIZANDO ESSE EXEMPLO QUE ME ATENDEU PERFEITAMENTE!!!!PORÉM PRECISO SABER COMO FAÇO PARA IMPLANTAR A VISUALIZAÇÃO DOS DADOS NA MINHA PÁGINA PRINCIPAL PARA ESSE EXEMPLO....URGENTE!!!!!!!!!!!!
O link dos arquivos esta quebrado (http://hcar.freehostia.com/uploadImage/downloads/down.php?down=uploadImage.zip)Será que teria como disponibilizar outro link para download?Valeu!
O link dos arquivos esta quebrado (http://hcar.freehostia.com/uploadImage/downloads/down.php?down=uploadImage.zip)Será que teria como disponibilizar outro link para download?Valeu!
Acabo de testar este link e funcionou, copie o link e coloque no browser diretamente, não sei o porque disto, mas se você clicar nele, talvez seja redirecionado a outra página, se colocar o link no browser diretamente, vai para a página correta.http://hcar.prophp.org/uploadImage.zip
HcarShow o material, mas tenho umas dúvidas e se puder me ajudar fico muito grato:1ª - Como ficaria o script sem o ajax, é possível? ainda não conheço bem e não queria usar sem entender o que ele faz:2ª - No caso de usar ajax, os servidores precisam ter suporte diferente p isso, como q rola?Bem é isso, ja se puder responder fico grato.Abraços
Opa!Tá funfanfo aqui, mas onde as notícias ficam postadas?Tipo, em qual page elas ficam para coloca-las em exposição no site?
E seria possivel postar os arquivos noticia.php e noticiario.php?
Olá, como vai amigo?Estou usando o sistema de administração de notícias que postou no laboratório.Estou encontrando uma dificuldade e queria saber se pode me ajudar...Quando clico para alterar uma notícia, aparecem os campos para alterar, altero os dados que quero e depois clico no botão alterar....Acontece que depois disso, aparece uma mensagem:"Falha no carregamento. 404: Não foi encontrada a URL solicitada"Estou tentando achar onde pode estar o erro mas não estou conseguindo...você tem idéia do que pode ser?Abraço,
Olá, como vai amigo?Estou usando o sistema de administração de notícias que postou no laboratório.Estou encontrando uma dificuldade e queria saber se pode me ajudar...Quando clico para alterar uma notícia, aparecem os campos para alterar, altero os dados que quero e depois clico no botão alterar....Acontece que depois disso, aparece uma mensagem:"Falha no carregamento. 404: Não foi encontrada a URL solicitada"Estou tentando achar onde pode estar o erro mas não estou conseguindo...você tem idéia do que pode ser?Abraço,
Deve ser justamente o que o erro diz ("Não foi encontrada a URL solicitada"), você deve verificar a url que está sendo chamada e se ela esta correta, poste o código para analisarmos, especificamente a função "validaform2" do arquivo "upload.js".
Segue...
Esse é o arquivo alterar.php
<?php
// Headers
header("Content-Type: text/html; charset=ISO-8859-1", true);
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<?php
/******
* Créditos - Fábio - www.imasters.com
*
*******/
function anti_injection($sql)
{
// remove palavras que contenham sintaxe sql
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);//limpa espaços vazio
$sql = strip_tags($sql);//tira tags html e php
$sql = addslashes($sql);//Adiciona barras invertidas a uma string
return $sql;
}
/******
* Fim Créditos - Fábio - www.imasters.com
*
*******/
/******
*
* Créditos: hcar - Hamilcar Antônio Vieira da Silva - hcar_1@yahoo.com.br
*
* Alterar informações das notícias na base de dados
*
* ******/
function invertData($data)
{
$data_mysql = explode(" ", $data);
$data_mysql1 = implode("/", array_reverse(explode("-", $data_mysql[0])));
return ($data_mysql1 . " " . $data_mysql[1]);
}
require_once('include/configBd.php');
mysql_select_db($db['database'], $db['con']);
if(isset($_GET['passo']) && isset($_GET['id']))
{
$id = anti_injection($_GET['id']);
if((anti_injection($_GET['passo'])) == 1)
{
$selectIdSQL = "SELECT * FROM (`produtos`) WHERE `id`='$id'";
$selectId = mysql_query($selectIdSQL, $db['con']) or die(mysql_error());
$row = mysql_fetch_assoc($selectId);
?>
<form id="form_alterar" name="form_alterar">
<label class="titulo">Categoria</label>
<br/>
<input name="categoria" type="text" id="categoria"
value="<?php echo($row['categoria']); ?>" size="60"/>
<br/>
<br/>
<label class="titulo">Título</label>
<br/>
<input name="titulo" type="text" id="titulo" value="<?php echo($row['titulo']); ?>" size="60" />
<br />
<br />
<label class="titulo">Fabricante</label>
<br/>
<input name="fabricante" type="text" id="fabricante" value="<?php echo($row['fabricante']); ?>" size="60" />
<br />
<br />
<label class="titulo">Marca</label>
<br/>
<input name="marca" type="text" id="marca" value="<?php echo($row['marca']); ?>" size="60" />
<br />
<br />
<label class="titulo">Modelo</label>
<br/>
<input name="modelo" type="text" id="modelo" value="<?php echo($row['modelo']); ?>" size="60" />
<br/>
<br/>
<label class="titulo">Descrição</label>
<br/>
<textarea name="descricao" cols="58" rows="4" id="descricao"><?php echo($row['descricao']); ?></textarea>
<br />
<br />
<label class="titulo">Observações</label>
<br/>
<textarea name="observacoes" cols="58" rows="4" id="observacoes"><?php echo($row['observacoes']); ?></textarea>
<br />
<br />
<label class="titulo">Valor Unitário </label>
<br/>
<input name="valorunitario" type="text" id="valorunitario" value="<?php echo($row['valorunitario']); ?>" size="40" />
<br/>
<br/>
<label class="titulo">Data</label><br/>
<input name="data" type="text" size="30" readonly="readonly"
value="<?php echo(invertData($row['data'])); ?>"/>
<br />
<br />
<label class="titulo">Está em Promoção? (1 para Sim, 0 para Não) </label>
<br/>
<input name="data2" type="text" size="10" readonly="readonly"
value="<?php echo($row['promocao']); ?>"/>
<br/>
<label id="texto" class="txt"></label>
<br/>
<br/>
<input name="id" type="hidden" value="<?php echo($row['id']); ?>" />
<ul class="menu">
<li><a href='java script:validaForm2()'>Alterar</a></li>
</ul>
</form>
<?php
}
else
{
if((anti_injection($_GET['passo'])) == 2)
{
if(isset($_GET['categoria']) && isset($_GET['titulo']) && isset($_GET['fabricante']) && isset($_GET['marca']) && isset($_GET['modelo']) && isset($_GET['descricao']) && isset($_GET['observacoes']) && isset($_GET['valorunitario']) && isset($_GET['promocao'])
&& $_GET['categoria'] != '' && $_GET['titulo'] != '' && $_GET['fabricante'] != '' && $_GET['marca'] != '' && $_GET['modelo'] != '' && $_GET['descricao'] != '' && $_GET['observacoes'] != '' && $_GET['valorunitario'] != '' && $_GET['promocao'] != ''
&& isset($_GET['id']) && isset($_GET['browser'])
&& $_GET['id'] != '' && $_GET['browser'] != '' )
{
//se browser for IE
if($_GET['browser'] == 1)
{
$categoria = anti_injection(trim($_GET['categoria']));
$titulo = anti_injection(trim($_GET['titulo']));
$fabricante = anti_injection(trim($_GET['fabricante']));
$marca = anti_injection(trim($_GET['marca']));
$modelo = anti_injection(trim($_GET['modelo']));
$descricao = anti_injection(trim($_GET['descricao']));
$observacoes = anti_injection(trim($_GET['observacoes']));
$valorunitario = anti_injection(trim($_GET['valorunitario']));
$data = anti_injection(trim($_GET['data']));
$promocao = anti_injection(trim($_GET['promocao']));
$id = anti_injection(trim($_GET['id']));
}
else
{
$categoria = utf8_decode(anti_injection(trim($_GET['categoria'])));
$titulo = utf8_decode(anti_injection(trim($_GET['titulo'])));
$fabricante = utf8_decode(anti_injection(trim($_GET['fabricante'])));
$marca = utf8_decode(anti_injection(trim($_GET['marca'])));
$modelo = utf8_decode(anti_injection(trim($_GET['modelo'])));
$descricao = utf8_decode(anti_injection(trim($_GET['descricao'])));
$observacoes = utf8_decode(anti_injection(trim($_GET['observacoes'])));
$valorunitario = utf8_decode(anti_injection(trim($_GET['valorunitario'])));
$data = utf8_decode(anti_injection(trim($_GET['data'])));
$promocao = utf8_decode(anti_injection(trim($_GET['promocao'])));
$id = utf8_decode(anti_injection(trim($_GET['id'])));
}
$alteraIdSQL = "UPDATE `produtos` SET categoria='$categoria', titulo='$titulo', fabricante='$fabricante', marca='$marca', modelo='$modelo', descricao='$descricao', observacoes='$observacoes', valorunitario='$valorunitario', data='$data', promocao='$promocao' WHERE id='$id'";
$alteraId = mysql_query($alteraIdSQL, $db['con']) or die(mysql_error());
if($alteraId > 0)
{
echo('Informação alterada em nossa base de dados!');
}
else
{
echo('Erro ao alterar informação - Tente novamente!');
}
}
else
{
echo('Erro no envio dos dados - Tente novamente!');
}
}
else
{
echo('Erro no envio dos dados - Tente novamente!');
}
}
}
else
{
echo('Erro no envio dos dados - Tente novamente!');
}
?>
ESSE É O CÓDIGO DO ARQUIVO upload.js
/******
* Versão: 1.0 - 03/12/2006
* Autor: hcar - Hamilcar Antônio Vieira da Silva - hcar_1@yahoo.com.br
*
* function textCounter(field, countfield, maxlimit)
* - Limitar quentidade de caracteres digitados
*
* function action(act)
* - verifica qual ação o usuário escolheu e configura para que seja efetuada
*
* function data()
* - Pegar a data atual
*
* function criaForm(area)
* - Manipular o formulário de acordo com a escolha do usuário
*
* function add_foto()
* - Adicionar campo para inclusão de uma imagem
*
* function resetForm(p)
* - Voltar o formulário para apresentação inicial
*
* function enviamos()
* - Envio do formulário
*
* function validaForm()
* - Validar formulário de acordo com opção escolhida pelo usuário
*
*******/
var foto=0;
var totalImagens=4;
function textCounter(field, countfield, maxlimit)
{
if(field.value.length > maxlimit)
{
field.value = field.value.substring(0, maxlimit);
}
else
{
countfield.value = maxlimit - field.value.length;
}
}
function action(act)
{
switch(act)
{
case 'incluir':
resetForm(1);
document.getElementById('acao').style.display = 'none';
document.form_fotos.action = 'uploadFile.php';
document.form_fotos.target = 'iframeEnvia';
document.form_fotos.method = "post";
document.getElementById('escolha').style.display = 'block';
document.getElementById('radio').style.display = 'block';
break;
case 'reset':
document.getElementById('iframe').style.display = 'none';
document.getElementById('acao').style.display = 'block';
ajaxGet("listar.php",document.getElementById("acao"),true);
resetForm(2);
break;
case 'excluir':
var dados = '?passo=2&id='+document.excluir.id.value;
ajaxGet("excluir.php"+dados,document.getElementById("acao"),true);
break;
}
}
function data()
{
hoje = new Date();
dia = hoje.getDate();
mes = hoje.getMonth()+1;
ano = hoje.getFullYear();
hora = hoje.getHours();
minuto = hoje.getMinutes();
segundo = hoje.getSeconds();
document.getElementById("data").value = (ano+'-'+mes+'-'+dia+' '+hora+':'+minuto+':'+segundo);
}
function criaForm(area)
{
switch(area)
{
case 'texto':
resetForm(1);
document.getElementById('text').style.display = 'block';
document.getElementById('botoes').style.display = 'block';
break;
case 'imagens':
resetForm(1);
document.getElementById('image').style.display = 'block';
document.getElementById('botoes').style.display = 'block';
break;
case 'misto':
resetForm(1);
document.getElementById('text').style.display = 'block';
document.getElementById('image').style.display = 'block';
document.getElementById('botoes').style.display = 'block';
break;
}
//document.getElementById('escolha').style.display = 'none';
}
function add_foto()
{
var y;
if(foto < totalImagens)
{
y = '<input id="fota" type="file" name="fotos[]"/> <br/>';
document.getElementById('imagens').innerHTML += y;;
foto++;
}
else
{
document.getElementById('imgInfo').innerHTML = 'Quantidade máxima de fotos alcançada.';
document.getElementById('imgInfo').style.display = 'block';
}
}
function resetForm(p)
{
var seleciona;
if(p == 1)
{
document.getElementById('iframe').style.display = 'none';
}
if(p == 2)
{
document.getElementById('radio').style.display = 'none';
document.getElementById('escolha').style.display = 'block';
seleciona = document.getElementById('radio').getElementsByTagName('input');
for (i = 0; i < seleciona.length; i++)
{
if(seleciona*.checked)*
{
* seleciona**.checked = false;*
}
}
}
document.getElementById('text').style.display = 'none';
document.getElementById('image').style.display = 'none';
document.getElementById('botoes').style.display = 'none';
document.getElementById('imagens').innerHTML = '';
document.getElementById('aux').innerHTML = '';
document.getElementById('aux').style.display = 'none';
document.getElementById('imgInfo').innerHTML = '';
document.getElementById('imgInfo').style.display = 'none';
document.getElementById("enviar").disabled = false;
document.form_fotos.categoria.value = "";
document.form_fotos.titulo.value = "";
document.form_fotos.fabricante.value = "";
document.form_fotos.marca.value = "";
document.form_fotos.modelo.value = "";
document.form_fotos.descricao.value = "";
document.form_fotos.observacoes.value = "";
document.form_fotos.valorunitario.value = "";
document.form_fotos.promocao.value = "";
seleciona = document.getElementById('text').getElementsByTagName('input');
for (i = 0; i < seleciona.length; i++)
{
* if(seleciona**.value == "")*
{
* document.getElementById(seleciona**.name).style.backgroundColor="";*
}
}
seleciona = document.getElementById('text').getElementsByTagName('textarea');
for (i = 0; i < seleciona.length; i++)
{
* if(seleciona**.value == "")*
{
* document.getElementById(seleciona**.name).style.backgroundColor="";*
}
}
document.getElementById('imgs').style.backgroundColor="";
foto = 0;
}
function enviamos()
{
document.getElementById('enviar').disabled = true;
//document.getElementById('acao').style.display = 'none';
document.getElementById('aux').innerHTML = '<img src="images/carregando.gif" border="0"/>';
document.getElementById('aux').style.display = 'block';
document.getElementById('iframe').style.display = 'block';
if(foto > 0)
{
document.getElementById('form_fotos').encoding = 'multipart/form-data';
}
else
{
document.getElementById('form_fotos').encoding = 'application/x-www-form-urlencoded';
}
document.getElementById('form_fotos').submit();
}
function validaForm2()
{
var dados;
if(document.form_alterar.categoria.value == '' || document.form_alterar.titulo.value == ''
|| document.form_alterar.valorunitario.value == '')
{
document.getElementById('infoAltera').innerHTML = 'Campos de preenchimento obrigatórios!';
return;
}
document.getElementById('form_alterar').encoding = 'application/x-www-form-urlencoded';
dados = 'alterar.php?categoria='+document.form_alterar.categoria.value+'&titulo='+document.form_alterar.titulo.value+'&fabricante='+document.form_alterar.fabricante.value+'&marca='+document.form_alterar.marca.value+'&modelo='+document.form_alterar.modelo.value+'&descricao='+document.form_alterar.descricao.value+'&observacoes='+document.form_alterar.observacoes.value+'&valorunitario='+document.form_alterar.valorunitario.value+'&id='+document.form_alterar.id.value+'&promocao='+document.form_alterar.promocao.value;
dados = encodeURIComponent(dados);
/ if(navigator.appName == 'Microsoft Internet Explorer')*
{
dados += '&browser=1';
}
else
{
dados += '&browser=2';
}
**/*
ajaxGet(dados,document.getElementById("acao"),true);
}
function validaForm()
{
* var erro = 'Campos: ';*
* var enviar = true;*
* var seleciona = document.getElementById('radio').getElementsByTagName('input');*
for (i = 0; i <seleciona.length; i++)
{
* if(seleciona**.checked)*
{
* seleciona = seleciona**.value;*
break;
}
}
switch(seleciona)
{
case 'texto':
seleciona = document.getElementById('text').getElementsByTagName('input');
for (i = 0; i < seleciona.length; i++)
{
* if(seleciona**.value == "")*
{
* document.getElementById(seleciona**.name).style.backgroundColor="#999900";*
* erro += seleciona**.name+', ';*
}
}
seleciona = document.getElementById('text').getElementsByTagName('textarea');
for (i = 0; i < seleciona.length; i++)
{
* if(seleciona**.value == "")*
{
* document.getElementById(seleciona**.name).style.backgroundColor="#999900";*
* erro += seleciona**.name+', ';*
}
}
if(erro != 'Campos: ' && erro != '')
{
erro += 'são de preenchimento obrigatório!'
document.getElementById('aux').innerHTML = erro;
document.getElementById('aux').style.display = 'block';
enviar = false;
}
break;
case 'imagens':
if(foto == 0 || document.getElementById('fota').value == "")
{
erro = 'Envio de imagem é obrigatório!';
}
if(erro != 'Campos: ' && erro != '')
{
document.getElementById('imgs').style.backgroundColor="#999900";
document.getElementById('imgInfo').innerHTML = erro;
document.getElementById('imgInfo').style.display = 'block';
enviar = false;
}
break;
case 'misto':
seleciona = document.getElementById('text').getElementsByTagName('input');
for (i = 0; i < seleciona.length; i++)
{
* if(seleciona**.value == "")*
{
* document.getElementById(seleciona**.name).style.backgroundColor="#999900";*
* erro += seleciona**.name+', ';*
}
}
seleciona = document.getElementById('text').getElementsByTagName('textarea');
for (i = 0; i < seleciona.length; i++)
{
* if(seleciona**.value == "")*
{
* document.getElementById(seleciona**.name).style.backgroundColor="#999900";*
* erro += seleciona**.name+', ';*
}
}
if(foto == 0 || document.getElementById('fota').value == "")
{
document.getElementById('imgInfo').innerHTML = 'Envio de imagem é obrigatório!';
document.getElementById('imgs').style.backgroundColor="#999900";
document.getElementById('imgInfo').style.display = 'block';
enviar = false;
}
if(erro != 'Campos: ' && erro != '')
{
erro += 'são de preenchimento obrigatório!';
document.getElementById('aux').innerHTML = erro;
document.getElementById('aux').style.display = 'block';
enviar = false;
}
break;
}
if(enviar)
{
enviamos();
}
}
O link do download esta quebrado...
>
Pessoal é o seguinte, este sistema faz o cadastro(incluir, excluir e alterar) de notícias, as notícias podem ser vinculadas a uma ou mais imagens, sendo o sistema configurado para upload de até quatro imagens, para incluir notícias no sistema você pode enviar uma notícia sem vínculo a nenhuma imagem, podendo configurar no sistema se esta notícia será vinculada a uma imagem default ou não, pode também enviar uma notícia vinculada a uma ou mais imagens, e pode optar por enviar somente imagem, sem notícia vinculada. O sistema utiliza ajax sendo usada função ajaxGet de Micox, um de nossos prestigiados colaboradores no fórum. Algumas funções do sistema foram baseadas em posts aqui do fórum.
Não foi testado um total máximo de imagens que o sistema envia com segurança.
Foi testado no IE e FF.
Possíveis atualizações para o sistema :
1 - Paginação para o script listar.php
2 - Alteração também para imagem vinculada a uma notícia
3 - Excluir também a imagem que esteja vinculada a notícia excluída, caso esta imagem não tenha vínculo a nenhuma outra do banco de dados.
4 - Listar imagens do servidor incluindo opções para deletar uma imagem caso esta não tenha mais vínculo com nenhuma notícia.
5 - Colocar opção para escolha de imagens do servidor.
6 - Página para apresentação das notícias
Enviem críticas e sugestões.
================================
Editado - 08/12/2006
Valeu pessoal, dica de sqlinjection atualizado.
================================
================================
Editado - 13/12/2006
Paginação Simples incluída no sistema.
================================
Sistema em funcionamento
Baixar sistema