Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Problem sa paginacijom
Author Message
suad Offline
Novi korisnik
*

Posts: 68
Joined: Nov 2009
Reputation: 0
Post: #1
Problem sa paginacijom
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

PHP 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!
26-12-2010 06:12 PM
Find all posts by this user Quote this message in a reply
kecko Offline
Forumaš
***

Posts: 655
Joined: Nov 2009
Reputation: 20
Post: #2
RE: Problem sa paginacijom
$_GET["stranica"] ti je undefined...
Možeš riješiti tako da prije provjeravaš da li je $_GET["stranica"] setirana, da nije null..
if(isset($_GET["stranica"])), zaobilazno riješenje je da staviš @ispred pa tako zanemariš pojavljivanje greške...
(This post was last modified: 27-12-2010 09:34 AM by kecko.)
27-12-2010 09:33 AM
Find all posts by this user Quote this message in a reply
suad Offline
Novi korisnik
*

Posts: 68
Joined: Nov 2009
Reputation: 0
Post: #3
RE: Problem sa paginacijom
ok fala to sam napravio.

A možeš li mi reći kako da zastitim 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!
27-12-2010 07:53 PM
Find all posts by this user Quote this message in a reply
kecko Offline
Forumaš
***

Posts: 655
Joined: Nov 2009
Reputation: 20
Post: #4
RE: Problem sa paginacijom
odmah iza
Code:
$_GET['stranica']=$_GET['stranica']?intval($_GET['stranica']):1;
provjeri dali je stranica manja od 1, pa ako je preusmjeri na 404 page not found...
if($_GET['stranica']<1)
{
header("HTTP/1.0 404 Not Found");
exit;
}
Sama skripta je i bez toga sigurna od SQL injectiona jer se ovdje radi filtriranje intval($_GET['stranica'])
a ovo nema veze s SQL injectionom, pa čak i da nema tog filtriranja ne bi se nikakvo zlo moglo dogoditi...
28-12-2010 09:05 AM
Find all posts by this user Quote this message in a reply
Kerber Offline
_
*

Posts: 357
Joined: Dec 2006
Reputation: 1
Post: #5
RE: Problem sa paginacijom
Mislim da ne razumijes dobro pojam "sql injection"

Ukoliko imas upis ili čitanje iz baze (sql) onda moras na sve već poznate načine zaštiti da taj unos ili čitanje nije moguće zloupotrijebiti, odnosno da nije moguće ubrizgati neku stranu naredbu (dio koda) koju ti nisi predvidio.

Ovdje se kao što kecko reče radi o običnoj petlji za filtriranje ili laički rečeno "što bi bilo, kad bi bilo"...

Puno puta sam rekao da code neću pisati na ovom forumu, jer to ima na php.net, a bitno je svariti logiku i teoriju programiranja a za sve ostalo je tu spomenuti php.net i druge srodne stranice.

Peace! :)

FGD!

Pravila foruma - pročitajte prije nego pitate
29-12-2010 12:55 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)