Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem oko paginacije

[es] :: PHP :: Problem oko paginacije

[ Pregleda: 2079 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BLACK_SWORD

Član broj: 212173
Poruke: 171
62.68.108.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Problem oko paginacije26.12.2010. u 18:17 - pre 161 meseci
Pozdrav!

napravio sam paginaciju i sad kad ukljucim error_reporting(E_ALL); javlja mi greške
Code:
Notice: Undefined index: stranica in D:\xampp\htdocs\paginacija.php on line 42
Notice: Undefined index: stranica in D:\xampp\htdocs\paginacija.php on line 8


a kad je iskljućen error_reporting(E_ALL); dobro radi skripta.
evo kod od paginacije
Code:
<?php 

require('sajt/Postavke.php'); //Poziva Postavke.php.
       
/*Paginacija.*/
function paginacija($redak,$po_stranici=10,$z)
{
    $_GET['stranica']=$_GET['stranica']?intval($_GET['stranica']):1;
    $p=ceil($redak/$po_stranici);
    if($p>1)
    {
        if($_GET['stranica']>1)
        {
            echo'<a href="'.$_SERVER['PHP_SELF'].''.$z.'stranica='.(intval($_GET['stranica'])-1).'"><<</a>';
        }
        echo'<a href="'.$_SERVER['PHP_SELF'].''.$z.'stranica=1">1</a>';

        $pocetak=max(2,min($p-4,$_GET['stranica']-2));
        $kraj=min($p-1,max($pocetak+3,$_GET['stranica']+2));
        for($i=$pocetak;$i<=$kraj;$i++)
        {
            if(($pocetak>2)and($pocetak==$i))
            {
                echo'...';
            }
            echo'<a href="'.$_SERVER['PHP_SELF'].''.$z.'stranica='.$i.'">'.$i.'</a>';
            if(($kraj<$p-1)and($i==$kraj))
            {
                echo'...';
            }
        }
        echo'<a href="'.$_SERVER['PHP_SELF'].''.$z.'stranica='.$p.'">'.$p.'</a>';
        if($_GET['stranica']<$p)
        {
            echo'<a href="'.$_SERVER['PHP_SELF'].''.$z.'stranica='.(intval($_GET['stranica'])+1).'">>></a>';
        }
    }
}



$granica=$_GET['stranica']?((intval($_GET['stranica'])-1)*2).',2':'0,2';
$q=mysql_query("SELECT * FROM blog_kategorije ORDER BY id_blog_kategorije ASC LIMIT ".$granica);

if(mysql_num_rows($q))
{
    while($redak=mysql_fetch_array($q))
    {
        echo $redak['ime_kategorije'].'<br />';
    }

}

$r=mysql_num_rows(mysql_query("SELECT id_blog_kategorije FROM blog_kategorije"));
paginacija($r,2,'?');

?>


Znali neko u cemu je problem?

Hvala!

 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-6.sezampro.rs.



+33 Profil

icon Re: Problem oko paginacije26.12.2010. u 18:24 - pre 161 meseci
Notice nije greška, već samo napomena. Verovatno je problem u uslovu ternarnih operatora koje primenjuješ na tim dvema linijama kôda, kada ispituješ $_GET['stranica']. Pravilnije bi bilo da to radiš na sledeći način:
Code:
$_GET['stranica'] = (isset($_GET['stranica'])) ? intval($_GET['stranica']) : 1;

... odnosno za taj drugi slučaj:
Code:
$granica = (isset($_GET['stranica'])) ? ((intval($_GET['stranica'])-1)*2).',2' : '0,2';
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+46 Profil

icon Re: Problem oko paginacije26.12.2010. u 18:28 - pre 161 meseci
Svuda gde koristiš neku promenljivu tipa $_GET['stranica'] prvo proveri da li ista postoji, koristeći f-ju isset()

znači umesto:
if($_GET['stranica']>1)

stavi:
if (isset($_GET['stranica']) && ($_GET['stranica']>1))

Ovo se dešava jer ti promenljiva stranica nije prosleđena (prvi put kad dođeš na stranicu nema ?stranica=1) a pokušavaš da joj pristupiš.

edit: Preteče me Nikola
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 171
62.68.108.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Re: Problem oko paginacije26.12.2010. u 19:20 - pre 161 meseci
Hval vam radi sad
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 171
93.157.198.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Re: Problem oko paginacije27.12.2010. u 17:11 - pre 161 meseci
a možeteli mi reći kako da zaštitim paginaciju od sql injectiona?

Kad ukucam u link http://localhost/paginacija.php?stranica=-2 ili ?stranica=0 izbaci mi grešku

Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-6,2' at line 1


Hvala na pomoći!
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: Problem oko paginacije27.12.2010. u 18:53 - pre 161 meseci
Code:

$granica = (isset($_GET['stranica'])) ? ((max(1,intval($_GET['stranica']))-1)*2).',2' : '0,2';

"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

[es] :: PHP :: Problem oko paginacije

[ Pregleda: 2079 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.