Avancerad validering av egna fält?

Här kan du ställa frågor om problem med och drift av phpBB 3 (3.0.0 eller senare). Det är här du bör skapa en tråd om du har ett problem, vill ställa en fråga och vill ha ett svar. Gäller det något annat, var vänlig bläddra nedåt på sidan.

Moderatorer: Moderatorgrupp, Supportgrupp

Kategoriregler
Här kan du ställa frågor om problem med och drift av phpBB 3 (3.0.0 eller senare). Det är här du bör skapa en tråd om du har ett problem, vill ställa en fråga och vill ha ett svar. Gäller det något annat, var vänlig bläddra nedåt på forumindex.

Klicka här för att se våra allmänna forumregler.
Skriv svar
troxy
Ny medlem
Ny medlem
Inlägg: 5
Blev medlem: 2007-06-22 17:31
Svar: 0

Avancerad validering av egna fält?

Inlägg av troxy »

Hejsan, vi är en förening som har tänkt att börja använda PhpBB3 som bas för vårt medlemsregister.
Eftersom vi ingår i en statlig organisation så måste vi även samla in personnummer på alla medlemmar.
Nu undrar jag hur man enklast gör för att lägga till ett obligatoriskt fält för personnummer som sedan valideras?
Jag har redan en PHP-funktion för att validera svenska personnummer, frågan är bara hur jag enklast integrerar den i PhpBB3.

Tacksam för svar!
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

Till att börja med måste du göra tillägg i databasen.
Antingen lägga till ett fält för personnummer i phpbb_users tabellen eller skapa en ny tabell för personnummer.

Sen måste du ändra i filerna
  • includes/ucp/ucp_register.hph
    styles/prosilver/template/ucp_register.html
    language/SPRÅK/ucp.php
För att få in personnumret.

Sen ska antagligen admin kunna se personnummret också? Eller räcker det om admin kan se det med phpMyAdmin? Ska användaren se sitt personnummer i sin profil? Kunna ändra om han/hon skrivit fel?

Jag är för trött just nu för att komma med några mer exakta förslag, men det är en början.

/J
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg av Kail »

Med risk för att framstå som ett smartass, men har ni tillstånd av datainspektionen till detta? Jag är ganska säker på att personnummer är en personlig uppgift som vid databehandling regleras av PUL.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
troxy
Ny medlem
Ny medlem
Inlägg: 5
Blev medlem: 2007-06-22 17:31
Svar: 0

Inlägg av troxy »

Just nu har jag skapat ett "Custom Profile Field" för personnummer, (samt gatuadress, telefonnummer mm.)
Går det att binda PHP-funktionen till ett sådant fält?
Eller måste jag hårdkoda fältet istället?

Kail, det är bra att du påpekar PUL. Det finns speciella föreskrifter för just medlemsregister för ideella föreningar.
Vid själva registreringen så upplyser vi personen ifråga om att dennes personuppgifter lagras i vår databas, och att uppgifterna även redovisas till tredje part.

Personligen så tycker jag att kravet på personnummer är overkill. Men som sagt, det är Sverok som börjat kräva detta på senare tid, vilket vi tvingas följa om vi ska erhålla bidrag.
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg av Kail »

Jo jag vet, är själv involverad i en liten rollspelsförening! :)

troxy, jag tror du skulle göra många saker enklare om du använder Drupal för detta istället för phpBB.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

Om du väljer att använda phpBB istället för Drupal, så går det att koppla det till din "Custom Profile Field" för personnummer.

Det du behöver göra är att öppna language/SPRÅK/ucp.php
Leta upp

Kod: Markera allt

// Common language entries
$lang = array_merge($lang, array(
Lägg till efter ex

Kod: Markera allt

	'FEL_PERSONNUMMER' => 'Ditt personnummer verkar inte stämma',
Gör detta för varje språk du har installerat.
Öppna includes/ucp/ucp_register.php
Leta upp

Kod: Markera allt

			// Replace "error" strings with their real, localised form
Lägg till innan

Kod: Markera allt

$person_nummer = request_var('pf_personnummer', '');
if (!sizeof($error))
{
	Din personnummerkoll här

	if(personnummer == fel)
	{
		$error = 'FEL_PERSONNUMMER';
	}
}
förutsatt att ditt fält heter personnummer. Annars får du byta ut den delen, men pf_ måste vara kvar.

/J
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg av Kail »

Kan användas för att validera personnummer:
http://www.phpportalen.net/viewtopic.php?t=57601
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
troxy
Ny medlem
Ny medlem
Inlägg: 5
Blev medlem: 2007-06-22 17:31
Svar: 0

Inlägg av troxy »

Sådär, nu har jag fått det att fungera perfekt! Tack för hjälpen!!
Först så la jag till PHP-funktionen för validering i classen "custom_profile" (functions_profile_fields.php).
Sen så skapade jag språksträngen "PERSNO_INVALID" som innehåller felmeddelandet för personnummer.
Och till sist själva kontrollen i upc_register.php:

Kod: Markera allt

// Validera svenskt personnummer
if(!$cp->validate_persno(request_var('pf_persno', ''))) {
	$error[] = $user->lang['PERSNO_INVALID'];
}
Men det är inte helt klart än.
Jag måste fortfarande ändra i filen där man editerar sin profil.
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

Lägg in din funktion i includes/ucp/ucp_profile.php, direkt efter

Kod: Markera allt

					// validate custom profile fields
					$cp->submit_cp_field('profile', $user->get_iso_lang_id(), $cp_data, $cp_error);
/J
Användarens profilbild
Kjell
Hedersmedlem
Hedersmedlem
Inlägg: 4510
Blev medlem: 2006-11-11 23:35
Svar: 0

Inlägg av Kjell »

Bara en liten notis.....
DI vill att man ansöker om lagring av personnummer i dataformat och per databas....
Jag bryr mig inte personligen, men kan vara bra att veta för er som förening :P
/Kjelle KonsultPoolen * Facebook * Twitter * MODx Verkstan
Brukar sova lite efter 29:e timman och Ingen support via PM!
Skriv svar

Vilka är online

Användare som besöker denna kategori: 11 och 0 gäster