Ti mund ti transferosh fjalëkalimet siç i ke në access por nuk rekomandohet që të hidhen në databazë si tekst sepse mund të lexohen shumë kollaj nga njerëz të tjerë që mund të kenë akses në DB. Prandaj fjalëkalimet shifrohen/kriptohen me një funksion si MD5() ose SHA1(). Nuk ka funksione për zbërthimin e këtyre shifrimeve ose mund të ketë por duhet me vite të tëra për të gjetur fjalëkalimin.
MySql rekomandon të përdorësh funksionin sha1() - US Secure Hash Algorithm 1. Ky funksion merr një fjalekalim si tekst dhe e fsheh atë në 40 shifra hex.
P.sh. sha1("edi2004") kriptohet në kodin 25fc95e4a4e345d89315cef4a075d00852473525
Në faqen PHP kur një person të shkruajë fjalëkalimin edi2004, ti do përdorësh funksionin sha1() të PHP për të gjetur hash dhe pastaj të shikosh nqs ai hash ekziston në databazë.
Ja një shëmbull:
Në MySql krijojmë këtë tabelë:
Kodi:
CREATE TABLE `llogaria` (
`id` int(11) NOT NULL auto_increment,
`emri` varchar(40) NOT NULL default '',
`fjalekalimi` varchar(40) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
Kjo do ketë 3 kolona: id, emri, fjalekalimi
id e fut vetë DB ndërsa emrin dhe fjalëkalimin do ta hedhim ne.
Për të shtuar një llogari të re, do përdorësh këtë sintaksë:
Kodi:
INSERT INTO `fjalekalim` (emri, fjalekalimi) VALUES ('Edi', sha1('edi2004'))
Pra, tekstin që nxjerr nga MS Access duhet ta kthesh në atë formë dhe pastaj dërgoja MySql me PhpMyAdmin.
Tani DB do ketë këtë informacion:
Kodi:
id emri fjalekalimi
1 edi 25fc95e4a4e345d89315cef4a075d00852473525
Pastaj nga faqja e identifikimit në PHP do vendosësh kod të tillë:
Kodi PHP:
// ...
$emri = $_POST['emri'];
$fjalekalimi = sha1( $_POST['fjalekalimi'] );
$rezultati = mysql_query("SELECT * FROM llogaria WHERE username='$emri' AND password='$fjalekalimi' ");
if( mysql_num_rows($rezultati) == 1 )
{
echo "Mire se erdhe $emri!";
}
else
{
echo "Emri dhe fjalekalimi janë të gabuara!";
}
// ....
Për të printuar diçka nga MySql mund të përdorësh diçka të ngjashme me kodin më poshtë. Kjo do printojë të gjithë rreshtat e tabelës llogaria që u përmend më lart në një tabelë në HTML.
Kodi PHP:
<?php
mysql_connect("localhost", "emri_mysql", "fjalekalimi_mysql") or
die("Nuk mund te lidheshim: " . mysql_error());
mysql_select_db("db_ime");
$rezultati = mysql_query("SELECT id, emri FROM llogaria");
echo '<table><tr><td>id</td><td>emri</td>';
while ($rreshti = mysql_fetch_array($rezultati)) {
echo '<tr><td>' . $rreshti['id'] . '</td><td>' . $rreshti['emri'] . '</td></tr>';
}
echo '</table>';
mysql_free_result($rezultati);
?>
Krijoni Kontakt