Vania61 0 Denunciar post Postado Março 12, 2013 Boa tarde a todos. É o seguinte, meu site começou a dá erro na paginação. Clico para passar de página ele mostra resultados dá primeira sendo que o link está em outra página. O meu servidor mudou e observei agora. Teria alguma pessoa boa para resolver esse problema? O codigo é esse abaixo. Peço que alguem faça as mudanças necessarias , por favor. <? if ($pagina > 0) { $menos = $pagina - 1; $url = strtolower($cat)."-".$menos.".html"; print "<a href=\"$url\">« Anterior</a>"; } else { print ""; } ?> <? for($i = 0; $i < $paginas; $i++) { $linksp = $i + 1; if ($pagina == $i) { print "$linksp"; } else { $url = strtolower($cat)."-".$i.".html"; print " <a href=\"$url\">$linksp</a> "; } } ?> <? if($pagina < ($paginas - 1)) { $mais = $pagina + 1; $url = strtolower($cat)."-".$mais.".html"; print "<a href=\"$url\">Próxima »</a>"; } else { print ""; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
toli 1 Denunciar post Postado Março 12, 2013 Olá Vania61 tudo bem? A primeira dica que te dou é não usar short tags, como você mesmo viu o servidor pode trocar as configurações a qualquer momento e você pode ficar na mão, tente trocar todos os seus <? ?> por <?php ?> Você pode dar um var_dump nas seguintes variáveis para ver o que tem nelas? $pagina $paginas Compartilhar este post Link para o post Compartilhar em outros sites
Vania61 0 Denunciar post Postado Março 12, 2013 Ola toli. Entendo muito pouco php. mas é isso que você queira? $paginas = ceil($total / $lpp); // Retorna o total de paginas $lpp = 12; // Especifique quantos resultados você quer por página $inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL Outra coisa, tem como voce deixar esse codigo ja funcionando? Estou perdida, rs... mas obrigada pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites
toli 1 Denunciar post Postado Março 12, 2013 Não era isto, .... Faz assim, você pode postar o código inteiro? Assim da para ver como ele funciona ai fica mais fácil ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Vania61 0 Denunciar post Postado Março 12, 2013 Tudo bem Toli, obrigada. Tudo que era codigo PHP eu peguei da pagina categoria. veja ai. São 3 partes. "inicio", "meio" e a "paginação". <? switch($_GET[cat]) { case "Blusas": $titulo = "Blusas"; break; case "Cintos": $titulo = "Cintos"; break; } ?> <? // include "config.php"; function convdata($dataform, $sep){ $datatrans = explode ("-", $dataform); return "$datatrans[2]$sep$datatrans[1]$sep$datatrans[0]"; } $cat = $_GET['cat']; $sql = mysql_query("SELECT * FROM roupas WHERE roupas_categoria_nome = '$cat'") ; $lpp = 12; // Especifique quantos resultados vocj quer por pagina $total = mysql_num_rows($sql); // Esta funcao ira retornar o total de linhas na tabela $paginas = ceil($total / $lpp); // Retorna o total de paginas if(!isset($pagina)) { $pagina = 0;} // Especifica uma valor para variavel pagina caso a mesma nco esteja setada $inicio = $pagina * $lpp; // Retorna qual sera a primeira linha a ser mostrada no MySQL $sql = mysql_query("SELECT * FROM roupas WHERE roupas_categoria_nome='$cat' ORDER BY roupas_nome asc LIMIT $inicio, $lpp"); while ($x = mysql_fetch_array($sql)) { $xdata= convdata($x[roupas_data],"/"); ?> <a href="<?php echo urlformat($x["roupas_categoria_nome"])."/".urlformat($x["roupas_nome"])."-".$x["roupas_id"].".html"; ?>"><img src="http://www.site.com/imagens/mini_<? echo "$x[roupas_img]"; ?>" border="0" height="100" width="120"></a></td> </tr> <tr> <td class="fundotit" style="border-bottom: #009900 dashed 1px"><a href="<?php echo urlformat($x["roupas_categoria_nome"])."/".urlformat($x["roupas_nome"])."-".$x["roupas_id"].".html"; ?>"><? echo "$x[roupas_nome]"; ?></a></td> </tr> <tr> <td class="fundovisto"><b>Visto:</b> <? echo "$x[roupas_views]"; ?></td> <? } ?> <? if ($pagina > 0) { $menos = $pagina - 1; $url = strtolower($cat)."-".$menos.".html"; print "<a href=\"$url\">« Anterior</a>"; } else { print ""; } ?> <? for($i = 0; $i < $paginas; $i++) { $linksp = $i + 1; if ($pagina == $i) { print "$linksp"; } else { $url = strtolower($cat)."-".$i.".html"; print " <a href=\"$url\">$linksp</a> "; } } ?> <? if($pagina < ($paginas - 1)) { $mais = $pagina + 1; $url = strtolower($cat)."-".$mais.".html"; print "<a href=\"$url\">Próxima »</a>"; } else { print ""; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
toli 1 Denunciar post Postado Março 12, 2013 Vania61, Você consegue deixar assim logo em baixo de include 'config.php'? <? // include "config.php"; ini_set('display_errors',1); ini_set('display_startup_erros',1); ini_set('short_open_tag',1); error_reporting(E_ALL); Veja se o sistema mostra algum erro. Outra pergunta, por que este include está comentando? Vania61, você pode copiar também, o codigo html gerado? Compartilhar este post Link para o post Compartilhar em outros sites
Vania61 0 Denunciar post Postado Março 12, 2013 Toli, apareceu muitos erros com esse codigo. Tive observando que quando habilito no sistema o "php.ini" com o "register_globals = On" , a paginação funciona mas outra parte do site dá erro. teria como então habiltar o "register_globals = On" apenas para uma pagina especifica? Compartilhar este post Link para o post Compartilhar em outros sites
toli 1 Denunciar post Postado Março 13, 2013 No manual do php temos a seguinte notaAvisoEsta funcionalidade tornou-se OBSOLETA desde o PHP 5.3.0. Confiar nesta funcionalidade é altamente não recomendado.http://php.net/manual/pt_BR/security.globals.phpPode ser que a variável $pagina seja setada em algum lugar fora destes scripts que você me passou, por isto que ela funciona com a opção configurada para on. Pelo menos foi isto que eu vi, pois em nenhum momento é passado um valor direto para esta variável, a não ser quando se faz a verificação se ela foi setada.Vania61, como é a url desta pagina?Tente pegar o valor dela e setar dentro do script algo como isto abaixo, vai depender de como está configurado sua pagina (url amigável, ou os parâmetros passados por ela).De um var_dump no REQUESTe veja o que aparece, para evitar duvidas, de também em GET e POST. <? // include "config.php"; var_dump($_REQUEST); var_dump($_POST); var_dump($_GET); $pagina = $_GET['pagina']; Compartilhar este post Link para o post Compartilhar em outros sites