Witam. Chciałbym się was zapytać, czy ten skrypt jest bezpieczny:
1. Pod względem kodu
2. Pod względem sprawdzania danych
oraz czy będzie prawidłowo działał. Aktualnie sam tego sprawdzić nie mogę ponieważ nie mogę się połączyć przez www do bazy danych.
<?php
include('include/db.php');
$zapytanie = "SELECT COUNT(*) FROM admin WHERE login='$login'";
$zapytanie1 = "SELECT COUNT(*) FROM admin WHERE email='$email'";
if (!isset($_POST['login']) && empty($_POST['login'])) {
echo '<div align="center"><form action="/cpadmin_dodaj_admina" method="post"> Login:<br><input type="text" name="login" /><br><br>
email:<br><input type="text" name="email" /><br><br>
Hasło:<br><input type="password" name="haslo" /><br><br>
Potwierdź hasło:<br><input type="password" name="haslo2" /><br>
<input type="submit" value="Dodaj admina">
<input type="reset" value="Wyczyść">
</form></div>';
}
if(empty($_POST["login"]) || empty($_POST["haslo"]) || empty($_POST["haslo2"]) || empty($_POST["email"]) and
!isset($_GET["active"]) and
isset($_POST['login'])) {
echo '<div align="center">Nie wypełniono wszystkich pól.</div>'; }
if($_POST['haslo']!=$_POST['haslo2'])
{
echo '<div align="center">Podane hasła nie są identyczne.</div>'; }
if($zajete[0]!=0)
{
echo '<div align="center">Podana nazwa użytkownika jest już zajęta.</div>'; }
if($zajete1[0]!=0)
{
echo '<div align="center">Podany email jest zajęty przez innego użytkownika.</div>'; }
if(!$_POST["email"] || !preg_match("/^[-0-9a-zA-Z_\.]+@([-0-9a-zA-Z_\.]+\.)+([0-9a-zA-Z]){2,4}$/i", $_POST["email"])) {
echo '<div align="center">Podany email jest nieprawidłowy.</div>'; }
else
{
$zapytanie2 = "INSERT INTO `admin` (`login`, `haslo`, `email`, `access`) VALUES ('".$login."', '".$haslo."', '".$email."', '".$access."')";
echo '<div align="center">Konto administratora zostało założone.<br />W ciągu 10 minut użytkownik otrzyma emaila z następnymi instrukcjami.</div>'; $zapytanie3 = "SELECT `email` FROM `admin` ORDER BY `id` DESC";
$naglowki = "From: nansss@nportfolio.pl".PHP_EOL."Reply-To: nansss@nportfolio.pl".PHP_EOL."Content-type: text/plain; charset=utf-8";
$kod = str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890"); mail($email, 'Aktywacja konta na nportfolio.pl', '<br /><b>Witaj na nportfolio.pl!</b><br><br><br>Konto <b>'.$login.'</b> zostało zarejestrowane na podany adres e-mail.<br>W celu potwierdzenia rejestracji konta kliknij w poniższy odnośnik:<br><a href="http://nportfolio.pl/potwierdz&active='.$kod.'">http://nportfolio.pl/potwierdz&active='.$kod.'</a><br><br>Jeśli nie rejestrowałeś konta o nazwie <b>'.$login.'</b> po prostu zignoruj tego maila.<br><br><br>------<br>Wiadomość wygenerowana automatycznie<br>przez serwis nportfolio.pl', $naglowki); $zapytanie4 = "UPDATE admin SET klucz = ('".$kod."') WHERE access = 0";
}
?>
Zmiana:
<?php
include('include/db.php');
$zapytanie = "SELECT COUNT(*) FROM admin WHERE login='$login'";
$zapytanie1 = "SELECT COUNT(*) FROM admin WHERE email='$email'";
if (!isset($_POST['login'])) {
echo '<div align="center"><form action="/cpadmin_dodaj_admina" method="post"> Login:<br><input type="text" name="login" /><br><br>
email:<br><input type="text" name="email" /><br><br>
Hasło:<br><input type="password" name="haslo" /><br><br>
Potwierdź hasło:<br><input type="password" name="haslo2" /><br>
<input type="submit" value="Dodaj admina">
<input type="reset" value="Wyczyść">
</form></div>';
}
elseif(empty($_POST["login"]) || empty($_POST["haslo"]) || empty($_POST["haslo2"]) || empty($_POST["email"]) and
!isset($_GET["active"]) and
isset($_POST['login'])) {
echo '<div align="center">Nie wypełniono wszystkich pól.</div><meta http-equiv="Refresh" content="3; url=/cpadmin_dodaj_admina" />'; }
elseif($zajete[0]!=0)
{
echo '<div align="center">Podana nazwa użytkownika jest już zajęta.</div><meta http-equiv="Refresh" content="3; url=/cpadmin_dodaj_admina" />'; }
elseif($zajete1[0]!=0)
{
echo '<div align="center">Podany email jest zajęty przez innego użytkownika.</div><meta http-equiv="Refresh" content="3; url=/cpadmin_dodaj_admina" />'; }
elseif(!$_POST["email"] || !preg_match("/^[-0-9a-zA-Z_\.]+@([-0-9a-zA-Z_\.]+\.)+([0-9a-zA-Z]){2,4}$/i", $_POST["email"])) {
echo '<div align="center">Podany email jest nieprawidłowy.</div><meta http-equiv="Refresh" content="3; url=/cpadmin_dodaj_admina" />'; }
elseif($_POST['haslo']!=$_POST['haslo2'])
{
echo '<div align="center">Podane hasła nie są identyczne.</div><meta http-equiv="Refresh" content="3; url=/cpadmin_dodaj_admina" />'; }
else
{
$zapytanie2 = "INSERT INTO `admin` (`login`, `haslo`, `email`, `access`) VALUES ('".$login."', '".$haslo."', '".$email."', '".$access."')";
echo '<div align="center">Konto administratora zostało założone.<br />W ciągu 10 minut użytkownik otrzyma emaila z następnymi instrukcjami.</div>'; $zapytanie3 = "SELECT `email` FROM `admin` ORDER BY `id` DESC";
$naglowki = "From: nansss@nportfolio.pl".PHP_EOL."Reply-To: nansss@nportfolio.pl".PHP_EOL."Content-type: text/html; charset=utf-8";
$kod = str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890"); mail($email, 'Aktywacja konta na nportfolio.pl', '<br /><b>Witaj na nportfolio.pl!</b><br /><br /><br />Konto <b>'.$login.'</b> zostało zarejestrowane na podany adres e-mail.<br />W celu potwierdzenia rejestracji konta kliknij w poniższy odnośnik:<br /><a href="http://nportfolio.pl/potwierdz&active='.$kod.'">http://nportfolio.pl/potwierdz&active='.$kod.'</a><br><br>Jeśli nie rejestrowałeś konta o nazwie <b>'.$login.'</b> po prostu zignoruj tego maila.<br /><br /><br />------<br>Wiadomość wygenerowana automatycznie<br />przez serwis nportfolio.pl', $naglowki); $zapytanie4 = "UPDATE admin SET klucz = ('".$kod."') WHERE access = 0";
}
?>
Ten post edytował adrianozo 16.01.2010, 12:28:55