Jump to content
php.lv forumi

php engine


Gacha

Recommended Posts

Man shkiet, ka taisu nepareizi savai lapai pashu saakumu. Jo nezinu kaa to iisti dariit. Esmu meklejis internetaa tos enginus, bet tos kurus esmu atridis, tie ir mega lieli un sarezzgjiiti.

 

Man index lapaa ir inklodota labaa un kreisaa mala un vidus, bet vairaak arii es neko neizmantoju. Zinu, ka ir taada lieta kaa swich, ar kuru kaut ko var paarsleekt.

 

Varbuut kaadam ir kaads piemeers, kaa taisiit pashu to saakumu lapai. :blink:

Link to comment
Share on other sites

Doma iekļaut (include,require) augšiņu (header), vidu (saturu) un apakšiņu (footer) no atsevišķiem failiem/skriptiem nav slikta un peļama.

Par switch runā, kad atļauj pieprasīt lapu piemēram: http://tavalapa.com?sadala=jaunumi

Un iekš PHP to nolasa:

<?php
include('lapas/augsa.php');
if ( !isset($_REQUEST['sadala']) ) {
$_REQUEST['sadala'] = '';
}
switch ( $_REQUEST['sadala'] ) {
case 'about':
 include('lapas/about.php');
 break;
case 'jaunumi':
 include('lapas/jaunumi.php');
 break;
case 'sakums':
default:
 include('lapas/sakums.php');
 break;
}
include('lapas/apaksa.php');
?>

Link to comment
Share on other sites

huh... vienmēr esu brīnījies kādēļ tiek izmantots kaut kas tāds kā jb4 rādīja...

 

personīgi man ir about.php kuram augšā include('augsa.php'); un apakšā include('apaksa.php'); tālāk ir jaunumi.php kuram atkal augšā un apakšā tiek inklūdoti augsa.php un apaksa.php un tā tālāk ar visām lapām... un visi urli man izskatās normāli http://tavalapa.com/jaunumi.php nevis http://tavalapa.com?sadala=jaunumi

 

ir kaut kas ko es nezinu / nesaprotu ?

Link to comment
Share on other sites

1) Viendien tev nebūs jaunumi.php un sveika gauja, plūsti plaši, kur ir mani refereri?

2) ?sadala=jaunumi varēja tikpat labi būt apaches mod_rewrite nedarbiņš no manalapa.com/jaunumi/

3) Lai trīsreiz nerakstītu vienu un to pašu. index.php man tagad satur visu nepieciešamo apakšlapu ielādei un nevis visas apakšlapas satur 20% vienu un to pašu (kaut vai funkc.bibliotēku includes, const definīcijas, if/switch - regulārās pārbaudes u.tml.)

4) include('jaunumi.php') vietā varēja arī būt jaunumi.html un jaunumi.txt un visbeidzot mysql_query("SELECT ... where name='jaunumi'")

Link to comment
Share on other sites

Nu es noka chaju to engine, mazliet papetuju un cik saprotu tad tas straadaa parasti, bet man gribetos apm taa, kaa jb4 bija rakstijis par to svich.

 

Nu es to arii nesen izmantoju, man katraa lapaa saakumaa bija rakstiits <? include("config.php"); Nu konfig fails man ir shaads:

<? 
 $id=$_GET['id'];
 switch ($id) { 
   case "blond1":
     $pg_body = "blond_1.php";
     break;
   case "blond2":
     $pg_body = "blond_2.php";
     break;
   case "datori1":
     $pg_body = "datori_1.php";
     break;
   case "forums":
     $pg_body = "list.php";
     break;
   case "foto":
     $pg_body = "muusu_foto.php";
     break;
   case "sms>sirsn1":
     $pg_body = "sms_sirsn_1.php";
     break;
   case "sms>sirsn2":
     $pg_body = "sms_sirsn_2.php";
     break;
   case "sms>sirsn3":
     $pg_body = "sms_sirsn_3.php";
     break;
   case "christmas_mp3":
     $pg_body = "christmas.php";
     break;
   case "christmas>foto":
     $pg_body = "christmas_foto.php";
     break;
case "forums_post":
     $pg_body = "guestbook.php";
     break;
case "forums_chek":
     $pg_body = "add.php";
     break; 
   default: 
$pg_body = "start.php"; 
  }
?>

liidziigs tam kas jb4. Bet skatijos ka tas ir bikinj savadaak. Bet ja es lietoju sho config failu tad nav nekaada atshkjiriba vai linkaa rakstu list.php vai ?id=forums

 

Kaa buutu jaraksta linkos tas viss?

 

 

Un vai tas butu ertaak, ja man uzrodas jauna lapa tad man taa katru reizi ir jaieraksta config failaa?

Link to comment
Share on other sites

hmm... Vispaar, es neiesaku izmantot uzreiz switch (protams, ja taa ir eertaak, vinju vajag izmantot), tachu, ne tas ir galvenais! Pats galvenais vispirms ir tiiri galvaa izshtukot kaa notiksies saita jebkuras lapas ielaade! Es iesaku izmantot Class objektus atsevishkjos failus, kurus peec tam include, kaa arii tematiskos funkciju failu un protams, galveno mainiigo nemainiigo jeb var arii konstantes defineet config.php failaa (piemeeram). Un, ja tev saitaa tiek izmantota datubaaze, padomaa, kaa tu atveersi un aizveersi datubaazi! Iesaku datubaazi aizveert pirms lapa tiek izklaata ar echo paliidziibu! Ar datubaazi darbojies, lai dabuutu attieciigos mainiigos, ko likt iekshaa templates failos un savukaart tos visus salaadeet vienaa mainiigajaa, kuru pashaas beigaas ar echo paliidziibu izklaaj un luuk viss saits! :) Pie tam vajag izmantot arii Output Buffering - taadas ir tikai manas domas un tas ir tikai taa vispaariigi, jo es pashlaik nopietni njemos pie viena shaada saita - sanaak iisais skripts un profesionaala lapa, kuru peec tam ir viegli editeet!

Link to comment
Share on other sites

Es ar php veel esmu uz Juus, jo nesen tik uzzinaaju, ka tas existee! Vari man paskaidrot kas ir

Class objektus atsevishkjos failus
un
Output Buffering

 

Ja vari tad paraadi kaadu mazu piemerinju.

Link to comment
Share on other sites

Nu, Class buutu:

 

Class Mana_klase {

function funkcija_1() {

}

function funkcija_2() {

}

}

 

Tagad ir uztaisiits objekts Mana_klase, pie kura var veersties shaadi:

$objekts = new Mana_klase;

$rezultaats1 = $objekts->funkcija_1()

$rezultaats2 = $objekts->funkcija_2()

utt.

 

Output buffering: piemeeram, visu lapas saturu bufferee (vispirms vinjsh visu salaadee, tad aizsuuta gatavu uz browseri laikam... (varbuut kaads zin preciizaak, kas ir buffereeshana?):

 

ob_start();

 

viss lapas saturs;

 

ob_end_flush();

 

Nu, tas taa vispaariigi!

 

P.S. Datubaazes MySQL funkcijas noteikti iesaku likt atsevishkjaa klasee(objektaa), kursh atrodas atsevishkjaa failaa, piemeeram:

 

database.php:

Class MySQL {

var db_id;

function connect() {

$this->db_id = mysql_connect();

return $this->db_id;

}

 

Nu taa apmeeram! :)

Link to comment
Share on other sites

Nu sho palasot es apm kaut ko sapratu, bet pielietot nemaceetu. Varbut kaut kur ir kaads mazinjsh turtorialis no A-Z.

 

Ar to class man asoaciejas CSS class izmantoshana, bet php es nezinu kaa tos lietot.

 

Un ar to output buffering - Vai vienkarshi es varu lapas augshaa starp php tagiem ierakstiit ob_start(); un lapas apakshaa starp tiem tagiem ob_end_flush();

 

Un tad vinjsh pa priekshu ielades visu lapu un tad tik to paraadiis?

Link to comment
Share on other sites

hmm... Par to ob pats nezinu, cereeju, ka kaads zinoshaaks paskaidros :rolleyes: Bet php ar Class paliidziibu var uztaisiit objektu! Liidziigi kaa C++ .... Nu, tas ir taa - tev ir shis objekts un ja tev vinjsh ir pieejams, tad tu no vinja vari dabuut visas funkcijas un mainiigos aaraa, kas ir vinjaa iekshaa! Nu, eerti lietojams, nevis sarakstiit vienkaarshi rindaam atsevishkjas funkcijas, tachu objekts var viena veida funkcijas apvienot vienaa objektaa, kuras peec tam buus viegli pieejamas caur $objekts->funkcija();

Link to comment
Share on other sites

NU es nupat izdomaaju, ka vareetu shitaa pamegginaat.

 

Galvenaa lapaa ir includoti labaa malaa un kreisaa mala, bet pa vidu(lapas saturs)

vareetu buut shaadi

<? include("$lapa");?>

un tad vajag comfig.php bet to es nemaaku uztaisiit. Varbuut kaads zin kaa?

Link to comment
Share on other sites

ROBI Te atradu turtoriali par to buferingu te Es meginaju bet man neizdevaas.

 

Ja sapratu pareizi tad man vajadzees paarveidot visu lapas saturu no html uz php, lai tas stradaatu

Link to comment
Share on other sites

Gacha, nafig Tev klases, nafig Tev output buffering?

Kamēr pats neredzi tam jēgu, nav vērts to darīt tikai tāpēc, ka Robis tā teica. Robis, kā redzi, pats šīs lietas nemaz nemāk pielietot, tāpēc viņa padoms nav diezko vērts.

Labāk turpini močīt kā domā pareizi un kad radīsies problēmas, piemēram, PHP

spļaus ārā kļūdas "Can't modify headers, headers already sent on line" vai kaut kas tamlīdzīgs, tad arī domāsi par output buffering. Kad pats uzrakstīsi kodu, kurā pēc divām dienām netiec skaidrs kas kur jāraksta, lai lietu uzlabotu, tad arī domāsi par klasēm. Cik nojaušu par Tavam PHP zināšanām no mūsu nesenās komunikācijas php.lv/f/ ietvaros, Tev tās nav nekādas lielās un senās, tāpēc šiem Robīša ieteikumiem iesaku nesekot.

Ja kods kļūst nepārskatāms, sāc rakstīt funkcijas, kuras veic katra savu darbu un galvenajā skriptā izsauc šīs funkcijas pēc vajadzības. Ja būsi uzrakstījis smukas funkcijas, kur katra dara vienu, savu darbu, tad būs viegli atrast kļūdas, pievienot fīčas un tamlīdzīgi.

Link to comment
Share on other sites

×
×
  • Create New...