Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie
Forum PHP.pl > Forum > Przedszkole
bulias
Witam wszystkich!
Na samymy początku napisze że jestem w te klocki cienki i moja wiedza o php sprawdza się do napisania prostego skryptu no i zainstalowania jakiegoś skryptu:) Mam oto taki skrypcik do logowania użytkowaników na stronie może na samym początku podam kod źródłowy a dopiero później napisze co nie działa smile.gif Myślę że wystarczy tylko sam skrypt odpowiedzialny za rejstrację smile.gif
rejstracja.php
Kod
<?
$mysql_host = "localhost";
$mysql_login = "tutaj_moj_login_do_bazy";
$mysql_haslo = "tutaj_jest_moje_haslo";
$mysql_baza = "baza";
$mysql_tabela = "tabel_mySQL";
$twoj_adres = "tutaj_adres_email";

$opcja = trim($_REQUEST["opcja"]);

if ($opcja=="test") {

  // **************************************************
  // ********** 1. sprawdzenie danych i dodanie uzytkownika
  // **************************************************

  $login = htmlspecialchars(stripslashes(trim($_POST["login"])), ENT_QUOTES);
  $haslo = htmlspecialchars(stripslashes(trim($_POST["haslo"])), ENT_QUOTES);
  $email = htmlspecialchars(stripslashes(trim($_POST["email"])), ENT_QUOTES);
  $imie = htmlspecialchars(stripslashes(trim($_POST["imie"])), ENT_QUOTES);

  if (strlen($login)<3 or strlen($login)>50
      or !eregi("^[a-zA-Z0-9_.]+$",$login)) { $blad++;
    echo "<span style=\"color:red;\">Login musi mieć od 3 do 50 znaków
    bez polskich liter i spacji!</span><br />";
  } else {
    if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
      if (mysql_select_db($mysql_baza)) {
       $wynik=mysql_query("SELECT * FROM $mysql_tabela WHERE login='$login'");
      } else echo "Nie można połączyć się z bazą";
      mysql_close($baza);
    } else echo "Nie można połączyć się z serwerem MySQL";
    if (mysql_num_rows($wynik)<>0) { $blad++;
      echo "<span style=\"color:red;\">Login już został przez kogoś użyty!.
      Zaproponuj inny!</span><br />";
    }
  }

  if (strlen($haslo)<6 or strlen($haslo)>50
     or !eregi("^[a-zA-Z0-9]+$",$haslo)) { $blad++;
    echo "<span style=\"color:red;\">Hasło musi mieć od 6 do 50 znaków
    bez polskich liter i spacji!</span><br />";
  }

  if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+.)+[a-z]{2,4}$",$email)) { $blad++;
    echo "<span style=\"color:red;\">E-mail nie został
    podany prawidłowo!</span><br />";
  }

  if ($blad==0) {
    $kod = uniqid(rand());
    $haslo = md5($haslo); // zaszyfrowanie hasla
    if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
      if (mysql_select_db($mysql_baza)) {
        $wynik = mysql_query("INSERT INTO $mysql_tabela
        VALUES('$login', '$haslo', '$kod', 1, NOW(), '$email', '$imie')");
      } else echo "Nie można połączyć się z bazą";
      mysql_close($baza);
    } else echo "Nie można połączyć się z serwerem MySQL";

    if ($wynik) {
$list="
Aby potwierdzic rejestracje kliknij w ciagu 48 godzin na adres:
[url=http://adres.pl/rejestracja.php?opcja=potwierdz&kod=$kod]http://adres.pl/rejestracja.php?opcja=potw...p;kod=$kod[/url]
Jezeli nie chcesz sie rejestrowac, zignoruj ten list.
";
      mail($email, "Rejestracja", $list, "From: <$twoj_adres>");
      echo "<p>Aby dokończyć proces rejestracji odbierz e-mail</p>";
    }
  } else $opcja="";
}

if ($opcja=="") {

  // **************************************************
  // ********** 2. formularz zakładania konta
  // **************************************************

echo <<<KONIEC
<form action="rejestracja.php" method="post">
<input type="hidden" name="opcja" value="test" />
<table>
<tr>
  <td>login:*</td>
  <td><input type="text" name="login" value="$login" /></td>
</tr>
<tr>
  <td>hasło:*</td>
  <td><input type="password" name="haslo" value="$haslo" /></td>
</tr>
<tr>
  <td>e-mail:*</td>
  <td><input type="text" name="email" value="$email" /></td>
</tr>
<tr>
  <td>imie i nazwisko:</td>
  <td><input type="text" name="imie" value="$imie" /></td>
</tr>
<tr>
  <td> </td>
  <td><input type="submit" value=" OK, rejestruję się!" /></td>
</tr>
</table>
</form>
KONIEC;
}


if ($opcja=="potwierdz") {
  // **************************************************
  // ********** 3. potwierdzenie rejestracji, uaktywnienie uzytkownika
  // **************************************************

  $kod = htmlspecialchars(stripslashes(trim($_GET["kod"])), ENT_QUOTES);
  if ($kod<>"") {
    if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
      if (mysql_select_db($mysql_baza)) {
        $wynik = mysql_query("DELETE FROM $mysql_tabela
          WHERE data<=DATE_SUB(NOW(),INTERVAL 2 DAY) and status=1");
        $wynik = mysql_query("UPDATE $mysql_tabela
          SET status='5', data=NOW() WHERE kod='$kod' and status=1");
        $wynik = mysql_query("SELECT * FROM $mysql_tabela
          WHERE kod='$kod' and status=5");
      } else echo "Nie można połączyć się z bazą";
      mysql_close($baza);
    } else echo "Nie można połączyć się z serwerem MySQL";
    if (mysql_num_rows($wynik)==1) {
      $dane = mysql_fetch_array($wynik);
      echo "<p>Dziękujemy. Rejestracja została zakończona poprawnie.</p>";
    }
  }
  if ($kod=="" or mysql_num_rows($wynik)<>1) {
    echo "<p>Rejestracja nie może zostać dokończona -
    sprawdź czy link jest poprawny!</p>";
  }
}



if ($opcja=="przypomnij") {

  // **************************************************
  // ********** 4. formularz przypominania danych
  // **************************************************

echo <<<KONIEC
<p>Wpisz login użyty podczas rejestracji.
Po chwili otrzymasz mailem nowe hasło.</p>
<form action="rejestracja.php" method="post">
<input type="hidden" name="opcja" value="wyslijhaslo" />
<table>
<tr>
  <td>login:</td>
  <td><input type="text" name="login" value="$login" /></td>
</tr>
<tr>
  <td> </td>
  <td><input type="submit" value=" przypomnij " /></td>
</tr>
</table>
</form>
KONIEC;
}


function haslo() {
  $min = 6; $max = 12;
  for($i=0;$i<rand($min,$max);$i++) {
    $znak=chr(rand(48,122));
    if (eregi("[0-9a-zA-Z]",$znak)) $haslo .= $znak;
    else $i--;
  }
  return $haslo;
}


if ($opcja=="wyslijhaslo") {

  // **************************************************
  // ********** 5. zmiana hasla i wyslanie go do uzytkownika
  // **************************************************

  $login = htmlspecialchars(stripslashes(trim($_POST["login"])), ENT_QUOTES);
  $hasloczytelne = haslo();
  $haslo = md5($hasloczytelne);
  if ($login<>"") {
    if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
      if (mysql_select_db($mysql_baza)) {
        $wynik = mysql_query("UPDATE $mysql_tabela
        SET haslo='$haslo' WHERE login='$login' and status=5");
        $wynik = mysql_query("SELECT * FROM $mysql_tabela
           WHERE login='$login' and status=5");
      } else echo "Nie można połączyć się z bazą";
      mysql_close($baza);
    }
    if (mysql_num_rows($wynik)==1) {
      $dane = mysql_fetch_array($wynik);
      $email = $dane["email"];
      $list="Oto przypominane haslo: $hasloczytelne";
      mail($email, "Przypomnienie hasla", $list,"From: <$twoj_adres>");
      echo "<p>Hasło zostało wysłane mailem...</p>";
    } else {
      echo "<p>Użytkownik o podanym loginie nie istnieje!</p>";
    }
  }
}
?>

I jest taki problem że dodaje do bazy użytkowanika ale nie wysyła kodu może ktoś ten skrypt przetestować i sprawdzić co jest nie tak ? Z góry wielkie dzienki smile.gif
Pzdr. Bulias
Rafał 40x
Napisz kod estetycznie to moze ci ktos pomoze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.