Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
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:>
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.
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
$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?
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
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'
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
ok,
Nao vou voltar a fazer... agora já sei o pq..
obrigado mais uma vez
Então entendeu como funciona? Resolveu o problema?
Carlos Eduardo
o link
http://sasibijou.com/qwe/index.php?page=5&submenu=1&p=1