Ir para conteúdo

POWERED BY:

Arquivado

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

BrunoVieira

paginação com bug

Recommended Posts

oi pessoal.

 

estou com um bug, estou a fazer a paginação de uma busa:

 


	$sql_select_all = "SELECT * FROM produtos where id_submenu=$submenu";
$sql_query_all = mysql_query($sql_select_all);
$total_registros = mysql_num_rows($sql_query_all);
$pags = ceil($total_registros/$quantidadeProdPagina);


$max_links = 20;
echo "<table align='right'  style=' padding-right:15px;'  ><tr><td >
<table align='right'>
<tr>";

for($i = $paginaActual-$max_links; $i <= $p-1; $i++)
	if(!($i <= 0)) 
	 echo "<td  class='lol'><a href='index.php?page=5&submenu=$submenu&p=".$i."' target='_self' style='font-family: Verdana, Geneva, sans-serif; font-size: 12px;  font-weight: bold; color:#034EA2; text-decoration:none' >".$i."|</a></td> ";
echo "<td  class='pag_act' style='font-family: Verdana, Geneva, sans-serif; font-size: 12px;  font-weight: bold; color:#6E6F70 ; text-decoration:none' >".$paginaActual."|</td>";

for($i = $paginaActual+1; $i <= $paginaActual+$max_links; $i++)
	if(!($i > $pags))
		echo "<td  class='lol'><a href='index.php?page=5&submenu=$submenu&p=".$i."' target='_self' style='font-family: Verdana, Geneva, sans-serif; font-size: 12px;  font-weight: bold; color:#034EA2 ; text-decoration:none' >".$i."|</a> </td>";

echo "

</tr></table>
</tr></table>";

 

este codigo vai mostrar o numero um a um... ex: 1| 2| 3| .....

 

está a funcionar, só que quando carrego por exemplo no 2 o numero 1 deixa de se ver...

 

tenho em 2 servidores o mesmo codigo, num servidor está bem e noutro já nao está.

 

alguém me pode dar uma ajuda.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, a primeira coisa que me vem a cabeça, quando funciona em um servidor e não funciona em outro é register_global ON em um lugar e OFF em outro.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

viva Matias, é mesmo isso... já agora alterei no meu Wamp5 register_global ON.. mas e como é altero isso no cpanel do servidor?

 

Alterei o codigo ficou bem mais simples, fikou assim:

 

$pag=$_GET['p'];

$iq=0;
do
  {
  $iq++;
  echo "<td  class='lol'><a href='index.php?page=5&submenu=$submenu&p=".$iq."' target='_self' ";
  
  if ($pag==$iq || $pag=="" ){ echo "style='font-family: Verdana, Geneva, sans-serif; font-size: 12px;  font-weight: bold; color:
#6E6F70; text-decoration:none'";}
  
  else{ echo "style='font-family: Verdana, Geneva, sans-serif; font-size: 12px;  font-weight: bold; color:
#034EA2; text-decoration:none'";}
  
echo">".$iq."| </a></td> ";

}
while ($iq<$total_registros);

mas se me poderes dar a dica do cpanel era bom, assim essa já nao me dava mais a volta.. :rolleyes: :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

já agora alterei no meu Wamp5 register_global ON.. mas e como é altero isso no cpanel do servidor?

 

Você não deve utilizar register_globals, nunca, em vez disso, faça as correções no seu código para não precisar mais disso.

 

Além das considerações de segurança, a maioria dos servidores atuais não permite que essa diretiva seja ativada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que o João falou, a partir do PHP 6 esta diretiva não existirá mais, ou seja, será SEMPRE OFF. Então já comece a programar corretamente, utilizando os arrays

$_POST, $_GET, $_SESSION ou $_COOKIE.

 

http://br.php.net/manual/pt_BR/reserved.variables.post.php

http://br.php.net/manual/pt_BR/reserved.variables.get.php

http://br.php.net/manual/pt_BR/reserved.variables.session.php

http://br.php.net/manual/pt_BR/reserved.variables.cookies.php

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

$pag=$_GET['p'];

$iq=0;
do
  {
  $iq++;
  echo "<td  class='lol'><a href='index.php?page=5&submenu=$submenu&p=".$iq."' target='_self' ";
  
  if ($pag==$iq || $pag=="" ){ echo "style='font-family: Verdana, Geneva, sans-serif; font-size: 12px;  font-weight: bold; color:
#6E6F70; text-decoration:none'";}
  
  else{ echo "style='font-family: Verdana, Geneva, sans-serif; font-size: 12px;  font-weight: bold; color:
#034EA2; text-decoration:none'";}
  
echo">".$iq."| </a></td> ";

}
while ($iq<$total_registros);

 

mas neste codigo já nao estou a utilizar isso, esta seria a melhor forma então?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, a melhor forma é NÃO utilizar register_global ON. Veja se onde vem TODAS as variáveis utilizadas no seu código, além de habilitar TODAS as mensagens de erro.

Configure o seu servidor local para isto (register_global OFF e error_reporting = E_ALL), para começar a exibir os NOTICES também.

 

Depois que estiver rodando 100% no seu servidor local sem erros, no seu servidor de produção deve ocorrer a mesma coisa.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

matias o 2 codigo esta a dar bem, com register_global OFF no servidor local.

 

mas eu no primeiro codigo nao estou a ver, ou melhor ainda nao consigo ver o que tem register_global... dei uma olhadela na net para ver melhor o que eram as register_global encontrei isto:

 

"Um exemplo de uso comum do “register_globals” é para passar a informação de qual pagina deverá ser visualizada em um determinado menu ou botão. Isto é bastante comum principalmente em sites institucionais.

 

De modo mais técnico: Um site possui uma pagina principal “index.php” que internamente verifica o conteúdo da variavel “$pagina”. Esta variável recebe o nome da página a ser acessada. Quando acessarmos http://dominio.com.br/index.php?pagina=contato, internamente a pagina “index.php” chamará a pagina “contato.php”."

 

 

eu ao utilizar o codigo assim estou a fazer mal?

<a href='index.php?page=5&submenu=$submenu&p=".$i."' target='_self'

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é no link. No link que você colocou (<a href='index.php?page=5&submenu=$submenu&p=".$i."' target='_self'), se na página index.php, você fizer assim...

echo $page;

Com register_global ON, vai imprimir 5. Com register_global OFF, não vai imprimir. Com register_global OFF, para receber o valor de $page, você deve utilizar

echo $_GET['page'];

Carlos Eduardo

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.