Hvis du alligevel trækker kundens navn fra din database, kan du vel bare lave et "shortlink" til kundens navn såfremt store bogstaver, øæå og eksempelvis bindestreger og mellemrum bliver ændret.
Nedenstående funktion bruger du når du opretter kunden i kartoteket og indsætter resultatet i en ny række kaldet .. eksempelvis kundeurl.
- function niceurl($url) {
- $url = strtolower($url);
- $url=str_replace('Æ','ae',$url);
- $url=str_replace('Ø','oe',$url);
- $url=str_replace('Å','aa',$url);
- $url=str_replace('æ','ae',$url);
- $url=str_replace('ø','oe',$url);
- $url=str_replace('å','aa',$url);
- $url = preg_replace("/[^a-z0-9_\s-]/", "", $url);
- $url = preg_replace("/[\s-]+/", " ", $url);
- $url = preg_replace("/[\s_]/", "-", $url);
- return urlencode($url);
- }
F.eks
id: 2
kunde: Hans Jørgen Hansen
kundeurl: hans-joergen-hansen (efter kørsel af ovenstående funktion)
= referencer/kunde/index.php?id=2&kundeurl=hans-joergen-hansen
Så laver du naturligvis et mod_rewrite som matcher ovenstående til id=? og kundeurl=?
RewriteRule ^referencer/kunde/([^/.]+)-([^/.]+)?$ index.php?id=$1&kundeurl=$2
Bliver til..
referencer/kunde/2-hans-joergen-hansen
Grunden til at jeg tager ID med, er fordi du formodentligt benytter auto increment og tænk nu hvis du får 2 kunder som hedder det samme?Ligesom her på UDV .. Ville være noget skidt hvis ID ikke var med i request, for 2 tråde kan jo sagtens have samme navn.. Nu ved jeg af gode grunde ikke hvad du har gang i, men et ID på kunden kunne jo sagtens være et kundenummer - og med autoID behøver man jo nødvendigvis ikke starte ved 1.
Håber du kan følge ovenstående, min forklaring har det med at blive ret rodet.. Ellers spørg bare. Edit: Har forsøgt at skære det så meget ud i pap, som jeg nu kan..
En lille tilføjelse, bedre send end aldrig.Hvis du tilføjer igennem $_POST .. Så benytter du bare funktionen niceurl foran.
Eksempel.
$kunde = $_POST['kundenavn'];
$kundeurl =
niceurl($_POST['kundenavn']);
Det giver jo, som jeg beskriver ovenover;
- echo $kunde; // Hans Jørgen Hansen
- echo $kundeurl; // hans-joergen-hansen
Håber du kan hitte ud af det, ellers spørg bare. Man lærer jo ikke særlig meget hvis man aldrig spørger om det man er i tvivl om..
Sådan har jeg bla. lært meget af det.
Udvikleren:
Der er ikke meget fornuft i at ændre et flere dages gammelt indlæg, bare fordi den står som sidst i spørgsmålet så må jeg ikke lave et nyt indlæg. Det giver ingen meningen at tråden ikke må komme op som "ny"?
Lav da hellere noget, hvis nu indlægget er x dage gammelt så må man gerne skrive et nyt?
Indlæg senest redigeret d. 22.04.2014 20:04 af Bruger #17610