Seo url en database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas IJzelendoorn

Bas IJzelendoorn

07/03/2011 18:53:41
Quote Anchor link
Hoi hoi,

Ik loop een beetje vast met vriendelijke URL's. Ik zal eerst de huidige situatie even omschrijven:

Ik heb 2 databases:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
paginas
-----------------
id,
naam,
content

subpaginas
-----------------
id,
naam,
content


Nu ben heb ik in mijn zelf ontwikkelde CMS het al zover gekregen dat de url in de navigatie er als volgt uitkomt: www.domein.nl/paginanaam , nu krijg ik het alleen niet meer terug gekoppeld naar en uit de databases. En daarbij vraag ik me af wat het handigste is.

Vraag 1:
1 database met paginas en subpaginas of deze 2 databases apart houden?

Vraag 2:
Hoe krijg ik het voor elkaar dat hij de pagina naam oppakt en de juiste pagina gegevens (content) uit de database ophaalt?

alvast bedankt voor de hulp.
Gewijzigd op 07/03/2011 18:55:04 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

01/10/2022 13:24:08
 
Noppes Homeland

Noppes Homeland

07/03/2011 19:11:04
Quote Anchor link
Quote:
Vraag 1:
1 database met paginas en subpaginas of deze 2 databases apart houden?

je hebt het niet over 2 databases maar 2 tabellen in 1 databas.

Let wel een pagina is een pagina, dus sla je het gewoon op in 1 tabel

Quote:
Vraag 2:
Hoe krijg ik het voor elkaar dat hij de pagina naam oppakt en de juiste pagina gegevens (content) uit de database ophaalt?

Ik zal gewoon aan het begin van de paginanaam het id plaatsen daarna een scheidingsteken, bijvoorbeeld het min teken, dan kan je gewoon het id eruit trekken ben ben je niet afhankelijk van paginanaamswijzigingen.

of zoals hier dat je krijgt /<paginanaam>/<idpaginanaam>/
Gewijzigd op 07/03/2011 19:12:13 door Noppes Homeland
 
Mar cel

Mar cel

07/03/2011 19:27:44
Quote Anchor link
Van die twee tabellen kan wel er wel één maken, geef gewoon een veld parent_id mee. Verder neem ik aan dat je al iets van htaccess hebt voor de nette urls.

Wat noppes zegt is wel een goede tip, ids en de titel oid gebruiken, vind het voor een simpele contentpagina wat minder mooi staan (site.nl/2/over-ons) de kans dat je een dubbele contentpagina krijgt is als het goed is vrij klein. VOor nieuwsberichten, fora, etc etc gebruik ik het wel altijd. Ik zou trowuens wel én op het streepje en op de titel zoeken, anders kan je de titel in de url veranderen, id blijft het zelfde, dus werkt het nog steeds, beetje raar vind ik.
 
Joren de Wit

Joren de Wit

07/03/2011 19:27:56
Quote Anchor link
Zoals Noppes al zegt: paginas zijn paginas, ook als het subpaginas zijn. Die horen dus allemaal in 1 tabel thuis waarbij je in een veld het id van de parent (in geval van een subpagina) aangeeft:

paginas
-------
id
naam
content
parent_id (FK -> paginas.id)

Ik zou er evenwel niet voor kiezen om het id en de naam te combineren. Je kunt met behulp van mod-rewrite prima de naam en het id gescheiden in de url hebben staan en vervolgens niets met de naam doen. Je gebruikt enkel het id om de pagina op te vragen.
 
Bas IJzelendoorn

Bas IJzelendoorn

08/03/2011 21:25:20
Quote Anchor link
excuses voor het database verhaal. Natuurlijk snap ik dat het tabellen zijn, gewoon een formuleringsfoutje wat ik vaker maak. Maar ik snap het verschil heel goed ;)

Ik heb nu alles in een tabel gezet en heb de urls aangepast. Ik had als ik op een link klikte het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="Home">Home</a> (output: www.domein.nl/Home)


Nu is dat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="index.php?pagina=Home">Home</a> (output: www.domein.nl/index.php?pagina=Home)


Ik heb tevens in de tabel een apart veld gemaakt om de subpaginas te koppelen aan de hoofdpaginas.

Maar ik heb hem nog niet helemaal duidelijk. Is het nu handiger om de url zo te hebben:

www.domein.nl/home/1/ --> hierbij haal ik enkel het id eruit.

of:

www.domein.nl/home/ --> hierbij pak ik de pagina naam

Ik loop dus een beetje vast in de opbouw van de url, de php (het aanroepen van de juiste pagina) en de htaccess waarvan ik het volgende heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^index/(.*)/$ index.php?pagina=$1 [L]


Ik heb al enkele tutorials gelezen maar kom er niet uit.
Gewijzigd op 08/03/2011 21:28:27 door Bas IJzelendoorn
 
Joren de Wit

Joren de Wit

08/03/2011 21:37:48
Quote Anchor link
Je kunt twee kanten op. Ofwel kies je voor het id dat in ieder geval altijd uniek is, maar dat je dan wel in de url moet zetten. Ofwel kies je voor de naam, wat netter staat in de url maar die dan wel altijd uniek moet zijn (ie. je kunt niet twee paginas met dezelfde naam hebben).

Afhankelijk van je applicatie kun je een van de twee oplossingen kiezen. Is een naam van een pagina altijd uniek, dan zou ik voor de tweede oplossing kiezen. Bestaat de kans dat er paginas met dezelfde naam aangemaakt worden (bijvoorbeeld in het geval van forumtopics oid), dan zou ik voor de eerste oplossing kiezen.

De eerste oplossing sluit overigens niet uit dat je niet de naam ook in de url kunt zetten.
 
Bas IJzelendoorn

Bas IJzelendoorn

08/03/2011 22:49:43
Quote Anchor link
Ik heb sowieso geen dubbele pagina's en als die er toch komen zal ik voor het toevoegen zorgen dat dit niet kan. Dubbele records heb ik sowieso geen zin in. Dus dan krijg ik www.domein.nl/paginanaam

Maar hoe verwerk ik dit nu goed a.d.v. htaccess en php Kan ik dan direct linken naar die paginanaam en hoe pak ik dan de goede pagina uit de database, want dan kom ik een beetje terug bij af.
 
Write Down

Write Down

08/03/2011 23:35:52
Quote Anchor link
Persoonlijk zou ik je multiviews aanraden. Werk stukken eenvoudiger dan tal van rewrite-rules. Meestal is het overigens ruim voldoende.

Klikje
 
Wouter J

Wouter J

09/03/2011 08:00:07
Quote Anchor link
Als je deze pagina hebt:
www.domein.nl/index.php?pagina=Home
En je wilt:
www.domein.nl/home/
Dan moet de URL rewrite zoiets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^(.*?)/$ index.php?pagina=$1

Hiermee schrijf je /[iets]/ om naar index.php?pagina=[iets]
 
Bas IJzelendoorn

Bas IJzelendoorn

09/03/2011 11:36:49
Quote Anchor link
Het is in elk geval gelukt :)

Ik heb de tutorial van Write Down erbij gepakt en nu lukt het wel. Maar is dit wel de beste oplossing, niet dat ik twijfel aan reacties van een ander maar ik wil natuurlijk wel zeker weten dat ik niet bezoekers ga mislopen door een fout o.i.d. en hij geeft aan dat het meestal voldoende is? wanneer niet?

Edit:

Loop toch tegen een ander probleem nu aan:

Als ik via mijn cms, welke gebruik maakt van TinyMCE, een afbeelding toevoeg. Krijg ik geen afbeelding te zien.

zowel als ik de url gebruik: bestanden/afbeelding.png
als http://www.domein.nl/bestanden/afbeelding.png

Het enige wat ik te zien krijg is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
rn

\"\"


broncode output:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
rn<p><img src=\"../bestanden/afbeelding.png\" alt=\"\" /></p>
Gewijzigd op 09/03/2011 11:54:48 door Bas IJzelendoorn
 
Bas IJzelendoorn

Bas IJzelendoorn

10/03/2011 16:20:19
Quote Anchor link
bumpert
Gewijzigd op 11/03/2011 12:21:30 door Bas IJzelendoorn
 
Imre Bernath

Imre Bernath

31/03/2011 18:30:33
Quote Anchor link
Je zou dit eens kunnen proberen


if (get_magic_quotes_gpc())
{
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);

return $value;
}

$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
}
 
Noppes Homeland

Noppes Homeland

31/03/2011 18:54:03
Quote Anchor link
@Imre, dat is de weg die je dus niet dient te bewandelen!

Zorg er gewoon voor dat php goed ingesteld staat:
http://php.net/manual/en/security.magicquotes.php

en uiteraard ga je zelf ook niet zitten escapen
Gewijzigd op 31/03/2011 18:54:31 door Noppes Homeland
 
Imre Bernath

Imre Bernath

03/04/2011 09:39:36
Quote Anchor link
Als php goed is ingesteld dat hoeft dat ook niet, logisch toch?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.