Mod_Rewrite links van spelletjes

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tjommer
  • Registratie: Maart 2009
  • Laatst online: 11-09 16:20
Beste leden,

Ik ben bezig om de links naar de spelletjes op mijn site wat bezoekersvriendelijker te maken.

Ik wil dat de link:
www.website.nl/game.php?id=55

wordt omgezet naar bijvoorbeeld
www.website.nl/55-Bierblikjes-gooien.html


Nu zit ik alleen nog met het probleem dat de links van uit het script dus ook anders moeten worden aangeroepen.

In het script staat in games.php hoe de links van de spellen worden weergegeven. Hieronder het stukje code uit games.php:
code:
1
2
3
4
5
6
7
8
$sql = "SELECT * FROM games WHERE cat = '$cat' ORDER BY naam ASC";

$resultaat = mysql_query($sql);
while ($list = mysql_fetch_object($resultaat)) {
$height = 100+$list->height;
echo "$lteken <a href=\"#\" onClick=\"window.open ('game.php?id=$list->id','gamepopup','toolbar=no,location=no,directories=no,status=no,me
nubar=no,scrollbars=$scroll,resizable=no,copyhistory=no,width=$popupw,height=$popuph'); return false;\">". ucwords($list->naam) ."</a> <br>";
}



Ik denk dat het stukje
code:
1
game.php?id=$list->id

het stukje is wat ik moet aanpassen om de link goed te krijgen.
Het .htaccess gedeelte werkt goed, maar nu dus alleen de aanpassing in het script zelf.
De vraag is nu hoe doe ik dit?

Alvast bedankt voor de hulp!

Groeten Eric-Jan

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Ik gok op $list->id .'-'. $list->naam.

Acties:
  • 0 Henk 'm!

  • Cascade
  • Registratie: Augustus 2006
  • Laatst online: 11-09 11:56
Lijkt mij dat je dat stukje moet herschrijven naar de nieuwe url. Daarvoor is nodig: de id weer en een fatsoenlijke naam van de game.

Je kan kiezen hoe je die naam doet (mits in de database natuurlijk, anders heb je een probleem). Denk aan: gewoon alles url-encoden, of anders rare chars vervangen/weglaten.

Zoiets bijvoorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
    // vervang ongeldige tekens door '-'.
    $gameName = preg_replace( '/[^a-zA-Z0-9_]/', '-', $list->name );

    // vervang meervoud '-' door enkelvoud '-' en strip chars aan buitenkant.
    $gameName = trim( preg_replace( '/[-]{2,}/', '-', $gameName ), '-_' );

    // maak URL voor de game.
    $url = sprintf( '%d-%s.html', $list->id, $gameName );
?>

uit de losse pols, niet getest. En geen controle op lege naam.

Of:
PHP:
1
    $url = sprintf( '%d-%s.html', $list->id, rawurlencode( $list->name ) );


En uiteindelijk is voor het opzoeken van de game die naam weer niet zo heel belangrijk; aan de id zou je genoeg moeten hebben.

[ Voor 15% gewijzigd door Cascade op 25-01-2010 21:04 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

De vraag is nu hoe doe ik dit?
Door eerst zelf wat te proberen ;) We verwachten van je dat je zaken eerst zelf probeerd, en dan pas een topic opent. Alleen aangeven wat het probleem is en wachten op een oplossing is hiet eigenlijk not done. Nu komt het over op een scriptrequest en die staan we hier niet toe. Je hebt in dit geval mazzel dat er nagenoeg kant en klare oplossing gegeven zijn. Neem die aub niet domweg over, maar probeer ze te begrijpen. Daar leer je een stuk meer van ;)

Dus: wat had je zelf al geprobeerd? Wat lukte daar niet mee?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je kan wel zo'n script schrijven maar bij het herschrijven zodat 'ie de naam van het spel ook in de url erbij zet heb je moeite? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Tjommer
  • Registratie: Maart 2009
  • Laatst online: 11-09 16:20
Door eerst zelf wat te proberen ;) We verwachten van je dat je zaken eerst zelf probeerd, en dan pas een topic opent. Alleen aangeven wat het probleem is en wachten op een oplossing is hiet eigenlijk not done. Nu komt het over op een scriptrequest en die staan we hier niet toe. Je hebt in dit geval mazzel dat er nagenoeg kant en klare oplossing gegeven zijn. Neem die aub niet domweg over, maar probeer ze te begrijpen. Daar leer je een stuk meer van ;)

Dus: wat had je zelf al geprobeerd? Wat lukte daar niet mee?
Laat ik voorop stellen dat ik er al een tijdje mee bezig ben, mijn php kennis is gering. Ik kom dan ook spelenderwijs steeds achter nieuwe dingen & oplossingen. Ik heb al zitten spelen met preg replace en dergelijke, echter nog zonder resultaat.
Je kan wel zo'n script schrijven maar bij het herschrijven zodat 'ie de naam van het spel ook in de url erbij zet heb je moeite? :?
Ik heb niet gezegd dat ik dit script geschreven heb, dit is namelijk niet zo. Ik ben een al reeds bestaand script naar eigen wens aan het aanpassen. Ik heb het script eerder gebruikt, en had het toen werkend met enig hulp van anderen. Maar helaas ben ik die bestanden kwijt, vandaar dat ik het opnieuw wil proberen.

Ik ga aan de slag met de gegeven voorbeelden, waarvoor dank!

edit: De spelletjes staan in de database.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Even vragen aan de maker van het script of PHP leren dus :) Spelen met preg_replace gaat je weinig opleveren, je moet met regexes wel weten waar je mee bezig bent bijvoorbeeld.
Pagina: 1