Toms Posted March 20, 2007 Report Share Posted March 20, 2007 (edited) Parasti laižu visu caur vienu galveno index.php failu.. isset($_GET['cat']) ? $cat = $_GET['cat'] : $cat = 'main'; //... // require $cat file $allowAccess = true; $files = array('main'); // šajā masīvā pieliek atļautos failus. if (in_array($cat,$files) && file_exists($cat.'.php')) { require($cat.'.php'); } else { require($files[0].'.php'); } Un iekļaujamajā failā pārbaudam if (!isset($allowAccess)) die('404'); // labāk pārsūtam uz 404 lapu ar header() EDIT: // register globals logiski, ka OFF Edited March 20, 2007 by Toms Link to comment Share on other sites More sharing options...
andrisp Posted March 20, 2007 Report Share Posted March 20, 2007 1) Abejādi var, bet man labāk patīk kaut kas līdzīgs pirmajam variantam. Palasi par MVC patternu. 2) Nav slikti, drīzāk labi, bet tas ir atkarībā no situācijas. Link to comment Share on other sites More sharing options...
eM^ Posted March 20, 2007 Author Report Share Posted March 20, 2007 Starpcitu, kā citās lapās ir adrese šādā formā: http://datuve.lv/topic/6/ . mainīgie itkā noslēpti un nav nekādi tur ?id=hwz&kkas=nekas& ?? Kā var panākt šādu rezūltātu, jo skatos, ka tas jau ir palicis stilīgi visās lapās šādi taisīt un varbūt ari tā īr drošāk? Link to comment Share on other sites More sharing options...
Toms Posted March 20, 2007 Report Share Posted March 20, 2007 Tas nevis stilīgi, bet lietotājiem un meklētājiem draudzīgāk. To panāk ar mod_rewrite (Apache) RewriteEngine On RewriteRule ^jaunumi http://www.adrese.lv/?cat=jaunumi [P,L] Tas jāraksta iekš .htaccess faila.. Serveriem konfigurācija atšķiras, mazliet atšķirīgi var būt jāraksta RewriteRule.. Link to comment Share on other sites More sharing options...
andrisp Posted March 20, 2007 Report Share Posted March 20, 2007 Tā fīčas saucas "url rewriting". Pameklē tepat forumā vai guuglē. Nu nez vai daudz drošāk (ja nu vienīgi par drošumu uzskata to, ka nav redzami mainīgo nosaukumi ), bet tam ir citi plusi: - smukāks un īsāks urls :) - meklēšanas serveriem šādi urļi labāk patīkot (http://en.wikipedia.org/wiki/Rewrite_engine#User_and_search_engine_friendly_URLs) - gan jau kautkas vēl Link to comment Share on other sites More sharing options...
eM^ Posted March 20, 2007 Author Report Share Posted March 20, 2007 Paldies. Noderēs Link to comment Share on other sites More sharing options...
eM^ Posted March 24, 2007 Author Report Share Posted March 24, 2007 Ienāca prātā vēlviens jautājums. Vai tas nav slikti(arī no drošības viedokļa), ka lapas *.php failam jau koda sākumā pieslēdzos MySQL datubāzei? Link to comment Share on other sites More sharing options...
andrisp Posted March 24, 2007 Report Share Posted March 24, 2007 Nē, tas tieši ir normāli, ka tu skripta sākumā vienreiz pieslēdzies datubāzei un viss. Un pat skripta biegās nav obligāti jātaisa mysql_close, jo php pats to izdara, kad skripts beidz izpildīties. Link to comment Share on other sites More sharing options...
eM^ Posted March 24, 2007 Author Report Share Posted March 24, 2007 ok tad pie šīs metodes pieturēšos. Link to comment Share on other sites More sharing options...
eM^ Posted March 24, 2007 Author Report Share Posted March 24, 2007 Nu atkal viens jautājums. Vai tas nekas traks nav, ja taisu lapai forumu(tādu parastu diskusiju stūrīti) kurā postotājiem nav jāreģistrējas? Un kādas, ar aizsardzību saistītas lietas man būtu jāpielieto, ļaujot ikvienam veidot topikus un rakstīt tiem komentārus. P.S. Gribu zināt jau laicīgi, lai esmu vismaz 70% pārliecināts, ka neviens ļaundaris nenogāzīs gar zemi gan manu forumu, gan visu lapu... Link to comment Share on other sites More sharing options...
v3rb0 Posted March 24, 2007 Report Share Posted March 24, 2007 skaties, lai postojot nevar ierakstit html tagus, kuri lapā pārādās kā "istie" html tagi. - htmlentities() tāpat paskaties, lai nesanāk sql injekcijas - http://www.unixwiz.net/techtips/sql-injection.html Link to comment Share on other sites More sharing options...
eM^ Posted March 25, 2007 Author Report Share Posted March 25, 2007 SQL injekciju ir iespējams izdarīt caur $_GET? Piemēram, ja man ir queryjs kura saturs ir: SELECT * FROM tabula WHERE id = '$_GET[id]'. Link to comment Share on other sites More sharing options...
v3rb0 Posted March 25, 2007 Report Share Posted March 25, 2007 ar jebkādiem datiem, ko useris var iedabūt iekšā, ne tikai $_POST un $_GET, bet šams var mēģināt arī cepumus pielabot. Link to comment Share on other sites More sharing options...
eM^ Posted March 25, 2007 Author Report Share Posted March 25, 2007 Nu ar cepumiem man nekāda saistība pagaidām nav paredzēta, bet $_GET iekš query jau ir izmantots. Slinkums meklet ka bija jaraksta, bet aizsardzība pirmajā vietā. :) Link to comment Share on other sites More sharing options...
andrisp Posted March 25, 2007 Report Share Posted March 25, 2007 Visus datus, ko liec iekš kverija, apstrādā ar mysql_real_escape_string. Tas pasargās no injekcijām. Vēl vari arī visus datus, kuros skaidri zini, ka nedrīkst būt ', " un %, iztīrīt no tiem pirms ievietošanas kverijā. Link to comment Share on other sites More sharing options...
Recommended Posts