<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Fiksitud_php_kood_id-kaardi_juhendist</id>
	<title>Fiksitud php kood id-kaardi juhendist - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Fiksitud_php_kood_id-kaardi_juhendist"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Fiksitud_php_kood_id-kaardi_juhendist&amp;action=history"/>
	<updated>2026-10-29T14:26:51Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Fiksitud_php_kood_id-kaardi_juhendist&amp;diff=12905&amp;oldid=prev</id>
		<title>Tammet: Uus lehekülg: &#039;Id-kaardi info välja parsimiseks kasuta alltoodud muutustega varianti id-kaardi juhendist: kaldkriipsude asemel väljade vahel koma , ja väljade järjestus ka hoopis teine.  ph...&#039;</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Fiksitud_php_kood_id-kaardi_juhendist&amp;diff=12905&amp;oldid=prev"/>
		<updated>2015-11-25T07:06:08Z</updated>

		<summary type="html">&lt;p&gt;Uus lehekülg: &amp;#039;Id-kaardi info välja parsimiseks kasuta alltoodud muutustega varianti id-kaardi juhendist: kaldkriipsude asemel väljade vahel koma , ja väljade järjestus ka hoopis teine.  ph...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Id-kaardi info välja parsimiseks kasuta alltoodud muutustega varianti id-kaardi juhendist: kaldkriipsude asemel väljade vahel koma , ja väljade järjestus ka hoopis teine.&lt;br /&gt;
&lt;br /&gt;
php installimiseks ütle eelnevalt &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Muudetud php parser siis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
header (&amp;quot;Content-Type: text/html; charset=utf-8&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
// Get user information obtained by Apache from the Estonian ID card.&lt;br /&gt;
// Return list [last_name,first_name,person_code] or False if fails. &lt;br /&gt;
&lt;br /&gt;
function get_user () {&lt;br /&gt;
  // get relevant environment vars set by Apache&lt;br /&gt;
  // SSL_CLIENT_S_DN example:&lt;br /&gt;
  //  /C=EE/O=ESTEID/OU=authentication/CN=SMITH,JOHN,37504170511/&lt;br /&gt;
  //  SN=SMITH/GN=JOHN/serialNumber=37504170511&lt;br /&gt;
  $ident=getenv(&amp;quot;SSL_CLIENT_S_DN&amp;quot;);  &lt;br /&gt;
  $verify=getenv(&amp;quot;SSL_CLIENT_VERIFY&amp;quot;);&lt;br /&gt;
  //echo $ident;&lt;br /&gt;
  //echo $verify;&lt;br /&gt;
  //echo &amp;quot;&amp;lt;p&amp;gt;&amp;quot;;&lt;br /&gt;
  //return True;&lt;br /&gt;
  // check and parse the values&lt;br /&gt;
  if (!$ident || $verify!=&amp;quot;SUCCESS&amp;quot;) return False;&lt;br /&gt;
  $ident=certstr2utf8($ident); // old cards use UCS-2, new cards use UTF-8&lt;br /&gt;
  //if (strpos($ident,&amp;quot;/C=EE/O=ESTEID&amp;quot;)!=0 &amp;amp;&amp;amp; ) return False;&lt;br /&gt;
  $ps=strpos($ident,&amp;quot;,SN=&amp;quot;);&lt;br /&gt;
  $pg=strpos($ident,&amp;quot;,GN=&amp;quot;);&lt;br /&gt;
  $pc=strpos($ident,&amp;quot;serialNumber=&amp;quot;);&lt;br /&gt;
  if (!$ps || !$pg) return False;&lt;br /&gt;
  $pse=strpos($ident,&amp;quot;,&amp;quot;,$ps+1);&lt;br /&gt;
  $pge=strpos($ident,&amp;quot;,&amp;quot;,$pg+1);&lt;br /&gt;
  $pce=strpos($ident,&amp;quot;,&amp;quot;,$pc+1); &lt;br /&gt;
  $res=array(substr($ident,$ps+4,$pse-($ps+4)), &lt;br /&gt;
             substr($ident,$pg+4,$pge-($pg+4)), &lt;br /&gt;
             substr($ident,$pc+13,11));&lt;br /&gt;
  return $res;&lt;br /&gt;
}  &lt;br /&gt;
&lt;br /&gt;
// Convert names from UCS-2/UTF-16 to UTF-8.&lt;br /&gt;
// Function taken from help.zone.eu.&lt;br /&gt;
&lt;br /&gt;
function certstr2utf8 ($str) {&lt;br /&gt;
  $str = preg_replace (&amp;quot;/\\\\x([0-9ABCDEF]{1,2})/e&amp;quot;, &amp;quot;chr(hexdec(&amp;#039;\\1&amp;#039;))&amp;quot;, $str);       &lt;br /&gt;
  $result=&amp;quot;&amp;quot;;&lt;br /&gt;
  $encoding=mb_detect_encoding($str,&amp;quot;ASCII, UCS2, UTF8&amp;quot;);&lt;br /&gt;
  if ($encoding==&amp;quot;ASCII&amp;quot;) {&lt;br /&gt;
    $result=mb_convert_encoding($str, &amp;quot;UTF-8&amp;quot;, &amp;quot;ASCII&amp;quot;);&lt;br /&gt;
  } else {&lt;br /&gt;
    if (substr_count($str,chr(0))&amp;gt;0) {&lt;br /&gt;
      $result=mb_convert_encoding($str, &amp;quot;UTF-8&amp;quot;, &amp;quot;UCS2&amp;quot;);&lt;br /&gt;
    } else {&lt;br /&gt;
      $result=$str;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return $result;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//  Actual script to run&lt;br /&gt;
&lt;br /&gt;
$user=get_user();&lt;br /&gt;
if (!$user) echo (&amp;quot;Authentication failed.&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
  echo &amp;quot;Last name: &amp;quot; . $user[0] . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
  echo &amp;quot;First name: &amp;quot; . $user[1] . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
  echo &amp;quot;Person code: &amp;quot; . $user[2] . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tammet</name></author>
	</entry>
</feed>