Pereiti prie turinio

Php id paslėpimas


Rekomenduojami pranešimai

Man įdomu kaip ant WP paslepia ID pvz kokio įrašo, žinau, kad ten naudojami "permalinks", bandžiau ieškotis, kaip veikia, bet nesupratau. Ar įmanoma pačiam taip pasidaryti ant paprasto php saito? Kad pvz vietoj /naujiena?id=2 padaryti /labas-pasauli

 

Pasidariau Mano nuoroda

Redagavo Arvis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai su htacces tai jooo, ir žinau, kad pvz /labas-rytas$ /naujiena?id=$1, bet reikia, kad konkrečiai būtų su visom naujienom taip

 

tiesiog su htaccess padaro tai rewrite urls ir padaro kad vietoj php id butu zodis nera sunku. pasiodomek friendly urls gal kazka suprasi.

 

Kažkaip nelabai randu

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dabar tarkim turiu

RewriteRule ^forum/([^/]+)-f([0-9]+).html$ forum/viewforum.php?forum_id=$2

o man reikia

RewriteRule ^forum/([^/]+).html$ forum/viewforum.php?forum_id=$2

 

Nu tai perduodi ne id, o slug pagal kurį identifikuojamas tavo įrašas. Nu tipo būtų duomenų bazėje title laukelis su "Labas pasauli" ir slug su "labas-pasauli". Ir pagal jį atseksi viską ką reikia

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū už užvedimą ant kelio, pasidariau :)

 

Gal kam pravers arba patobulins

Visų pirma mysql lenelėje jeigu turiu lentelę pavadinimas tai sukūriau dar papildoma pvz kokį seo_name.

Po to funkciją kuri padaro seo friendly pavadinimą pvz iš Kažkas? padaro kazkas ir pnš. (čia aišku nepabaigta)

function Raides($text){

$pries = array("ą", "č", "ę", "ė", "į", "š", "ų", "ū", "ž", " ", "", "", "", "", "");
$po =    array("a", "c", "e", "e", "i", "s", "u", "u", "z", "-", "", "", "", "", "");

$text = str_replace($pries, $po, $text);

return strtolower($text);

}

 

ir į a href nuorodą dedi pvz ".Raides($data['pavadinimas'])."

 

O tam faile kuriam noriu, kad atidarytų mano turinį darau: $name = $_GET['id'];

ir mysql_query("SELECT * FROM rewrite WHERE seo_name = '".$name."'") čia imu iš duom bazės kuris yra su tokiu pavadinimų ir viskas, gražiai atidaro (aišku nėra jokių apsaugų po kolkas). htacces: RewriteRule ^vardas/([^/]+)$ name.php?id=$1 [L]

Redagavo Arvis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū už užvedimą ant kelio, pasidariau :)

 

Gal kam pravers arba patobulins

Visų pirma mysql lenelėje jeigu turiu lentelę pavadinimas tai sukūriau dar papildoma pvz kokį seo_name.

Po to funkciją kuri padaro seo friendly pavadinimą pvz iš Kažkas? padaro kazkas ir pnš. (čia aišku nepabaigta)

function Raides($text){

$pries = array("ą", "č", "ę", "ė", "į", "š", "ų", "ū", "ž", " ", "", "", "", "", "");
$po =    array("a", "c", "e", "e", "i", "s", "u", "u", "z", "-", "", "", "", "", "");

$text = str_replace($pries, $po, $text);

return strtolower($text);

}

 

ir į a href nuorodą dedi pvz ".Raides($data['pavadinimas'])."

 

O tam faile kuriam noriu, kad atidarytų mano turinį darau: $name = $_GET['id'];

ir mysql_query("SELECT * FROM rewrite WHERE seo_name = '".$name."'") čia imu iš duom bazės kuris yra su tokiu pavadinimų ir viskas, gražiai atidaro (aišku nėra jokių apsaugų po kolkas). htacces: RewriteRule ^vardas/([^/]+)$ name.php?id=$1 [L]

tas seo_name tavo dabartinis turi pavadinimą: slug. Ir nelogiška iš pradžių replacint tik mažąsias raides, o tik tada strtolower daryt. Iš pradžių reikia strtolower, nes jeigu bus didžioji raidė nosinę, tada nereplacins.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Manau, kad tavo funkcija slug'ų generavimui nėra labai gera :)

 

Lietuviškuose projektuose naudoju štai šitą:

 

public function make_link($string)
{
	setlocale(LC_ALL, 'lt_LT');

	$string = preg_replace('~[^\\pL0-9_]+~u', '-', $string);
	$string = trim($string, "-");
	$string = iconv("utf-8", "us-ascii//TRANSLIT//IGNORE", $string); 

	return strtolower(preg_replace('~[^-a-z0-9_]+~i', '', $string)); 
}	

Nuoroda į pranešimą
Dalintis kituose puslapiuose

RewriteRule zodis-([0-9]+).html index.php?id=$1

 

kaip padaryt kad vietoj žodis galėčiau rašyti betkokį žodį, liktų tik url pvz:

 

aaa-5.html būtų taspats kas index.php?id=5

 

ir

 

bbb-5.html būtų taippat taspats kas index.php?id=5

 

([^/]+)-([0-9]+).html šitaip turėjai omenyje?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...