![]() |
|
|
|
#1 |
|
Medlem
Registrerad: 2000-04-30
Ort: Stockholm
Inlägg: 5 524
Lösningar: 1693 |
Metod för att kontrollera personnummer
Denna metod kontrollerar ett svenskt personnummer och returnerar true (1) om personnummret stämmer och false (0) om det inte stämmer.
Personnummret skall anges utan bindestreck. Demonstration finns här. Kod:
<?
function checkPnr($pnr)
{
if (strlen($pnr) != 10) die("Felaktigt angivet personnummer! Ange personnummret utan bindestreck, totalt 10 siffror.");
$n = 2;
// Räkna fram kontrollsumman
for ($i=0; $i<9; $i++)
{
$tmp = $pnr[$i] * $n;
($tmp > 9) ? $sum += 1 + ($tmp % 10) : $sum += $tmp;
($n == 2) ? $n = 1 : $n = 2;
}
// Lägg till sista siffran (kontrollsiffran), resultatet skall bli jämt tiotal, returnera true/false
return !( ($sum + $pnr[9]) % 10);
}
if (checkPnr("7410291234"))
{
echo "Korrekt personnummer!";
}
else
{
echo "Felaktigt personnummer!";
}
?>
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2002-07-19
Inlägg: 6
Lösningar: 0 |
Ytterligare kontroller är att rekommendera:
Om 3:e siffran är > 1 så är det ett organisationsnummer. I annat fall bör man kolla att det är ett giltigt datum. Svenska org. nr. använder samma algoritm för kontrollsiffror som personnummer. |
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2005-10-05
Inlägg: 1
Lösningar: 0 |
...men det finns organisationsnummer där 3:e siffran är 0 eller 1 eftersom enskilda firmor har sin ägares personnummer som organisationsnummer.
|
|
|
|
|
|
#4 |
|
Moderator
Registrerad: 2001-11-20
Ort: Stockholm
Inlägg: 3 841
Lösningar: 24 |
Jag har modifierat lite. Det verkar funka, men för säkerhets skull. Är det några fel här?
Kod:
if(preg_match("/^[0-9]{10}$/", $string)) {
$n = 2;
// Räkna fram kontrollsumman
for ($i=0; $i<9; $i++) {
$tmp = $string[$i] * $n;
($tmp > 9) ? $sum += 1 + ($tmp % 10) : $sum += $tmp;
($n == 2) ? $n = 1 : $n = 2;
}
return !(($sum + $string[9]) % 10);
} else {
return false;
}
__________________
bassebhu - din kompis bland kompisar Veckans snabel: "Om jag kunde, skulle jag ge dig Bire i present. Men han har för mycket fisk." Om du mot förmodan inte är nöjd med kompositionen av ovanstående inlägg, eller att det helt enkelt inte nådde upp till dina förväntningtar - var god: Rapportera till bassebhu Senast redigerad av bassebhu, 2006-01-12 klockan 00:11 |
|
|
|
|
|
#5 |
|
Medlem
Registrerad: 2012-03-23
Inlägg: 2
Lösningar: 0 |
Finns det något sätt att koppla det med någon sida för att kålla upp om person numret är giltigt och för att för att hindra pedofiler med fake konton ? är det lagligt att använda persunumer och kålla upp dem eller behöver jag betala för den känsten ?
|
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2006-11-24
Ort: Härnösand
Inlägg: 224
Lösningar: 0 |
Du kan annars använda dig Klarnas API lösning för kontrollera adressuppgifter och personnummer. Om du känner att du behöver ett lite mer säkert system.
|
|
|
|
|
|
#7 |
|
Medlem
Registrerad: 2012-03-23
Inlägg: 2
Lösningar: 0 |
Jag ringde PUL och dom sa att man får ej lagra personnummer och adress på sin database om sidan inte har grymt bra säkerhet och sedan sa dom att man kan göra en upplysning mot en sida när användarna skriver in sina uppgifter och att man hänvisar till dom som ska bli medlemmar att man tar info från personnummer för att se att det är verkligen du. helt skumt
|
|
|
|
|
|
#8 |
|
Forumvärd
Registrerad: 2003-08-26
Inlägg: 7 469
Lösningar: 645 |
ax5, vem ringde du, sa du? PUL är en lag, inte en myndighet. Du kan inte ringa PUL, och inte heller brottsbalken eller yttrandefrihetsgrundlagen. Ringde du möjligen Datainspektionen?
Jag hörde av naturliga skäl inte ditt samtal, men på det du säger låter det som deras förslag var att du skulle kontakta en tredje part för att verifiera att personnumret är korrekt och därefter ta bort personnumret. Med andra ord, inte lagra personnummer permanent.
__________________
Gameboy Genius - Foto: Gatukonst och elektronikporr Internklippning: 1) Snaggning av fångar. 2) Klippning frisörer emellan. |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|