Deinha 0 Denunciar post Postado Fevereiro 9, 2009 Oi pessoal, tudo bem? Seguinte, adaptei um script pronto para um sistema de news e agenda. Em nosso servidor de testes (linux), ele funciona perfeitamente, porém depois que migramos para a hospedagem final (servidor windows) ele parou de funcionar. Pesquisando verifiquei vários pontos que deveriam ser corrigidos por questão de performance e segurança, mas mesmo assim ele não funciona de jeito nenhum. adm_agenda.php (lista os eventos normalmente, mas não deleta e como vocês poderão ver no código pelo EDITAR, o editar e adicionar eram inseridos na mesma página através de uma ação de include, mas isto não estava funcionando, pois ele não reconhecia essa ação e nada acontecia quando clicava no link, então deixei o link normal para a página de adicionar) <?php require("../loga.php"); require("../conexao.inc.php"); //alterar de acordo com seu diretorio require("../funcao.php"); conexao_mysql($host,$user,$pass,$db_super_news);//funcao para conexao com o MYSQL if(!isset($acao)){ ?> <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="15%" height="30" class="titulo"> AGENDA</td> <td width="6%" height="30" class="lateral"><a href="adicionar.php" class="links"><img src="../img/bt_add.gif" border="0"/></a></td> <td width="69%" height="30" class="lateral"><a href="adm_agenda.php" class="links"><img src="../img/bt_edit.gif" width="63" height="17" border="0"/></a></td> </tr> <tr> <td height="40" colspan="3" valign="bottom" class="titulos">Editar Evento</td> </tr> <tr> <td colspan="3" valign="bottom"> </td> </tr> <tr> <td colspan="3" valign="bottom"> </td> </tr> <tr> <td colspan="3" valign="bottom"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="66%" height="30" class="titulo">Evento</td> <td width="16%" align="center" class="titulo">Excluir</td> <td width="16%" align="center" class="titulo">Editar</td> </tr> <?php //Faz a consulta no banco de dados $resultado = mysql_query('SELECT * FROM agenda'); if(!$resultado){ die("Erro ao fazer a consulta no banco de dados: " . mysql_error() . '<br>'); } //Verifica se há alguma noticia amazenada no banco de dados if(mysql_num_rows($resultado) == 0){ print('<font color=\"#333333\" size=\"2\">Atenção! Não há eventos cadastrados </font>'); } else { //Este loop mostra todas as notícias inseridas no banco de dados while($row = mysql_fetch_array($resultado)){ $id = $row['id']; $evento = $row['evento']; $data = $row['data']; ?> <tr> <td height="30"><font face='Arial, Helvetica, sans-serif' size='2' color='#623F19'><?php print(htmlentities($evento)); ?></font></td> <td align="center"><a href="delete.php?id=<?php $_GET['id'] ?>" Onclick="return deleta();"><img src="../img/ico_excluir.gif" border="0"/></a> </td> <td align="center"><a class="editar" href="editar.php?<?php print($id); ?>" target="_self"><img src="../img/ico_edita.gif" border="0"/></a></td> </tr> <tr> <td colspan="3" height="1" bgcolor="#ECEABD"><?php } } ?></td> </tr> </table></td> </tr> </table> <p> </p> <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="5"></td> </tr> <tr> <td> <!--Tabela de menus superiores para controle - fim--> </td> </tr> <tr> <td height="10"></td> </tr> <tr> <td> <?php //aproveita a conexao aberta para mostra as noticias diferentes da que a pessoa está lendo $resultado1 = mysql_query("SELECT * FROM agenda WHERE ID<>$id ORDER BY data DESC LIMIT 0, 5"); if(!$resultado1){ die(); } if(mysql_num_rows($resultado1) == 0){ ?> <font face="Arial, Helvetica, sans-serif" color="#333333" size="2">Adicione mais eventos.</font><br> <?php } else { //Realiza um loop atrás das noticias inseridas na tabela while($row = mysql_fetch_array($resultado1)){ $id = $row['ID']; $evento = $row['evento']; $data = $row['data']; } } } elseif(isset($acao) and ($acao == "add_news")){ //adiciona as noticias include("adicionar.php"); } elseif(isset($acao) and ($acao == "editar")){ //edita a noticia especificada include("editar.php"); } ?> </td> </tr> </table> adicionar.php (Está adicionando no banco de dados registros vazios!) <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="15%" height="30" class="titulo"> AGENDA</td> <td width="6%" height="30" class="lateral"><a href="adicionar.php" class="links"><img src="../img/bt_add.gif" border="0"/></a></td> <td width="69%" height="30" class="lateral"><a href="adm_agenda.php" class="links"><img src="../img/bt_edit.gif" width="63" height="17" border="0"/></a></td> </tr> <tr> <td height="40" colspan="3" valign="bottom" class="titulos">Adicionar Evento</td> </tr> <tr> <td colspan="3" valign="bottom" class="titulos"></td> </tr> <tr> <td colspan="3" valign="bottom" class="titulos"> </td> </tr> <tr> <td colspan="3" valign="bottom" class="titulos"><?php $conn = mysql_connect("localhost","user","senha"); $banco = mysql_select_db("banco"); if(isset($_POST['evento']) and isset($_POST['data'])){ $data = implode('-',array_reverse(explode('/',$data))); $sql = "INSERT INTO agenda (evento, data) VALUES ('$evento','$data')"; if(@mysql_query($sql)){ print("<font color=\"333333\" size=\"2\">Evento adicionado com sucesso!<br><a href='adm_agenda.php' class='links'>Clique aqui</a> para retornar.</font>"); } else { print("<font color=\"333333\" size=\"2\"><b>Erro ao adicionar o evento: " . mysql_error() . '</b></font><br>'); } } else {?></td> </tr> <tr> <td colspan="3" valign="bottom" class="titulos"> <font face="Arial, Helvetica, sans-serif" size="2" color="#333333">*por favor, digite a data no formato dd/mm/aaaa</font><table border="0" cellpadding="0" cellspacing="5" width="95%"> <form action="<?=$PHP_SELF;?>" method="post"> <tr> <td><font face="Arial, Helvetica, sans-serif" size="2" color="#333333">Data*:</font></td> </tr> <tr> <td><input type="text" maxlenght="8" size="9" name="data" /></td> </tr> <tr> <td><font face="Arial, Helvetica, sans-serif" size="2" color="#333333">Evento:</font></td> </tr> <tr> <td><input type="text" size="40" name="evento" /> </td> </tr> <tr> <td><input type="submit" value="Adicionar" /> </td> </tr> </form> </table></td> </tr> <tr> <td colspan="3" valign="bottom" class="titulos"> </td> </tr> </table> delete.php (Retorna que foi excluído com sucesso, mas não exclui!) <?php $conn = mysql_connect("localhost","user","senha"); $banco = mysql_select_db("banco"); $sql = "DELETE FROM agenda WHERE id='$id'"; $resultado = mysql_query($sql) or die ("Não foi possível realizar a exclusão dos dados."); echo "A notícia foi excluída com êxito!"; ?> Será que alguém pode me ajudar? Por favor! Compartilhar este post Link para o post Compartilhar em outros sites
hgb7 3 Denunciar post Postado Fevereiro 9, 2009 Verificou as configurações de conexão de todos os pontos? Compartilhar este post Link para o post Compartilhar em outros sites
Deinha 0 Denunciar post Postado Fevereiro 9, 2009 Então, antes ele chamava uma função externa de conexão com o banco. Quando tentava adicionar algum evento, não estava reconhecendo essa função, por isso passei a utilizar o requerimento total ($conn = mysql_connect("localhost","user","pass"); $banco = mysql_select_db("banco"); ) Surgiu a questão se poderia ser algum erro por estar usando "localhost" no host, mas mesmo utilizando o DNS, o efeito é o mesmo. E o suporte jura que nenhum privilégio é bloqueado, que o problema está em algum ponto do código. :( Compartilhar este post Link para o post Compartilhar em outros sites
PortellaSP 0 Denunciar post Postado Fevereiro 9, 2009 Atenção $id = $row['ID']; acredito q seja diferente de $id = $row['id']; Se a versao do php no linux era 4 e no windows eh 5, você deve capturar as variáveis assim: $evento=$_POST["evento"]; O php4 assume o nome do campo como variavel. O php5 precisa do tipo do campo.. $evento=$_POST["evento"]; é uma possibilidade para estar inserindo vazio. Att, Compartilhar este post Link para o post Compartilhar em outros sites
PortellaSP 0 Denunciar post Postado Fevereiro 9, 2009 Outra coisa, se o campo id for numerico.. não tem aspas no sql; delete from table where id=$id em vez de: delete from table where id='$id' Compartilhar este post Link para o post Compartilhar em outros sites
Deinha 0 Denunciar post Postado Fevereiro 9, 2009 Pois é, eu já me liguei dessa questão do id ou ID, mas está certo. E sobre essa questão de com ou sem aspas... Se eu tiro as aspas dá erro de sintaxe no código. Compartilhar este post Link para o post Compartilhar em outros sites
PortellaSP 0 Denunciar post Postado Fevereiro 9, 2009 Pois é, eu já me liguei dessa questão do id ou ID, mas está certo. E sobre essa questão de com ou sem aspas... Se eu tiro as aspas dá erro de sintaxe no código. entao deve ser pq nao ta pegando o campo id.. tipo se você tira as aspas da erro pelo seguinte.. delete from agente where id='' se você tira... delete from agente where id= Compartilhar este post Link para o post Compartilhar em outros sites
Deinha 0 Denunciar post Postado Fevereiro 9, 2009 CLARO! Nossa, você tá super certo! Adicionei apenas a linha: $id = addslashes($_GET["id"]); antes do comando para deletar e funcionou! Obrigada de verdade! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Adicionar ainda não está adicionando. Tentei alterar o código para <?php $conn = mysql_connect("localhost","user","pass"); $banco = mysql_select_db("banco"); if(isset($evento) and ($evento = $_POST['evento']) and isset($data) and ($data = $_POST['data'])){ $data = implode('-',array_reverse(explode('/',$data))); $sql = "INSERT INTO agenda (evento, data) VALUES ('$evento','$data')"; if(@mysql_query($sql)){ print("<font color=\"333333\" size=\"2\">Evento adicionado com sucesso!<br><a href='adm_agenda.php' class='links'>Clique aqui</a> para retornar.</font>"); } else { print("<font color=\"333333\" size=\"2\"><b>Erro ao adicionar o evento: " . mysql_error() . '</b></font><br>'); } } else {?> Mas não há retorno algum. Nada acontece! Compartilhar este post Link para o post Compartilhar em outros sites
PortellaSP 0 Denunciar post Postado Fevereiro 9, 2009 if(isset($evento) and ($evento = $_POST['evento']) and isset($data) and ($data = $_POST['data'])){ eskenta não.. ninguem nasceu sabendo.. tbm tomei mtu pau assim. rs seguinte.. tenta fazer assim $evento=$_POST["evento"]; $data=$_POST["data"]; e troca esse if por: if(($evento!='')and($data!='')) { } assim você pega os campos e também verifica se eles não estão vazios.. Outra coisa.. você pos akele: Else { ?> em vez disso.. coloca.. else { echo "Não inseriu"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Deinha 0 Denunciar post Postado Fevereiro 9, 2009 Não adianta, nada acontece e não insere nada Compartilhar este post Link para o post Compartilhar em outros sites
Deinha 0 Denunciar post Postado Fevereiro 9, 2009 Consegui resolver! A solução foi: $evento = $_POST['evento']; $data = $_POST['data']; if(isset($evento) and isset($data)) { } Assim adicionou tudo corretamente! Mais uma vez obrigada pela ajuda! :D Compartilhar este post Link para o post Compartilhar em outros sites
PortellaSP 0 Denunciar post Postado Fevereiro 9, 2009 Parabéns.. ^^ Compartilhar este post Link para o post Compartilhar em outros sites
Deinha 0 Denunciar post Postado Fevereiro 9, 2009 * Movi questão para um novo tópico * Compartilhar este post Link para o post Compartilhar em outros sites