Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 20-01-2009, 22:40
Verwijderd
Hoi,

Ik ben bezig met het maken van een website. Eigenlijk heb ik enkel een index.php en een database.
Nu wil ik mijn menu (en submenu) dynamisch maken met php. Het herkennen van de gegevens in de database en het menu tonen gaat prima. Nu nog dynamisch maken.

Als je op het hoofdmenu ergens klikt, dat er een nieuwe pagina laadt met ook het submenu. Dan zend ik met php dus een waarde mee naar de volgende pagina (ook index.php) (Ik moet nog uitzoeken hoe, tips zijn welkom)

Nu mijn vraag.
Is dit aan te raden? Is krijg je zo een link naar steeds je index.php waardoor de site instabiel wordt?
Met citaat reageren
Advertentie
Oud 21-01-2009, 15:23
ILUsion
Avatar van ILUsion
ILUsion is offline
Het is mogelijk, dat in ieder geval. Ik weet niet precies wat je met dynamisch bedoelt, want daar zijn twee mogelijkheden voor: de ene mogelijkheid is richting DHTML, Javascript, CSS en Flash: dus eem menu dat interageert met de gebruiker (menu dat openklapt; zoals het gebruikersmenu hier) of gewoon dat je wilt zeggen dat het menu geheel vanuit de DB opgebouwd moet worden, maar er bv. wel een statische interactie is (een beetje zoals op dit forum de verschillende deelfora).

Hetgene je wilt (dus vanuit index.php alle pagina's laden) is zeer zeker doenbaar. Ik zou je indien je dat doet, aanraden om met GET-variabelen te werken en niet met POST-variabelen (reden: een GET-variabele kan een gebruiker in de URL meegeven, een POST-variabele is al moeilijker). En dat brengt ons eigenlijk op het volgende probleem van je idee: voor je gebruikers ziet het er al niet mooi uit (urls als index.php?t=blaat , net zoals hier op het forum). Maar zoekmachines zien dat nog veel minder graag, omdat ze veel minder met die variabelen willen spelen.

Als je toch jouw manier technisch wilt gebruiken, dat is zeer goed mogelijk (dus met 1 scriptje al de rest bedienen). Ik zou je weliswaar aanraden om waar mogelijk op te splitsen in de verschillende functionaliteit (hier op het forum zie je dat ook al showthread.php, usercp.php, forumdisplay.php, ...). Dus wel zo veel mogelijk groeperen in je pagina, maar daarin niet tot in het oneindige proberen gaan. Want dan gaat je gehele script gigantisch worden. En PHP is een scripting taal, dus elke keer voor elke bezoeker wordt dat opnieuw uitgevoerd (niet helemaal waar altijd, maar goed). Bovendien gaat je code er dan gewoon uitzien als een grote if-else-structuur of een case-structuur; wat ook niet echt nodig is.

De mogelijkheid om het voor zowel je gebruikers als voor de zoekmachines mooi te maken, is gebruik te maken van mod_rewrite op Apache; maar dat is iets dat je tegen het einde van je ontwerpfase maar eens moet proberen (ik werk er zelf nooit mee, maar ik weet dat het bestaat). Dat is ook hetgene wat (dacht ik) op WikiPedia voor die URLs zorgt: dus /wiki/Paginanaam in plaats van wiki.php?title=Paginanaam (of iets dergelijks).

Dus ik zou het niet aanraden alles in 1 php-script te gooien, als je tussen verschillende scripts een gemeenschappelijke basis wilt hebben, kan je nog steeds een include doen in al die scripts.

Wat je waarschijnlijk wilt bereiken is dat al je pagina's er gelijkaardig uitzien: een van de meestgebruike oplossingen daarvoor is Smarty (een PHP-script dat voor de opmaak zorgt). Maar uiteindelijk zou je zelf ook een structuur kunnen op poten zetten die voor de opmaak zorgt (bv. verschillende korte scriptjes die zorgen voor elk een stukje van de site; en als je met wat CSS werkt, kan je die opmaak vrij goed sturen naar je wensen).
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Oud 21-01-2009, 21:42
Verwijderd
Ik bedoel dat het menu uit de database wordt opgebouwd, en dat als je op een mainmenu item klikt dat daarvan het submenu opent.

In de tussentijd ben ik al wat gaan klussen en ik heb (met moeite ) iets met post variabelen opget. Ik bedacht me namelijk dat ik het mooier vind als het adresbalk altijd de hoofdpagina aangeeft (de site wordt niet heel groot, iets terugvinden is geen probleem voor deze site) .
Owh. als ik jou tekst verder lees zie ik dus dat jij het ook netter vind en dat zoekmachines dit ook 'leuker' vinden. Ik heb dus goed gekozen
Groeperen. Hiermee bedoel je dus dat ik voor bijv. gastenboek en contact een overige.pph gebruik en voor de inhoud inhoud.php gebruik? Of bedoel je dat ik de verschillende stukjes script in mijn index.php uit mekaar trek en in losse .php stopt (net zoals ik een los script heb die vebinding maakt met de database (vooral handig als je meerdere .php hebt die verbinding met de database maken en je je wachtwoord een keer aanpast.)

Zoals het op wiki gaat lijkt me eigenlijk vrij eenduidig. De taal staat in de url en de pagina-naam staat in de url. Url uitlezen. En dan zorg de combinatie van die 2 voor een unieke hit in de database. Of is dit niet zo eenduidig?

Voorlopig ga ik even aan de slag met php en css.

Bedankt voor je antwoorden
Met citaat reageren
Oud 21-01-2009, 23:29
M@rco
Avatar van M@rco
M@rco is offline
Citaat:
Maar zoekmachines zien dat nog veel minder graag, omdat ze veel minder met die variabelen willen spelen.
Naar ik begrijp kunnen zoekmachines anno 2009 daar ook prima mee overweg. Dat hele URL's optimaliseren voor zoekmachines schijnt nogal tijdverspilling te zijn.

En ik denk dat de TS het verschil tussen GET en POST variabelen nog niet helemaal door heeft. De enige manier om een POST-variabele te versturen is via een formulier op de pagina. Bijvoorbeeld een reply posten op dit forum, dat werkt met POST-variabelen. Je kunt dat niet gebruiken om door een website te navigeren. Dan zul je toch echt met GET-variabelen moeten werken, bijv. iets als:

index.php?section=foo

Dan maak je in je script gebruik van de variabele $_GET['section'], en dan kun je daarmee weer iets uit je database halen.
__________________
What experience and history teach is this — that people and governments never have learned anything from history, or acted on principles deduced from it.
Met citaat reageren
Oud 22-01-2009, 09:15
Verwijderd
Citaat:
En ik denk dat de TS het verschil tussen GET en POST variabelen nog niet helemaal door heeft. De enige manier om een POST-variabele te versturen is via een formulier op de pagina. Bijvoorbeeld een reply posten op dit forum, dat werkt met POST-variabelen. Je kunt dat niet gebruiken om door een website te navigeren. Dan zul je toch echt met GET-variabelen moeten werken, bijv. iets als:

index.php?section=foo

Dan maak je in je script gebruik van de variabele $_GET['section'], en dan kun je daarmee weer iets uit je database halen.


Toch is het me gelukt met de POST variabelen. Ik misbruik het misschien een beetje, maar het werkt. Ik maak een knop aan, daarnaast maak ik nog een hidden knop aan en de hidden tekst van deze knop die wordt meegestuurd met de zichtbare knop. En het werkt. Zo kan ik zelfs een submenu maken. Maar mooi is nog anders, ik moet de knoppen nog flink wat stylen. En ik denk erover dat ik misschien de knoppen door enkel tekst wil vervangen. Dat vind ik toch mooier. Ik weet niet of ik het kunstje dan ook kan flikken. Ik denk van niet. Maar ik ga het proberen.

PHP-code:
<?php 

$res 
mysql_query("SELECT typeid, typename FROM tipstype ORDER by typeorder ASC"); 
while (
$obj mysql_fetch_object($res)) { 
  echo 
"<FORM METHOD='post' ACTION='index.php'>";
  echo 
"<INPUT TYPE='submit' class='menumain' NAME='submenu' VALUE='".$obj->typename."'>";   // knop genoemd naar typename
  
echo "<INPUT TYPE='hidden' NAME='submenu' VALUE='".$obj->typeid."'>";     // Wordt verborgen verzonden om typeid mee te sturen
  
echo "</FORM>";

    
  if (
$obj->typeid == $submenu) {
     
$res2 mysql_query("SELECT name, tipid FROM tips WHERE typeid = $submenu"); 
     while (
$obh mysql_fetch_object($res2)) { 

       echo 
"<FORM METHOD='post' ACTION='index.php'>";
       echo 
"<INPUT TYPE='submit' class='menusub' NAME='content' VALUE='".$obh->name."'>";   // knop genoemd naar typename
       
echo "<INPUT TYPE='hidden' NAME='content' VALUE='".$obh->tipid."'>";     // Wordt verborgen verzonden om typeid mee te sturen
       
echo "<INPUT TYPE='hidden' NAME='submenu' VALUE='".$obj->typeid."'>";    // Wordt verzonden zodat het menu niet inklapt 
       
echo "</FORM>";

}
}
}


?>
Met citaat reageren
Oud 22-01-2009, 09:17
Verwijderd
En bovenaan staat nog dit stuk php

PHP-code:
<?php 

if (isset($_POST['submenu'])) {
   
$submenu $_POST['submenu'];
   }
   
 if (isset(
$_POST['content'])) {
   
$content $_POST['content'];
   } 

?>
Met citaat reageren
Oud 22-01-2009, 09:35
ILUsion
Avatar van ILUsion
ILUsion is offline
Citaat:
Ik bedoel dat het menu uit de database wordt opgebouwd, en dat als je op een mainmenu item klikt dat daarvan het submenu opent.

In de tussentijd ben ik al wat gaan klussen en ik heb (met moeite ) iets met post variabelen opget. Ik bedacht me namelijk dat ik het mooier vind als het adresbalk altijd de hoofdpagina aangeeft (de site wordt niet heel groot, iets terugvinden is geen probleem voor deze site) .
Owh. als ik jou tekst verder lees zie ik dus dat jij het ook netter vind en dat zoekmachines dit ook 'leuker' vinden. Ik heb dus goed gekozen
Groeperen. Hiermee bedoel je dus dat ik voor bijv. gastenboek en contact een overige.pph gebruik en voor de inhoud inhoud.php gebruik? Of bedoel je dat ik de verschillende stukjes script in mijn index.php uit mekaar trek en in losse .php stopt (net zoals ik een los script heb die vebinding maakt met de database (vooral handig als je meerdere .php hebt die verbinding met de database maken en je je wachtwoord een keer aanpast.)

Zoals het op wiki gaat lijkt me eigenlijk vrij eenduidig. De taal staat in de url en de pagina-naam staat in de url. Url uitlezen. En dan zorg de combinatie van die 2 voor een unieke hit in de database. Of is dit niet zo eenduidig?

Voorlopig ga ik even aan de slag met php en css.

Bedankt voor je antwoorden
POST-variabelen had ik juist afgeraden: stel dat ik aan Marco wil zeggen: 'kijk eens op {URL} naar dat interessante verhaal', dan loopt dat door POST-variabelen in de soep; want dan moet ik Marco nog zeggen: 'klik daar, en klik daar en klik tot slot nog eens daar'. Dat is iets wat zoekmachines voor zover ik weet ook niet doen (wat dus wilt zeggen dat een zoekmachine die inhoud niet of moeilijker zal doorzoekbaar maken). Zoals je zelf al zegt, speelt de grootte van je site ook wel een beetje een rol, maar tenzij je heel erg zeker bent dat het voor de gebruikers (en deze doelgroep bepaal je natuurlijk zelf) makkelijker is om steeds eenzelfde URL weer te geven, zou ik je toch sterk aanraden het niet te doen.

Met GET-variabelen werkt het zoals Marco zegt al wel tegenwoordig, ik ga er gewoon vanuit dat als je te veel GET-variabelen mee moet geven, je iets fout aan het doen bent en dat het voor een zoekmachine ook niet echt aantrekkelijk zal zijn.

Wiki werkt voor zover ik weet ietsje anders dan jij veronderstelt (maar ik ben zeker geen insider; dit is enkel wat ik een logischere manier zou vinden). Elke taal van Wikipedia draait op afzonderlijke servers (mogelijk zelfs op andere locaties, maar dat weet ik niet zeker), en elke taalversie heeft zijn eigen database. De URL die je ingeeft wordt door hun webserver omgezet naar iets als een aanvraag naar een wiki.php-script met daarop een GET-parameter title=blaat of iets dergelijks.

Wat het opsplitsen van je scripts betreft: het beste is beide te gebruiken. Dus afhankelijk van de functionaliteit van je inhoud (op het forum bv.: post ingeven, topic lezen, forum raadplegen, ...) en nog eens om stukken code die je echt vaak gebruikt op een plaats te centraliseren; bv. zoals je zelf al zegt de connectie naar je db kan je vanuit een los script opzetten (of de variabelen daarvoor in een los script steken, zodat je op een plaats maar moet aanpassen en dan verandert je hele spel mee.
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware Alternatieve OS'en
Praganonut
94 12-11-2007 23:08
Software & Hardware [Alg] Wat voor soort pagina-adressen?
Kawoutertje
15 31-05-2005 13:35
Software & Hardware PHP vraag
chatfreak2002
60 21-06-2002 20:28
Software & Hardware [php/JS] Vertakt menuutje bouwen
Orion
4 04-06-2002 12:54


Alle tijden zijn GMT +1. Het is nu 20:32.