Ir para conteúdo

POWERED BY:

Arquivado

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

Deinha

[Resolvido] Script funciona em servidor Linux, mas não no Windows

Recommended Posts

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

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

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

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

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

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

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

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

×

Informação importante

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