weblinks php ገቢ. የንብርብር ኬክ እና com_weblinks Joomla። በክፍሎች ውስጥ ጥቅም ላይ የዋሉ ሌሎች ፋይሎች

የንብርብር ኬክ

ስለ com_weblinks አካል እና ስለ Joomla ገጽ የኤችቲኤምኤል ምልክት እንነጋገራለን ። በJoomla ድር ጣቢያ ላይ የአገናኞች ማውጫ እንዴት በቀላሉ እና በቀላሉ መፍጠር እንደሚቻል።

ይህ ሲኤምኤስ ከተመዘገበ ተጠቃሚ ጋር በቀጥታ ኮድ ሳይደረግ ለበይነተገናኝ ስራ የተፈጠረ ነው። ምንም እንኳን የ Joomla የዕድገት አዝማሚያ የኮም_ዌብሊንክስ አካልን ሙሉ በሙሉ በጣቢያው ላይ ወደ መተው እና በቀላሉ ተጨማሪ ክብደት (ከ 100 ኪቢ - 90 ፋይሎች) ወደ ቀድሞው “ከባድ” ስርዓት እንዲጨምር እያደረገ ነው። አሁን ግን ይህ አካል አሁንም በስርጭቱ ውስጥ አለ እና በአንዳንድ ፕሮግራመሮች ጥቅም ላይ ይውላል.

በማያ ገጹ ላይ የሚታየው የ Joomla ድረ-ገጽ ገጽ የንብርብር ኬክ ነው፣ በግንባታው ውስጥ ብዙ ብሎኮች (እና ብዙ አብነቶች) በተመሳሳይ ጊዜ ይሳተፋሉ። የጆኦምላ ፍልስፍና የሚጫወተው እዚህ ነው - ትልቅ-ብሎክ ሳይት ግንባታ። እያንዳንዱ ብሎክ የራሱ የሆነ የኤችቲኤምኤል ማርክ አብነት (አቀማመጥ) ሊኖረው ይገባል።

ዋና ብሎኮች

የዋናው ገጽ አብነት (site_template/index.php)፣ ከኤችቲኤምኤል ምልክት ማድረጊያው ጋር ለሞጁሎች እና አካላት አቀማመጥን የሚገልጽ እና እነዚህን ሞጁሎች እና አካላት ያሳያል።
- ገጽ አብነት
- ሞጁል አብነቶች
- አካል አብነቶች

እያንዳንዳቸው ትላልቅ ብሎኮች ለማርትዕ (ለውጦች) ይገኛሉ። ያም ማለት በተናጥል ማስተካከል ይችላሉ, ለምሳሌ, የማንኛውም ሞጁል ወይም አካል አብነት, እና በገጹ ላይ አዲስ ይመስላል. ለገጹ አብነት ተመሳሳይ ነው.

ለጀማሪ ፕሮግራመር በገጹ የይዘት ክፍል ውስጥ ያለው የመጀመሪያው መስመር የገጹ ርዕስ ሆኖ እንደሚታይ እና ወደዚህ ገጽ በሚያመለክተው ምናሌ ንጥል ላይ አርትዖት እንደሚደረግ ለመረዳት አስቸጋሪ ሊሆን ይችላል። ሁለተኛው መስመር ከcom_content ወይም com_weblinks አካል አብነት የተገኘ መሆኑን። እና በአብነት ውስጥ ያሉ ሕብረቁምፊዎች ብዙውን ጊዜ የሕብረቁምፊ ተለዋዋጮች ናቸው እና አጀማመር እና የትርጉም ሥራቸው እንደ ቋንቋ\ru-RU\ru-RU.mod_weblinks.ini እና የመሳሰሉት ባሉ የቋንቋ ፋይሎች ውስጥ ይከናወናል።

አንዳንድ ጊዜ ጀማሪ ግራ ይጋባል፡ የትኛው አብነት ይህንን ወይም ያንን መስመር አዘጋጀ፣ ይህም በስክሪኑ ገጹ ላይ ተመሳሳይ ትረካ ምክንያታዊ ቀጣይነት ያለው ይመስላል። አንድ መስመር በአንድ አብነት ውስጥ፣ ሌላኛው በሁለተኛው አብነት እና ሶስተኛው በሦስተኛው ውስጥ እንዳለ ተገለጠ። እና ከዚህ በታች ያለው የጠረጴዛ ሰንጠረዥ ከ mod_tabform ሞጁል አብነት ውፅዓት ነው።

አንዳንድ ጊዜ ሞጁል አብነቶች አቀማመጦች ይባላሉ. ግን ይህ የቃላቶች ጥያቄ ነው። ዋናው ነገር አንድ ነው - ለይዘቱ "ልብስ" ነው. ምልክት ማድረግ የበለጠ ትክክል ይሆናል። ስለዚህ፣ የአንድ ማያ ገጽ ምልክት ማድረጊያ በተለያዩ የ Joomla ማውጫ ፋይሎች ውስጥ ይገኛል።

ምናሌ

ብዙ አዲስ የ Joomla ፕሮግራም አድራጊዎች ብዙውን ጊዜ የምናሌ ንጥሎች የተለያዩ አይነት ሊኖራቸው እንደሚችል አይረዱም። በሌላ አነጋገር፣ የምናሌ ንጥሎች የ Joomla ነገሮችን ሊያመለክቱ ይችላሉ። እነዚህ የተለያዩ ነገሮች ሊሆኑ ይችላሉ, ለምሳሌ: ክፍሎች (ድምጽ መስጠት, ፍለጋ, አገናኝ ማውጫ, ወዘተ.).

የምናሌ ንጥል ዓይነት መምረጥ፡-

እውቂያዎች (com_contact)
የእውቂያ ምድቦች ዝርዝር (ምድቦች)
የአንድ የተወሰነ ምድብ አድራሻዎች ዝርዝር (ምድብ)
ተገናኝ
ተወዳጅ እውቂያዎች (ተለይተዋል)

ቁሶች (com_content)
የማህደር እቃዎች (ማህደር)
ቁሳቁስ (አንቀጽ)
የሁሉም ምድቦች ዝርዝር (ምድቦች)
የብሎግ ምድብ
የቁሳቁስ ምድብ (ምድብ) ዝርዝር
ተለይተው የቀረቡ ቁሳቁሶች
ቁሳቁስ ይፍጠሩ

ብልጥ ፍለጋ (com_search)
ፈልግ

ሰላም አለም! (ኮም_ሄሎአለም)
መልእክት (ሄሎአለም)

የዜና ምግቦች (com_newsfeeds)
የሁሉም የዜና ምግብ ምድቦች ዝርዝር (ምድቦች)
በምድብ (ምድብ) ውስጥ ያሉ የዜና ምግቦች ዝርዝር
የዜና መጋቢ

ፈልግ (com_search)
የፍለጋ ቅጽ እና የፍለጋ ውጤቶች ዝርዝር (ፍለጋ)

የተጠቃሚ አስተዳዳሪ (com_users)
የፈቃድ ቅጽ (መግባት)
የተጠቃሚ መገለጫ (መገለጫ)
የተጠቃሚ መገለጫ ቀይር
የምዝገባ ቅጽ
የተጠቃሚ ስም መልሶ ማግኛ (አስታውስ)
የይለፍ ቃሉን መለወጥ (ዳግም ማስጀመር)

መጠቅለያ (com_wrapper)
መጠቅለያ

እንደሚመለከቱት, እዚህ ሁሉም የሜኑ ዓይነቶች አካላት ናቸው. በስሙ ፣ የምናሌ ንጥል ዓይነት በእውነቱ የክፍሉን አይነት አብነት ስም ያሳያል። እና አካል አብነቶች በእይታ ማውጫዎች ውስጥ ይገኛሉ፡-

joomla \components \ com_weblinks \ እይታዎች \ ምድቦች
joomla \components \ com_weblinks \ እይታዎች \ ምድብ
joomla \components \ com_weblinks \ እይታዎች \ weblinks
joomla\components\com_ተጠቃሚዎች\ዕይታዎች\መግባት።

እንደሚመለከቱት ፣ በምናሌው ውስጥ ያሉ የአገናኝ ዓይነቶች ስሞች እና በቪውስ ማውጫዎች ውስጥ ያሉ የአብነት ስሞች ተመሳሳይ ናቸው።

ገንቢው ለክፍሎች አዲስ መደበኛ ያልሆኑ አብነቶችን (አቀማመጦችን) የመፍጠር ችሎታ አለው። እነዚህ አዳዲስ አቀማመጦች በምናሌው ዓይነት መምረጫ መስኮት ውስጥ እንደ አዲስ የሜኑ ዓይነቶች ይንጸባረቃሉ። ይህ የተለየ ርዕስ ነው።

የጆምላ ስርጭት ማሳያ ይዘት

የ com_weblinks ክፍልን በነባሪው የማሳያ ይዘት (Beez2 - Default) Joomla አብነት ለማሳየት የ"ስለ Joomla" ሜኑ ንጥሎች ተዋረድ እንዴት እንደተገነባ እንይ።

የcom_weblinks አካልን ለማርትዕ ወደ የአስተዳዳሪ ፓኔል እንሂድ፡ ክፍሎች->ማገናኛዎች። ከስርጭቱ ጋር በመጣው ማሳያ ይዘት ውስጥ ለcom_weblinks ክፍል አምስት ምድቦች እንደተፈጠሩ አይተናል። ይህ ማለት ግንኙነቶቹ በአምስት ምድቦች ይከፋፈላሉ. ሁሉም የተፈጠሩ ምድቦች በ#_ምድቦች ዳታቤዝ ሰንጠረዥ ውስጥ ይቀመጣሉ። የሌሎች ክፍሎች ምድቦች በተመሳሳይ ሠንጠረዥ ውስጥ ይቀመጣሉ.

የናሙና ዳታ-ዌብሊንኮች
| - ፓርክ ማገናኛዎች
|- ኢዮምላ! የተወሰኑ አገናኞች
|-|-ሌሎች መርጃዎች
ያልተመደበ

ስለ Joomla ምናሌ (በምናሌው አርታኢ ውስጥ) በዚህ መሠረት የምናሌ ንጥሎች ተዋረድ ተፈጥሯል፡-

የምናሌ ንጥሎች ተዋረድ፡

Joomla በመጠቀም! (ዓይነት: ቁሳቁስ)
| - ቅጥያዎችን መጠቀም (ዓይነት: የሁሉም ምድቦች ዝርዝር) :: በቁሳቁስ ውስጥ ያሉ ምድቦች ዝርዝር
|-|-ክፍሎች (አይነት: ምድብ ብሎግ) :: በቁሳቁስ ውስጥ ምድብ
|-|-|-የዌብሊንክስ አካል (አይነት፡ ቁሳቁስ)
|-|-|-|-Weblink አስረክብ (አይነት፡ አገናኝ ፍጠር) :: በሊንኮች አካል
|-|-|-|- ዌብሊንኮች ነጠላ ምድብ (ዓይነት: በመደብ ውስጥ ያሉ የአገናኞች ዝርዝር) :: በሊንኮች አካል ውስጥ
|-|-|-|-የዌብሊንክስ ምድቦች (አይነት፡ የአገናኝ ምድቦች ዝርዝር) :: በሊንኮች አካል ውስጥ

አንዳንድ የሜኑ ንጥሎች የሚከተሉት ዓይነቶች እንዳላቸው እናያለን፡ የምድቦች ዝርዝር፣ በአንድ ምድብ ውስጥ ያሉ አገናኞች ዝርዝር እና አገናኝ መፍጠር።
"የአገናኝ ምድቦች ዝርዝር" ተዋረድ የሚታይበትን ከፍተኛ ምድብ ይገልጻል።
"በአንድ ምድብ ውስጥ ያሉ የአገናኞች ዝርዝር" አገናኞቹ የሚታዩበትን ምድብ ይገልጻል።
በ "አገናኝ ፍጠር" ንጥል ውስጥ, የተመዘገበው ተጠቃሚ መሙላት ያለበት ቅጽ ይታያል.
በነገራችን ላይ የዚህ ቅጽ አገናኝ በአርታዒው ውስጥ ምን እንደሚመስል እነሆ (መልክ በአድራሻ አሞሌው ላይ ይለወጣል)

index.php?option=com_weblinks&view=form&layout=edit

አንዳንድ የምናሌ ንጥሎች ሊታዩ የሚችሉት ለተመዘገቡ ተጠቃሚዎች ብቻ ነው! ለምሳሌ፣ “አገናኝ ፍጠር” አይነት ያለው የምናሌ ንጥል ነገር ለተመዘገቡ ተጠቃሚዎች ብቻ ነው የሚታየው። ይህ ባህሪ በተለይ የተመዘገቡ ተጠቃሚዎች በገጹ ላይ የሚለጠፉ አገናኞችን መፍጠር እንዲችሉ ነው የተፈጠረው።

ስለዚህ፣ com_weblinks ክፍል አስደሳች አገናኞች ያለው ገጽ በይነተገናኝ ለመሙላት ጥሩ መንገድ ይሰጣል። በተጨማሪም ፣ በእንደዚህ ዓይነት ገጽ ላይ የሚቀመጡ ሁሉም ማገናኛዎች አቅጣጫ ማዘዋወር አላቸው ፣ ማለትም ፣ እንደ ውጫዊ አይመረመሩም ። በመድረኮች ላይ እንደዚህ ያሉ አገናኞችን አይተው ሊሆን ይችላል. አይጥዎን በእንደዚህ አይነት ማገናኛ ላይ ሲያንዣብቡ የጣቢያዎን አድራሻ ያያሉ እና እሱን ጠቅ ካደረጉ በኋላ ብቻ ወደ ገለጹት አድራሻ ይዛወራሉ.

ለተጠቃሚው ወደ ውጫዊ ጣቢያዎች አገናኞችን የመጨመር ችሎታ የ com_weblinks አካል ዋና ጠቀሜታ እና ትርጉም እንዲሁም ተጠቃሚው አዲስ ይዘትን - ጽሑፎችን ፣ ምስሎችን ፣ ቪዲዮ ፋይሎችን ፣ ወዘተ.

የተመዘገበ ተጠቃሚ ያለቀጥታ ኮድ ሳይደረግ በይዘት ጣቢያው እንዲሞላ መፍቀድ የCMS Joomla መሰረታዊ ፍልስፍና ነው።

ያልተመደበ
ናሙና ውሂብ-ጽሑፎች
|- ኢዮምላ!
|-|- ቅጥያዎች
|-|-|- ክፍሎች
|-|-|- ሞጁሎች
|-|-|-|- የይዘት ሞጁሎች
|-|-|-|- የተጠቃሚ ሞጁሎች
|-|-|-|- የማሳያ ሞጁሎች
|-|-|-|- የመገልገያ ሞጁሎች
|-|-|-|- የአሰሳ ሞጁሎች
|-|-|- አብነቶች
|-|-|-|- አቶሚክ
|-|-|-|- ቢዝ 20
|-|-|-|- ቢዝ 5
|-|-|- ቋንቋዎች
|-|-|- ተሰኪዎች
| - ፓርክ ጣቢያ
|-|- ፓርክ ብሎግ
|-|- የፎቶ ጋለሪ
|-|-|- እንስሳት
|-|-|- ትዕይንት
| - የፍራፍሬ መሸጫ ቦታ
|-|-አዳጊዎች
|-|- የምግብ አዘገጃጀት

ለይዘት ብዙ ምድቦች ያሉ አይመስልም!
እንዲሁም በመረጃ ቋቱ ውስጥ ላለው የምድብ ሠንጠረዥ ጥያቄን በመጠቀም የምድቦች ተዋረድን በእቃዎች ውስጥ ማየት ይችላሉ፡

* ከ `#_ምድቦች` የት `ቅጥያ` = "com_content" ይምረጡ

መስመሩን ለመተካት በፋይሉ /includes/joomla.php ንጹህ ጽሑፍ ተግባር ውስጥ አስተያየት አለ

$text = strip_tags ($ ጽሑፍ); " ) ;

$text = strip_tags ($ ጽሑፍ፣ "

ይህ ጠለፋ እንደ መደበኛ ምስሎች ለተጨመሩ ምስሎች ብቻ የታሰበ ነው። በ mambot (mosimage) ለተጨመሩ ምስሎች ይህ ጠለፋ አይሰራም።

በ com_weblinks ክፍል ውስጥ ቀጥተኛ ማገናኛ እንዴት እንደሚታይ

በ weblinks.html.php ውስጥ መስመሩን መተካት ያስፈልግዎታል፡-

በመጀመሪያ ፣ የችግሩ አጠቃላይ ነጥብ Joomla ሁሉንም ምስሎች እና የ CSS ፋይሎችን ያሳያል (በአብነት ውስጥ ያሉ ዱካዎቻቸው) ከ$mosConfig_live_site ተለዋዋጭ አንፃር - በሚጫኑበት ጊዜ የገባው የጣቢያው አድራሻ። እና አንድ ሰው በተለየ አድራሻ ሊደርስበት ከሞከረ በአሠራሩ ሎጂክ ውስጥ ምንም ነገር አይቀየርም - የመሠረት አድራሻው ከማዋቀሪያው ፋይል የተወሰደ ነው። ለምሳሌ ፣ አወቃቀሩ Joomla በ localhost ላይ እንደሚገኝ ከገለጸ ፣ ከዚያ ከአካባቢያዊ አውታረመረብ መድረስ ፣ በትክክል የተዋቀረ Apache እንኳን አድራሻ 192.168.0.1 ማዳመጥ ፣ ምንም ነገር አይለውጥም - የምስሎቹ src አሁንም ይጀምራል። ከ "localhost" ጋር, ይህም ለሌሎች ማሽኖች ቀድሞውኑ የራሱ localhost ይኖረዋል. አንድም ሆነ ሌላ ምናባዊ ጣቢያ (ለሥዕሎች ትክክለኛ የመሠረታዊ መንገዶችን እና የአድራሻዎችን መሠረታዊ መንገዶችን ይስጡ) ይህንን በራስ-ሰር ሊያደርግ የሚችል አውቶማቲክ ጣቢያ አለ። ለዚህ፣ በconfig.php፣ በ$mosConfig_live_site ትርጉም፣የእርስዎን አይነት ኮድ መጻፍ ያስፈልግዎታል።

ከሆነ ($_SERVER ["HTTP_HOST"] =="host1.ru") $mosConfig_live_site = "host1.ru";

ሌላ $ mosConfig_live_site = "host2.ru";

መሸጎጫ ከተጠቀሙ ለሁለት አስተናጋጆች ሁለት የተለያዩ የመሸጎጫ ማውጫዎች ሊኖሩዎት ይገባል ምክንያቱም ከተለያዩ አስተናጋጆች ጋር የሚገናኙ አገናኞች በመሸጎጫው ውስጥ ሊቆራረጡ ስለሚችሉ ከተሳሳተ አውታረ መረብ የመጣ ተጠቃሚ በጭራሽ የትም አይደርስም. . የ$mosConfig_cachepath ተለዋዋጭ ለመሸጎጫው ተጠያቂ ነው።

በአንድ ገጽ ላይ ሁለት አካላት በአንድ ጊዜ እንዲታዩ እንዴት እንደሚደረግ

ወዲያውኑ እነግራችኋለሁ - ሁሉም ነገር በጣም ቀላል አይደለም. ለነገሩ ሞጁል አይደለም። ስለዚህ, በመጀመሪያ, አማራጭ መፈለግ ተገቢ ነው, ማለትም. በእርግጥ አንድ ታዋቂ አካል ተግባሩን ሊደግሙ ከሚችሉ ሞጁሎች ጋር አብሮ ይመጣል። እንደዚህ አይነት ነገር ከሌለ ይህ አማራጭ ነው. እንደ ሞጁል ሊሠራ ይችላል, ወይም, በንድፈ ሀሳብ, በአብነት ውስጥ ሊገባ ይችላል. ሃሳቡ ይህ ነው - ክፍሉን በ index2.php (ምን እና ለምን - ሙሉውን እውነታ ያንብቡ). እነዚያ። ለሁለተኛው አካል በሚፈለገው ቦታ ላይ iframe በ src="index2.php?option=com_component&no_html=1" መስራት ይችላሉ። እና እዚያ ይታያል. ሌላው ነገር ተግባሩን ሙሉ በሙሉ ማረጋገጥ የሚቻልበት ዕድል የማይመስል ነገር ነው. ግን ይህ ቢሆንም, ይህ መውጫ መንገድ ነው.

ነገር ግን ክፍሉ በዚህ መንገድ ከተተገበረ ታዲያ ስለ እርስዎ ማጭበርበሮች እንደማያውቅ እና በ$ አማራጭ እና በ$ ተግባር መሠረት እንደሚሰራ መረዳት ያስፈልግዎታል።

በአንድ ጽሑፍ ውስጥ የርዕሱን ርዝመት እንዴት እንደሚጨምር

የሚከተሉትን ሁለት ትዕዛዞች በ phpMyAdmin ውስጥ ማስኬድ ያስፈልግዎታል (የ SQL መጠይቆችን ለማስፈጸም ልዩ ገጽ አለ) ፣ ልክ ###_ በእውነተኛ የሠንጠረዥ ቅድመ ቅጥያዎ ይተኩ። የሚፈቀደው ከፍተኛ ቁጥር 255. በምሳሌው ውስጥ 200 ጥቅም ላይ ይውላል.

ሠንጠረዥ መቀየር `###_ይዘት` ለውጥ `ርዕስ_ተለዋጭ ስም` `ማዕረግ_ተለዋጭ ስም` VARCHAR(200) ባዶ አይደለም; ሠንጠረዥ `###_ይዘት` ቀይር `ርዕስ` `ርዕስ` VARCHAR(200) ባዶ አይደለም;

አርእስተ ዜናዎቻቸውን ብቻ ሳይሆን ሙሉ የዜና ፅሁፎችን በእርስዎ RSS ምግብ ውስጥ እንዴት ማካተት እንደሚችሉ

ይህንን ለማድረግ በፋይል /components/com_rss/rss.php ውስጥ, መተካት ያስፈልግዎታል

$item_description = $ ረድፍ -> መግቢያ;

$item_description = $ ረድፍ -> ሙሉ ​​ጽሑፍ; ተመሳሳዩን የውሂብ ጎታ በመጠቀም ወይም ተመሳሳይ ፋይሎችን በመጠቀም ሁለት የ Joomla ጣቢያዎችን እንዴት መሥራት እችላለሁ?

አንድ ዳታቤዝ ስለመጠቀም፣ ለሁለት ሞተሮች በconfig.php ውስጥ አንድ የውሂብ ጎታ መመዝገብ አለብዎት፣ ነገር ግን ምን እየሰሩ እንደሆነ መረዳት ያስፈልግዎታል። ምክንያቱም በዚህ ጉዳይ ላይ ለተጠቃሚዎች ክፍለ ጊዜዎችን ማቆየት በጣም ችግር ያለበት ይሆናል, ምክንያቱም ጎራዎቹ የተለያዩ ናቸው. እነዚያ። በ#__ክፍለ-ጊዜዎች ሰንጠረዥ ውስጥ ያሉ የመግቢያ ግቤቶች ይደራረባሉ (ይቻላሉ)።

አንድ ትልቅ ስርጭት ሳይገለብጡ ተመሳሳይ ፋይሎችን ለመጠቀም ከፈለጉ በመርህ ደረጃ በሊኑክስ ውስጥ ያለውን የ "ln -s" ትዕዛዝ በነባር ፋይሎች ላይ ተምሳሌታዊ አገናኞችን ለመፍጠር እና ለአዲሱ ጣቢያ እንዳይገለበጡ ማድረግ ይችላሉ.
  • በአጠቃላይ Joomla ንድፍ (http://site.ru/super_page) ውስጥ በአንድ የተወሰነ አድራሻ የሚገኝ ምናባዊ ገጽ እንዴት መፍጠር እንደሚቻል
  • የመጀመሪያው መንገድ ለስታቲስቲክ ገፅ የሚፈለገውን ምናባዊ ዱካ የሚገልጹበት አንዳንድ አይነት የ SEF አካልን መጠቀም ነው። እዚህ አንድ ተቀናሽ አለ - ይህ አካል ሁሉንም ሌሎች አገናኞች እንደገና መስራት ይጀምራል (እና በአጠቃላይ እነዚህ ክፍሎች በጣም ሃይለኛ እና ለመስራት ብዙ ሀብቶችን ይፈልጋሉ)።
    • mod_rewrite እና .htaccessን በመጠቀም ለእንደዚህ አይነት ገጽ ተለዋጭ ስም ይፍጠሩ። ይህንን ለማድረግ የሚከተሉትን ያስፈልግዎታል:
    • በሚፈልጉት ጽሑፍ የማይለዋወጥ ገጽ ይፍጠሩ ፣ መታወቂያውን እና አድራሻውን ይፈልጉ (እንደዚህ አይነት ገጽ መፍጠር አስፈላጊ አይደለም ፣ ቀድሞውኑ ሊኖር ይችላል እና በአጠቃላይ እሱ ማንኛውም አካል ነው ፣ እሱ የግድ com_content አይደለም)
    • ተለዋጭ ስም ይዘው ይምጡ፣ "እጅግ_ላቀው" ይሁን
.htaccess ይክፈቱ እና ከመስመሩ በፊት "RewriteCond %(REQUEST_FILENAME) !-f" ይፃፉ፡-
    • እና አሁን፣ Joomla በ site.ru ላይ የሚገኝ ከሆነ፣ አገናኙን ሲከፍቱ http://site.ru/super_puper ከመረጃዎ ጋር አስፈላጊው የማይንቀሳቀስ ገጽ ይከፈታል። አገናኙ ራሱ "index.php?option=com_content&task=view&id=12" የፈለጋችሁትን ሁሉ ሊሆን ይችላል ዋናው ነገር ግንኙነቱ ፍፁም አይደለም (ማለትም በ http:/ /...) ግን አንጻራዊ (በመረጃ ጠቋሚ መጀመር አለበት)። php?...)
ለአንድ የተወሰነ ጽሑፍ መሸጎጫ እንዴት እንደሚያሰናክሉ

የ Joomla መሸጎጫ ስርዓት ምንም ይሁን ምን የዘፈቀደ ቁጥሮችን ወይም የዘፈቀደ ጽሑፍን በማንኛውም ጊዜ ማመንጨት ያለባቸውን ማንኛውንም ስክሪፕቶች ለማስገባት rd_addphp mambotን ከተጠቀሙ ይህ አስፈላጊ ሊሆን ይችላል። የአንድ የተወሰነ ንጥል ነገር መሸጎጫ ለማሰናከል መታወቂያውን ማወቅ ያስፈልግዎታል (በአስተዳዳሪው ፓኔል ውስጥ ፣ ሲያስተካክሉ ፣ የአድራሻ አሞሌውን ይመልከቱ ፣ እንደ "...&id=123..." ያለ ነገር ይላል)። ስለዚህ 123 የኛ መጣጥፍ መታወቂያ ይሆናል። በመስመር 1600 በግምት በፋይሉ /components/com_content/content.php ውስጥ መተካት አስፈላጊ ነው

$cache -> ጥሪ ( "HTML_content:: አሳይ"፣ $ ረድፍ፣ $params፣ $መዳረሻ፣ $ገጽ);

ከሆነ ($ ረድፍ -> id ! = " 123 " ) $ መሸጎጫ -> ጥሪ ( "HTML_content :: አሳይ" , $ ረድፍ , $params , $መዳረሻ , $ገጽ ) ;

ሌላ HTML_content :: አሳይ ($ረድፍ, $params, $መዳረሻ, $ገጽ);

የት 123 የሚፈልጉት መጣጥፍ መታወቂያ ነው።

ብዙ አካላትን ጫንኩ ፣ ግን በአስተዳዳሪው ምናሌ ውስጥ ያሉት የአካል ክፍሎች ዝርዝር የተቀነሰ ቁጥራቸውን ያሳያል ፣ እና ከዚያ “ተጨማሪ አካላት ..." ይላል ። ሁሉንም አካላት እንዴት እንደሚያሳዩ።

በፋይሉ ውስጥ መስመር ያስፈልገዎታል /administrator/modules/mod_fullmenu.php

$ topLevelLimit = 19;

በ ይተኩ

  • $ topLevelLimit = 199; የአንድ አካል ቅጂ እንዴት እንደሚጫን
  • ስራው እጅግ በጣም ከባድ ነው ሊባል ይገባል. ክፍሉ እንዴት እንደሚሰራ ካልተረዳዎት, መሞከር እንኳን የለብዎትም. አሁንም ዋና ዋና ነጥቦቹን ልብ ማለት ለሚፈልጉ፡-
  • በኤክስኤምኤል ፋይል ውስጥ በስም መለያው ውስጥ ያለውን አካል ስም እንደገና ይሰይሙ

በመቀጠል፣ ያገለገሉትን ሠንጠረዦች እንደገና መሰየም አለቦት (በመጀመሪያ በኤክስኤምኤል ፋይል ውስጥ፣ ሁለተኛም በሁሉም ክፍሎች ፋይሎች፣ የ$ Database ዳታቤዝ ነገር እና የsetQuery ዘዴ ጥቅም ላይ በሚውሉበት ቦታ)

ሁሉንም ዱካዎች በክፍል ውስጥ እንደገና ይሰይሙ። ዱካዎች ለራሱ በማጣቀሻዎች ወይም በተካተቱት ፋይሎች ስሞች ውስጥ ጥቅም ላይ ሊውሉ ይችላሉ. ብዙውን ጊዜ ይህ የሚመጣው የንዑስ ሕብረቁምፊ com_component ስም መፈለግ እና በአዲስ መተካት ነው።
  • አማራጭ 1 - የ mosLoadModules ተግባርን ሰብረው። በአብነት ውስጥ ከኤን ሞጁሎች ውስጥ አንዱን ለማሳየት በሚያስፈልግበት ቦታ ላይ እንጽፋለን (ለሦስተኛው ክርክር ትኩረት ይስጡ)
mosLoadModules ("አቀማመጥ", display_setup, እውነት);

እና ከላይ ያለውን ተግባር በጥቂቱ እናስተካክላለን-

ተግባር mosLoadModules($ አቀማመጥ = "ግራ"፣ $style =0፣ $show_random = false) (... $allModules =& initModules()፤ ከሆነ (እሴት ($GLOBALS) ["_MOS_MODULES"] [$position] )) $ ሞጁሎች = $ GLOBALS ["_MOS_MODULES"] [$ አቀማመጥ]) ሌላ ($ ሞጁሎች = ድርድር (); ) // እዚህ ከሆነ ($ show_random & & sizeof ($ ሞጁሎች ) > 0 ) ( $tmp = $ ሞጁሎች [ራንድ) (0, መጠን ($ ሞጁሎች) -1) ]; $ ሞጁሎች = ድርድር ($tmp);< 1 ) { $style = 0 ; }

በእሱ ላይ ሶስተኛ ክርክር ጨምረናል (በአብነት ውስጥ ጥቅም ላይ የዋለ፣ እውነት የጻፍንበት) እና ኮዱን አሻሽለነዋል።

  • አማራጭ ሁለት የበለጠ ህመም የለውም, አብነቱን ብቻ እናስተካክላለን. ግን የበለጠ ጉልበት የሚጠይቅ - ብዙ አቀማመጦችን መፍጠር አለብን. በመጀመሪያ፣ በርካታ አዳዲስ ሞጁሎችን አቀማመጦችን እንፈጥራለን፣ ለምሳሌ new1 ... new10። አስቀምጥ በአብነት ውስጥ በትክክለኛው ቦታ ላይ ወደ mosLoadModules ተግባር ከመደወልዎ በፊት አስፈላጊውን ኮድ ያክሉ።
$rand_num = ራንድ (1,10);// ከ 1 እስከ 10 - እንደ ቦታው ስም mosLoadModules ("አዲስ" .$rand_num, display_settings); /አስተዳዳሪ/ አቃፊውን እንደገና በመሰየም ጣቢያዬን የበለጠ ደህንነቱ የተጠበቀ አደርገዋለሁ ብዬ አምናለሁ።

ይህ አማራጭ እንደ መደበኛ አልቀረበም። ግን በእውነቱ ፣ በ Joomla ፋይሎች ውስጥ ፍለጋን በማደራጀት ፣ እንደዚህ ያለ ቃል ማንኛውንም ክስተት በራስዎ መተካት ይቻላል - ምስጢር። አንዳንድ ጊዜ, በኋላ, ፋይሎችን መድረስ አለመቻል ላይ ስህተቶች ሊታዩ ይችላሉ, ነገር ግን ፋይሉን እና የመስመር ቁጥሩን ማወቅ, ሊስተካከሉ ይችላሉ. ስለዚህ, ችግሩ በመርህ ደረጃ, ሊፈታ የሚችል ነው.

በዚህ ወር፣ የሳንካ ቆፋሪዎች በታዋቂ መተግበሪያዎች ውስጥ በአዲስ ከፍተኛ መገለጫ ብዝበዛ ሊያበላሹን አይፈልጉም። እርግጥ ነው, በታዋቂ ኩባንያዎች ምርቶች ውስጥ ብዙ ምክሮች ታትመዋል, ነገር ግን በጣም ጥቂቶቹ ሊነበቡ የሚችሉ የፖሲ ኮዶችን ይይዛሉ. በግምገማችን ውስጥ፣ በቅርብ የተገለጹትን በጣም ጉልህ እና የተሟላ ድክመቶችን ለመሰብሰብ ሞከርኩ፣ ስለዚህ አርፈህ ተቀመጥ እና በማንበብ ተደሰት።

የኤችቲቲፒ ኃላፊ ሲጠይቅ የPHP ተጋላጭነት

በማርች 3፣ የተወሰነው አዳም ኢቫኑክ በPHP አስተርጓሚ ውስጥ አንድ አስደሳች ባህሪ አግኝቷል፣ ይህም የHEAD ጥያቄዎችን በትክክል አያስኬድም። ተመራማሪው ይህንን ተጋላጭነት “HTTP HEAD ዘዴ ዘዴ በ php ስክሪፕቶች” ብለውታል።

ብዙ ኮድ አውጪዎች የPHP ስክሪፕቶቻቸውን ይቀርጻሉ በእነሱ ውስጥ የተጻፉት ሁሉም መመሪያዎች በመሃል መሃል (በተለይም በአጫጭር ስክሪፕቶች) ላይ ሳይጣሱ በተሳካ ሁኔታ ይፈጸማሉ ብለው ተስፋ ያደርጋሉ። የGET፣ POST፣ PUT ስልቶችን በመጠቀም ስክሪፕቱ በዋና ተጠቃሚው ከተጠየቀ ይሄ ነው።

ግን ሌሎች የኤችቲቲፒ ዘዴዎች እንዳሉ ማወቅ አለቦት - ለምሳሌ፣ HEAD። ይህንን ዘዴ በ PHP ውስጥ በሚሰራበት ጊዜ የደህንነት ቀዳዳ ሊፈጠር የሚችለው በትክክል ነው.

ከአስተርጓሚ ምንጮች አንዱን እንመልከት፡./main/SAPI.c፣ መስመር 315፡

ከሆነ (SG(የጥያቄ_መረጃ))የጥያቄ_ዘዴ እና&
!strcmp(SG(የጥያቄ_መረጃ)።የጥያቄ_ዘዴ፣"HEAD"))
{
SG (የጥያቄ_መረጃ) .ራስጌዎች_ብቻ = 1;
...

ማንኛውም ውሂብ ሲመጣ የphp_ub_body_write ተግባር ይፈጸማል። በመቀጠል፣ main/output.c፣ መስመር 699 ይመልከቱ፡-

ከሆነ (SG(ጥያቄ_መረጃ)።ራስጌዎች_ብቻ) (
ከሆነ(SG(ራስጌዎች_የተላኩ))
{
መመለስ 0;
}
php_header (TSRMLS_C);
zend_bailout ();
}

እዚህ ለመጀመሪያ ጊዜ በስክሪኑ ላይ ሲታተም እና የHEAD ዘዴን ሲጠቀሙ የ zend_bailout ተግባር ስክሪፕቱን ይሰብራል።

ብዝበዛ

አሁን የHEAD ዘዴን በመጠቀም ይህንን ስክሪፕት እንድረሰው፡-

እርስዎ እንደሚጠብቁት፣ የእንግዳ መጽሐፋችን “echo $data” በሚለው መስመር ላይ መፈጸሙን ያቆማል፣ ስለዚህ book.txt ፋይል በቀላሉ ወደ ዜሮ ይቀናበራል።
ይህ ምሳሌ በተፈጥሮ ውስጥ አጥፊ ነው። በሁለተኛው ምሳሌ፣ በቀዳሚው የአስተዳዳሪ ፓነል ውስጥ ያለውን ፈቃድ ማለፍ እንችላለን፡-

በዚህ ስክሪፕት ውስጥ, የተለመዱ ዘዴዎችን በመጠቀም ሲገቡ, በክፍለ-ጊዜው ውስጥ አስተዳደራዊ ተለዋዋጭ ተዘጋጅቷል. ከዚያ ተጠቃሚው የተሳሳተ የይለፍ ቃል ካስገባ ይህ ተለዋዋጭ ዳግም ይጀመራል እና ተጠቃሚው አስተዳዳሪ አይሆንም።

የአስተዳዳሪ ፓነልን በ HEAD በኩል ከደረስን ፣ አፈፃፀሙ በ "echo" በኮዱ ቁራጭ ላይ ይቋረጣል ፣ ስለሆነም አስተዳደራዊ ተለዋዋጭ እንደገና አይጀመርም እና በተዘጋው የመተግበሪያው ክፍል ውስጥ በደህና እንዞራለን። እዚህ ላይ ማስታወስ ያለብን ነገር አብዛኞቹ የድር ሰርቨሮች የውጤት ማቋረጫ ዋጋ ወደ 4096 ባይት ተቀናብሯል፣ስለዚህ በስራ ምሳሌ ውስጥ "ረጅም ሕብረቁምፊ 4090 ያህል ቁምፊዎችን ይይዛል" የሚለውን ሕብረቁምፊ ሊያስፈልገን ይችላል።

ብዝበዛ
  • ፒኤችፒ

    እዚህ የ$check ድርድር የኛን የPOST መረጃ ይይዛል፣ እና $የተቆለፈው ተለዋዋጭ str_rot13() ተግባርን ተጠቅሞ የተደበቀ ሕብረቁምፊ ነው፣ ሙሉ በሙሉ በእኛ ቁጥጥር ነው።

    በዚህ ጊዜ በ [[ ውስጥ ያሉትን ተጓዳኝ መጣጥፎች ላላነበቡ ትንሽ ገለጻ ማድረግ እና በ PHP አስማት ዘዴዎች ውስጥ ስለሚታየው ስህተት በአጭሩ ይናገሩ። ስለዚህ፣ በPHP ስሪት 5፣ የ OOP ፕሮግራሚንግ መሰረታዊ ፅንሰ-ሀሳብ ታየ-ገንቢ እና አጥፊ። ኮንስትራክሽን የሚተገበረው በ"__ኮንስትራክሽን" ዘዴ ሲሆን አጥፊ ደግሞ በ"__destruct" ዘዴ ነው። ሥራውን ሲያጠናቅቅ እና በ unserialize () ተግባር በኩል ሲጠራ እያንዳንዱ ነገር በኮዱ ውስጥ ከተጻፈ የራሱን __ አጥፊ ዘዴ ይፈጽማል።

    አሁን ወደ ማዕቀፋችን እንመለስ እና የመተግበሪያ ክፍል አጥፊውን ከፋይሉ ./libs/configure.php እንይ፡

    ተግባር __ ማጥፋት()
    {
    ከሆነ ($ይህ->__መሸጎጫ)
    {
    $ኮር = መተግበሪያ :: ኮር ("ኬክ");
    ያልተዘጋጁ($ይህ->__መንገዶች);
    መሸጎጫ:: ጻፍ("dir_map"፣array_fi lter($this->__መንገዶች)፣
    "ኬክ_ኮር");
    መሸጎጫ:: ፃፍ("fi le_map"፣array_fi lter($this->__ካርታ)፣
    "ኬክ_ኮር");
    መሸጎጫ:: ፃፍ("object_map"፣ $this->__ነገሮች፣
    "ኬክ_ኮር");
    }
    }

    ከላይ ካለው ኮድ ይህ ዘዴ ወደ መሸጎጫ ዕቃው የዘፈቀደ እሴቶችን በመፃፍ ሊጣስ እንደሚችል ማየት ይችላሉ። ለመስነጣጠቅ በጣም የሚያስደስት ቁልፍ 'ፋይል_ማፕ' ነው። በክፍሎች እና በተዛማጅ ፒኤችፒ ፋይሎች መካከል ያለውን ግንኙነት ያስተዳድራል፣ እና በስክሪፕት አፈጻጸም ጊዜ ተጨማሪ ክፍሎችን ለመጫን ያገለግላል።

    ክፍሎችን ለመጫን ትክክለኛው ኮድ ትንሽ ውስብስብ ነው፣ ነገር ግን ሁሉም በመተግበሪያ ክፍል ውስጥ ካለው __load ዘዴ ወደሚከተለው ኮድ ይጎርፋሉ።

    ቢንጎ! የ$ፋይል ተለዋዋጭን በመተካት የራሳችንን ፒኤችፒ ኮድ ማካተት እንችላለን! በተጨማሪም ፣ ይህ እውነተኛ የርቀት ፋይል ማካተት ስህተት ይሆናል - ስለዚህ ፣ አካባቢያዊ ፋይሎችን ወደ አገልጋዩ በመስቀል ላይ ምንም ተጨማሪ ዘዴዎች አያስፈልገንም። ነገር ግን፣ የተገኘው የተጋላጭነት ደራሲ ይህንን ጉድጓድ ለመጠቀም የኤልኤፍአይ አማራጭን ይሰጣል፣ ምክንያቱም CakePHP በአጥቂው በሚታወቅ ማውጫ ውስጥ በተከታታይ በተቀመጠው ፋይል ላይ የተመሰረተ የአካባቢ መሸጎጫ ስለሚጠቀም።

    ብዝበዛ

    መርዛማ ተከታታይ ሕብረቁምፊ ለመፍጠር እንደ ትንሽ PoC፣ ፌሊክስ የሚከተለውን ኮድ ያቀርባል፡-

    እርግጥ ነው፣ መጀመሪያ ከCakePHP አስፈላጊ የሆኑትን ክፍሎች ማካተት አለቦት። በ malloc.im/burnedcake.py ላይ ሊያገኙት የሚችሉት ሙሉ በሙሉ የሚሰራ የፓይዘን ብዝበዛም አለ።

    ይህ ብዝበዛ በCakePHP ላይ በተሰራ እያንዳንዱ አፕሊኬሽን ውስጥ የPOST ቅጾችን ከደህንነት ማስመሰያዎች ጋር መጠቀም እና የመሸጎጫ ፋይሎቹ መደበኛ ቦታ ባልተለወጠበት ውስጥ መስራት አለበት። በነባሪ, ብዝበዛው የውሂብ ጎታውን ውቅረት ያሳያል; አብሮ የተሰራውን ፒኤችፒ ጭነት በመቀየር ሌሎች ጠቃሚ ባህሪያት በቀላሉ ሊጨመሩ ይችላሉ.

    ዒላማዎች
    • CakePHP getState ("fi lter_order_dir");
      $fi lter_order = JFilterInput :: ንፁህ($fi lter_order፣ "cmd");
      $fi lter_order_dir =
      JFilterInput :: ንፁህ($fi lter_order_dir፣ "ቃል");
      // ሁሉንም ዝርዝር ማግኘት አለብን
      // በተሰጠው ምድብ ውስጥ የድር አገናኞች
      $ጥያቄ = "ምረጥ *"።
      "ከ#__ድር ማገናኛዎች"
      "የት ካቲድ =". (int) $ይህ-> _id
      "እና የታተመ = 1" .
      "እና በማህደር የተቀመጠ = 0"
      "ትእዛዝ በ" $fi lter_order "".
      $fi lter_order_dir."፣ ማዘዝ";
      የ$ ጥያቄ መመለስ;
      }

      እዚህ የ$filter_order እና $filter_order_dir ተለዋዋጮች ከSQL መግለጫዎች ጋር ጥብቅ ተገዢ ለመሆን እንዳልተረጋገጡ ማየት ይችላሉ፤ ቼኩ የሚደረገው ከJFilterInput ክፍል መደበኛውን የጸዳ ዘዴ በመጠቀም ብቻ ነው።