API לאימות מספר ת.ז.
-
@eliyahu
בנוסף האימות ת.ז. של ימות עובד על פי תרגיל מסויים ככה שאפשר לעבוד עליו,
לדוג' בשל ימות תוכל להכניס ת.ז. 326666666 וזה יהיה תקין!! -
@פיסטוק-פרווה
יש לך טעות בהבנה איך זה עובד
הבדיקה האם תז תקינה או לא זה לא מול מאגר של מספרי זהות אלא זה עובד כך
בכל תז הספרה האחרונה היא "ספרת ביקורת".
כלומר, המספר המקורי של תעודת הזהות הוא ללא הספרה האחרונה. הספרה האחרונה היא תוספת על המספר המקורי. וזה בשביל לבדוק שהמספר באמת תקין.
יש כלל שקובע על כל מספר מה הספרה האחרונה שיכולה להיות לו
אם למשל המספר המקורי הוא 22222222 אז הספרה האחרונה חייבת להיות 2.
כך שמי שיקיש 222222223 ישמע "תז שהקשתם אינה תקינה" -
@eliyahu
נכון, וזה מה שהתכוונתי התרגיל הוא תרגיל לבדיקת ספרת הביקורת אם היא נכונה.
הבעייה זה שאפשר להקיש ת.ז. שאיננה קיימת כמו 774770770 והיא תהיה תקינה כי ספרת הביקורת שלה תקינה... -
@פיסטוק-פרווה אני לא מכיר מישהו (חוץ ממשרד הפנים) שיש לו דרך לבדוק על תז אם היא קיימת
-
@eliyahu
בזה אולי אתה צודק, רק שלפי איך שזה נראה אין היום ת.ז. בישראל מעל 330000000 -
אבל יש מספר תושב של כל העולים מחו"ל שלא עשו אזרחות [אלפי משפחות חרדיות כאלה יש] וזה מתחיל ב700000000 וגם מספרי ביטוח לאומי שהנ"ל שמתחילים ב500000000
וכל אלו אם לא תיתן להכניס מספר מעל 33000000 הם לא יצליחו להיכנס[אגב, ת.ז. יש גם בקידומת 340000000
-
פוסט זה נמחק! -
@liy קראת את מה שכתוב בלינק שהבאת?
-
מי שרוצה זה קוד שבודק את התעודת זהות האם תקין
ב php<?php $id = $_GET["id"]; $the_id = str_split($id); for ($i=9; count($the_id) < $i;) { array_unshift($the_id,0); } $plus = 1; $all = 0; for ($i=0; $i < 9; $i++) { $sum = $the_id[$i] * $plus; if($sum > 9){ $a = str_split($sum); $al = $a[0] + $a[1]; $sum = $al; } $all += $sum; if ($plus == 1) { $plus = 2; } else { $plus = 1; } } $o = $all % 10; if ($o == 0) { $ok = "its ok"; }else{ $ok = "wooops"; } echo $ok; ?>
ב javascript
<!DOCTYPE html> <html lang="he"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script type="text/javascript"> function LegalTz() { var id = document.getElementById("input").value; var id_ = Array.from(String(id), Number); for (let index = 9; id_.length < index;) { id_.unshift(0); } var myBol = true; var sum = 0; var zzz; for (let i = 0; i < id_.length; i++) { if (myBol == true) { zzz = id_[i] * 1; myBol = false; } else { zzz = id_[i] * 2; myBol = true; } if (zzz > 9) { var ss = Array.from(String(zzz.toString()), Number); zzz = ss[0] + ss[1]; } sum = sum + zzz; } if (sum % 10 > 0) { $(".dd").css("background-color", "red"); } else { $(".dd").css("background-color", "green"); } } </script> <style> .dd { height: 40px; width: 60px; } </style> </head> <body> <input id="input" type="number" /> <button onclick="LegalTz()">בדוק</button> <div class="dd"></div> </body> </html>
-
@bc98400 איתגרת אותי לכתוב את זה קצר יותר ב-PHP:
<?php $count = 0; foreach( str_split( str_pad( $_GET["id"], 9 , '0', STR_PAD_LEFT ) ) as $k => $v ){ $count += $v > 8 ? $v : ($v * ( $k % 2 ? 2 : 1 )) % 9; } echo $count % 10 ? 'no' : 'ok';