Avatar billede tif12345 Nybegynder
25. maj 2005 - 17:29 Der er 4 kommentarer og
1 løsning

Data via en form til db, ændring af tegn i dataen efter sendt

Jeg har en ganske normal form, hvor jeg indtaster data, denne ser sådan her ud:
<input type=text name=name size=40>

"name" ender i db ved at formen sendes videre til addname.php når der trykkes på SEND.

addcheat.php - ser således ud:
$query="INSERT INTO data (id, name)
VALUES ('','$name'))";
Der er ingen ben i det, MEN HER ER YDERLIGERE HVAD JEG ØNSKER der skal ske, når man indtaster data og sender det til DB.

Jeg vil gerne ha at "name" bliver tilføjet til endnu en kolonne, lad os bare kalde den "shortname", men i denne kolonne, fjernes alle tegn, mellemrum og 'store bogstaver gøres til små', således at min query kommer til at se sådan her ud;

$query="INSERT INTO data (id, name, shortname)
VALUES ('','$name',$shortname'))";

Men før at shortname tilføjes, går jeg næsten ud fra der skal køres noget str_replace(?) på "name".

Er der nogen nem måde at gøre dette på? Hvordan kan de gøres?
Avatar billede angam Nybegynder
25. maj 2005 - 17:34 #1
Brug denne:

<?

$name = "Anders and & Co.";

$name = preg_replace('/[^a-z0-9]/', '', strToLower($name));

die($name);

?>
Avatar billede angam Nybegynder
25. maj 2005 - 17:35 #2
Først konverteres alle tegn til småt (det er der ingen ben i), så erstattes alle tegn der ikke er enten a-z eller 0-9 med '' (blank) - såre simpelt :-)
Avatar billede tif12345 Nybegynder
25. maj 2005 - 19:09 #3
Ok, vil prøve at teste dit forslag ved første mulighed..

Men jeg vil gerne ha' at det originale "name", som bliver indtastet i formen, ryger i "name" kolonnen i DB og det der bliver "manipuleret" med ryger i en anden kolonne fx "shortname"..

Men bare lige for at være sikker på hvad din funktion udfører, ville det så virke på følgende måde?
ORG name: "Pete'r & .Pet:E" bliver til, shortname: "peterpete"?
Avatar billede tif12345 Nybegynder
25. maj 2005 - 21:38 #4
Du behøver ikke svare på det sidste, kan se at din funktion gør hvad jeg vil ha' at den skal gøre :)
Avatar billede angam Nybegynder
26. maj 2005 - 07:31 #5
Således som:

$shortname = preg_replace('/[^a-z0-9]/', '', strToLower($name));
$query="INSERT INTO data (id, name, shortname) VALUES ('','$name', '$shortname')";

(fjernede en overskydende parantes fra din SQL)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester