Jump to content
php.lv forumi

Recommended Posts

Posted

Forumos un visādās online formās esmu redzējis adresi šādi:

http://kautkas.lv/index.php?245


http://kautkas.lv/index.php?/forum/view.php&25

Nojaušu, ka pēc "?" index.php tiek iedota papildus informācija, kas nosaka ko skriptam darīt tālāk.

 

Nēsu redzējis kodu tam, bet vai tas līdzinās kaut kam šādām? Un ja nē tad kā ir?

 

$value kā pirmie dati pēc "?"


$value2 kā dati pēc "&"
..
if ($value > 200) {
echo 'works'; }
else { echo 'doesn't work'; }
..

..
if ($value == '/forum/view.php') {
$mysql = mysql_connect(utt.);
$data = mysql_query(SELECT text FROM topics WHERE $value2);
echo $data; }
..

  • Replies 39
  • Created
  • Last Reply

Top Posters In This Topic

Posted

`?a=foo&b=bar` nav gan mod_rewrite, waplet!

Jap, es te bišķi pārskatījos to pirmo linku :)

Posted

Taisu komentāru sistēmu, bet nevaru īsti izdomāt kā uztaisīt iespēju šķirstīt pa komentāru lapām attiecīgaja topikā.

http://www.imagebam.com/image/c4999a202027568

Šeit var redzēt pirmos 10 ierakstus. Mysql līnījā LIMIT 10. Vai kāds nevar pateikt kādu skriptu vai piemēru kā izskatās vairāku komentāru izdalīšana pa lapām? Ceru ka sapratāt. $_GET izmantoju lai skripts zinātu kurus ierakstus jārāda.

Posted

Taisu komentāru sistēmu, bet nevaru īsti izdomāt kā uztaisīt iespēju šķirstīt pa komentāru lapām attiecīgaja topikā.

 

 

.... Vai kāds nevar pateikt kādu skriptu vai piemēru kā izskatās vairāku komentāru izdalīšana pa lapām? Ceru ka sapratāt. $_GET izmantoju lai skripts zinātu kurus ierakstus jārāda.

 

iemācies meklēt: ir speciāla sadaļa kur aprunāti daudzi jautājumi

Posted (edited)

Paldies par šo lapu.

Izveidoju to ka rādas lapas, bet problēma ir saskaņot ar komentāru izvadītāju skriptu.

Mēģinu izmantot šo principu http://php.lv/f/topi...ndpost__p__8447 ,bet LIMIT vērtībās nevar likt variabļus. Tā būtu saskaņojis, kad address barā parādās noteiktā vērtība, kad piespiež citu lappusi, tad parādītos noteiktie komentāri. Ir kāds savādāks veids kā noteiktos komentārus izvadīt ar $_GET palīdzību.

Lappušu izveidošanai ņēmu palīgā šo skriptu http://php.lv/f/topi...dpost__p__14190

Edited by Amerika
Posted

Nosaki cik vienā lapā ierakstus attēlosi: X = 10

 

Nosaki, cik ierakstu vispār ir datubāzē Y = (SELECT COUNT(*) ... )

 

Nolasi no $_GET lapaspuses numuru Z = $_GET['lpp']

 

Izrēķini, cik lapaspuses kopumā ir pieejamas: W = noapaļot_uz_augšu( Y / X )

 

Izrēķini kvērija LIMIT offsetu OFFSETS = Z * X - X

 

Atlasi vienas konkrētas lapas ierakstus: SELECT * FROM BLA LIMIT OFFSETS, X

 

Izdrukā lapaspuses: for( i = 0; i < W; i++) echo <a href="?lpp=i">i</a>

 

Izdrukā visus ierakstus: while($row = mysql_fetch_assoc...

 

 

Easy peasy, sākumskolas matemātika. Tik smadzenes drusciņ jāpakustina.

 

P.S. Tas kods, ko tu ņēmi ir ļoti sūdīgs, jo tur ir gan izmantots @ operators, gan SQL injekcijas pieļautas, fuj.

Posted (edited)

$X = 10;
$Y = mysql_query("SELECT COUNT(*) FROM news_comments WHERE news_id = '$_GET[n]'");
$row3 = mysql_fetch_array($Y);
$Z = $_GET['lpp'];
$W = round($row3['COUNT(*)']/$X);
$OFFSET = $Z*$X-$X;
$data4 = mysql_query("SELECT * FROM news_comments WHERE news_id = '$_GET[n]' LIMIT $OFFSET,$X") or die(mysql_error());

Augšējais kods strādā, kā arī ziņu izdalīšana. Problēma ir kad crasho scripts dēļ lapušu izdales.

Kas tur ir nepareizs? Īsti nesapratu kas bija domāts "i".

for( i = 0; i < $W; i++) {
echo '<a href="?lpp=i">i</a>';
}

Edited by Amerika
Posted

Mans kods nebija domāts copy-paste :)

  • Pieškir mainīgajiem normālus nosaukumus
  • i ir parastsmainīgais. Tikai kaut kas trūkst tam "i", lai tas būtu normāls mainīgais..bet kas?
  • Salabo SQL pieprasījumus, lai nebūtu iespējamas SQL injekcijas
  • Lietojot round() notiek apaļošana uz augšu, ja ir .5. Tagad padomā, kas notiks, ja tev būs 101 ieraksts? Cik lapām būtu jābūt, ja vienā lapā ir 10 ieraksti? 101 / 10 = 10.1, kas noapaļojot ir 10. Bet vai tas ir pareizi?

Posted

$limits = 10;
$data3 = mysql_query("SELECT COUNT(*) FROM news_comments WHERE news_id = '$_GET[n]'");
$row3 = mysql_fetch_array($data3);
$lpp = $_GET['lpp'];
$ceil = ceil($row3['COUNT(*)']/$limits);
$OFFSET = $lpp*$limits-$limits;
$data4 = mysql_query("SELECT * FROM news_comments WHERE news_id = '$_GET[n]' LIMIT $OFFSET,$limits") or die(mysql_error());


$page = 1;
for( $adrpage = 0; $adrpage < $ceil; $adrpage++) {
echo '<a href="', '?n=' , $_GET[n] , '&lpp=' , $adrpage ,'">' . $page . '</a>';
$page++;
}

Viss tagat strādā. bet kā lai izdara lai $adrpage nebūtu nekad 0, lai sākas ar 1. Un varētu paprasīt piemēru pareizai un nepareizai sql rindai, kas izraisītu sql injekciju? Neko nezinu par injekciju izmantošanu.

Guest
This topic is now closed to further replies.

×
×
  • Create New...