[Rezolvat] PHP URL friendly problem!

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

adrianmihai
Junior Member
Mesaje: 41
Membru din: Mie Mar 27, 2013 9:53 am

[Rezolvat] PHP URL friendly problem!

Mesajde adrianmihai » Dum Mar 16, 2014 10:02 pm

Ultima oară modificat Mar Mar 18, 2014 12:06 pm de către adrianmihai, modificat 1 dată în total.



MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Re: PHP URL friendly problem!

Mesajde MarPlo » Lun Mar 17, 2014 7:36 am

Salut
De ce transformi sirul pt "url" din GET in numar, cu (int)?
In coloana 'url' din baza de date e numr sau sir?

- mysql_query() e functie de muzeu, in prezent se foloseste PDO sau MySQLi.
Cursuri gratuite: | | | |

adrianmihai
Junior Member
Mesaje: 41
Membru din: Mie Mar 27, 2013 9:53 am

Re: PHP URL friendly problem!

Mesajde adrianmihai » Lun Mar 17, 2014 9:11 am

Cea cu int era pentru cazul in care afisam pagina dupa id si anume: pages.php?id=1

Ce trebuie sa modific pentru a rezolva problema descrisa mai sus. Problema e ca script-ul functioneaza pentru url, insa in pagina la apelare imi apare de exemplu la continut tot continutul din baza de date din toate insert-urile, nu se delimiteaza de id, adica daca apelez din browser www.site.ro/despre-noi in loc sa-mi apara continutul de la pagina despre-noi care are ID-ul 1 imi apare continutul pentru toate paginile scrise in baza de date adica si cele cu id 2,3 etc. Nu sunt delimitate de id.

Avatar utilizator
mndrk
Senior Member
Mesaje: 271
Membru din: Mar Iun 22, 2010 12:02 pm
Localitate: Bucuresti
Contact:

Re: PHP URL friendly problem!

Mesajde mndrk » Lun Mar 17, 2014 9:33 am

După cum vrei tu ai două alegeri:
1. (recomandat) să adaugi în tabelul din baza de date o nouă coloană cu url-ul către pagină ( nu complet, ci doar denumirea, în exemplul tău: despre-noi ); Apoi când citeşti din baza de date, în primul rând ştergi linia cu $url = (int) $_GET['url']; care e greşită chiar şi cum e scrisă acum, tu vrei să transformi "despre-noi" in număr, o să primeşti mereu valoarea 0.
2. Să scrii în .htaccess către o regulă pentru fiecare pagină. In care scrii manual id-ul paginii în funcţie de url. Nu recomand acest lucru pentru că o să trebuiască să modifici fişierul de fiecare dată când adaugi o nouă pagină în baza de date.


adrianmihai
Junior Member
Mesaje: 41
Membru din: Mie Mar 27, 2013 9:53 am

Re: PHP URL friendly problem!

Mesajde adrianmihai » Lun Mar 17, 2014 9:59 am

In baza de date am camp cu denumirea url, in care e trecuta pagina despre-noi. Cu, codul postat mai sus si fisier-ul .htaccess pagina functioneaza din browser daca scriem http://site.ro/despre-noi - insa in aceasta pagina imi afiseaza tot continutul din toate paginile unul sub altul si nu separat de exemplu la despre-noi continutul paginii despre noi, iar la cum-comand continutul paginii cum comand. Mie imi afiseaza toate continuturile unul sub altul, si face asta probabil ca nu ii s-a furnizat un ID dupa care sa se ghideze, daca modific in codul de mai sus url cu id si apelez pagina in formatul pages.php?id=1 atunci totul functioneaza corect.

Avatar utilizator
mndrk
Senior Member
Mesaje: 271
Membru din: Mar Iun 22, 2010 12:02 pm
Localitate: Bucuresti
Contact:

Re: PHP URL friendly problem!

Mesajde mndrk » Lun Mar 17, 2014 10:07 am

De aceea scriam să nu cauţi după id, ci după denumire. Pentru că nu ai id-ul în URL, nu are de unde să ştie ce id vrei, iar (int) de orice string o să rezulte în 0. Nu ştiu cum de îţi afişează toate paginile, având în vedere că ai LIMIT 1, doar dacă nu ţi-a făcut match pe pagină, deşi exemplul dat de tine e corect pe partea aceasta şi face match rezultând în url-ul: http://site.ro/pages.php?url=despre-noi
Deci în $_GET['url'] ai valoarea 'despre-noi', iar în $url o să ai valoarea 0 din cauza acelui (int).


adrianmihai
Junior Member
Mesaje: 41
Membru din: Mie Mar 27, 2013 9:53 am

Re: PHP URL friendly problem!

Mesajde adrianmihai » Lun Mar 17, 2014 10:36 am

Limit 1 e pentru continutul de meta, cuvinte cheie, descriere, titlu.

Codul functioneaza. Eu nu inteleg de ce atunci cand apelez pagina despre-noi, sau cum-comand - imi afiseaza tot continutul din toate paginile postate in baza de date, indiferent ca in url scriu despre-noi sau cum-comand.

Avatar utilizator
mndrk
Senior Member
Mesaje: 271
Membru din: Mar Iun 22, 2010 12:02 pm
Localitate: Bucuresti
Contact:

Re: PHP URL friendly problem!

Mesajde mndrk » Lun Mar 17, 2014 10:45 am

Si eu ti-am spus de ce. Pentru că tu în $url ai valoarea 0.

Deci:
http://site.ro/despre-noi
= > http://site.ro/pages.php?url=despre-noi
=> $_GET['url'] = 'despre-noi'
=> $url = (int)$_GET['url'] = 0 (orice string, dacă nu începe cu cifră e transformat în 0 )
=> în query-ul mysql că ajungi să compari url = 0.
Acum dacă in baza ta de date coloana url este de tip string, o să-ţi returneze absolut toate rezultatele; dacă e de tip integer, nu o să-ţi returneze nimic.

Am obs mai târziu că ai limit doar la meta, în primul rând nu ai nevoie de atâtea query-uri, din primul query citeşti toate datele de care ai nevoie, apoi în al doilea rând, query-ul e greşit deoarece tu nu îi trimiţi id-ul.


adrianmihai
Junior Member
Mesaje: 41
Membru din: Mie Mar 27, 2013 9:53 am

Re: PHP URL friendly problem!

Mesajde adrianmihai » Mar Mar 18, 2014 9:44 am

In baza de date coloana este de tip varchar(250). Ce trebuie sa modific pentru a nu imi afisa tot continutul tuturor paginilor ci doar al celei care o apelez prin url?

Avatar utilizator
mndrk
Senior Member
Mesaje: 271
Membru din: Mar Iun 22, 2010 12:02 pm
Localitate: Bucuresti
Contact:

Re: PHP URL friendly problem!

Mesajde mndrk » Mar Mar 18, 2014 9:51 am

Trebuie să trimiţi conţinutul coloanei respective în URL. Si să stergi rândul cu (int). Dacă este varchar, atunci în coloana respectivă trebuie să apară exact denumirea paginii, în exemplul tău : "despre-noi" (fără ghilimele). Apoi când compari o să compari exact ce trebuie şi obţii pagina corectă.


adrianmihai
Junior Member
Mesaje: 41
Membru din: Mie Mar 27, 2013 9:53 am

Re: PHP URL friendly problem!

Mesajde adrianmihai » Mar Mar 18, 2014 10:10 am


Avatar utilizator
mndrk
Senior Member
Mesaje: 271
Membru din: Mar Iun 22, 2010 12:02 pm
Localitate: Bucuresti
Contact:

Re: PHP URL friendly problem!

Mesajde mndrk » Mar Mar 18, 2014 11:19 am



adrianmihai
Junior Member
Mesaje: 41
Membru din: Mie Mar 27, 2013 9:53 am

Re: PHP URL friendly problem!

Mesajde adrianmihai » Mar Mar 18, 2014 11:25 am


MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Re: [Rezolvat] PHP URL friendly problem!

Mesajde MarPlo » Mar Mar 18, 2014 1:57 pm

Cursuri gratuite: | | | |


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 34 vizitatori