Ahojte, začínam robiť s PHP a podarilo sa mi vytvoriť Registráciu a Login, len neviem, či je to bezpečné a či to nie je náchylné na SQL Injection a na Robotov... Preto, by som vás veľmi prosil, či by ste mi tieto doleuvedené kódy,neupravili, tak aby boli aspoň o štipku bezpečnejšie ;)
Ďakujem za pomoc!
S Pozdravom:
Majox ;)
Kódy:
Login:
<html>
<form action='login.php' method='POST'>
Nickname:<input type='text' name='uzivatel' maxlength='25'></br>
Heslo:<input type='password' name='heslo' maxlength='25'></br>
<input type='submit' name='Prihlásiť sa!'>
</form><p>
<a href='registracia.php'>Registrovať?</a>
</html>
Loginspracuj:
<?php
session_start();
$uzivatel = $_POST['uzivatel'];
$heslo = $_POST['heslo'];
if ($uzivatel&&$heslo)
{
$connect = mysql_connect ("localhost","root","") or die ("Nemôžem sa pripojiť!!");
mysql_select_db ("web") or die ("Nemôžem nájsť databázu!");
$query = mysql_query ("SELECT * FROM uzivatelia WHERE uzivatel='$uzivatel'");
$numrows = mysql_num_rows ($query);
if ($numrows!=0)
{
while ($row = mysql_fetch_assoc ($query) )
{
$dbuzivatel = $row ['uzivatel'];
$dbheslo = $row ['heslo'];
$aktivacia = $row ['aktivacia'];
if ($aktivacia=='0')
{
die ('Váš účet zatiaľ, nie je aktivovaný! Prosím, skontrolujte si E-mail!');
exit();
}
}
if ($uzivatel==$dbuzivatel&&md5 ($heslo)==$dbheslo)
{
echo "Úspešne ste sa prihlásili! Kliknite <a href='uzivatel.php'>sem</a>, pre vstup na úvodnú stránku!";
$_SESSION ['uzivatel']=$uzivatel;
}
else
echo "Nesprávne heslo!!";
}
else
die ("Zadaný uživateľ, neexistuje");
}
else
die ("Prosím, zadajte Nickname a heslo!")
?>
Registrácia:
<?php
function sterilize ($input, $is_sql = false)
{
$input = htmlentities($input, ENT_QUOTES);
if(get_magic_quotes_gpc ())
{
$input = stripslashes ($input);
}
if ($is_sql)
{
$input = mysql_real_escape_string ($input);
}
$input = strip_tags($input);
$input = str_replace("
", "\n", $input);
return $input;
}
echo "<h1>Registrácia</h1>";
$odoslat = strip_tags ($_POST ['odoslat']);
$nick = (strip_tags ($_POST ['nick']));
$heslo = strip_tags($_POST ['heslo']);
$opakovat = strip_tags($_POST ['opakovat']);
$datum = date ("Y-m-d");
$email = $_POST ['email'];
if ($odoslat)
{
$connect = mysql_connect ("localhost","root","");
mysql_select_db ("web");
$nickkontrola = mysql_query ("SELECT uzivatel FROM uzivatelia WHERE uzivatel='$nick'");
$count = mysql_num_rows ($nickkontrola);
if ($count!=0)
{
die ("Zadaný nick sa už používa!");
}
if ($nick&&$heslo&&$opakovat)
{
if ($heslo==$opakovat)
{
if (strlen($nick)>25)
{
echo "Nick použivateľa je príliš dlhý, prosím zadajte nick maximálne do 25 znakov!";
}
else
{
if (strlen($heslo)>25||strlen ($heslo)<6)
{
echo "Heslo musí mať od 6-25 znakov!";
}
else
{
//register
$heslo = md5 ($heslo);
$opakovat = md5 ($opakovat);
$randomcislo = rand(15236548,99563254);
$queryreg = mysql_query("INSERT INTO uzivatelia VALUES ('','$nick','$heslo','$email','$datum','$randomcislo','0')");
$posledneid = mysql_insert_id ();
// Poslanie aktivačného emailu
$adresa = $email;
$predmet = "Aktivácia Vášho účtu!";
$hlavicky = "From: Admin@adresa.eu";
// Mail adresa servera ktorú potom doplním! Doladiť!
$server = "mailhost.sheffield.ac.uk";
ini_set ("SMTP",$server);
$telo = "Ahoj $nick,\n\n
Vitaj, na našom portáli,pre prihlásenie je nutné aktivovať svoj účet. Pre aktivovanie klikni na doleuvedený link:
http://localhost/aktivacia.php?id=$posledneid&kod=$randomcislo\n\n
S Pozdravom:\n\n
Majox";
mail($adresa,$predmet,$telo,$hlavicky);
die ("Registrácia prebehla úspešne!");
}
}
echo "";
}
else
echo "Heslá sa nezhodujú!";
}
else
echo "Prosím, vyplnte všetky polia!";
}
?>
<html>
<form action='registracia.php' method='POST'>
<table>
<tr>
<td>
Nick:
</td>
<td>
<input type='text' name='nick' value="<?php echo $nick; ?>" maxlength='25'>
</td>
</tr>
<tr>
<td>
E-mail:
</td>
<td>
<input type='text' name='email' maxlength='50'>
</td>
</tr>
<tr>
<td>
Heslo:
</td>
<td>
<input type='password' name='heslo' maxlength='25'>
</td>
</tr>
<tr>
<td>
Heslo,ešte raz:
</td>
<td>
<input type='password' name='opakovat' maxlength='25' >
</td>
</tr>
</table>
<p><input type='submit' name='odoslat' value='Registrovať!'
</form>
</html>