napravio sam skriptu za registraciju na stranicu,
skripta je :
<?php
include "Postavke.php";
$nazivstranice = "Registracija - $nazivportala";
$opis_stranice = "$opisportala - Registruj te se odmah!";
$kljucne_rijeci_stranice = "$nazivportala, registracija, registrujse, korisnik, korisnici, zabava, druženje, profil";
include "vrh.php";
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<?php
if($_SESSION['prijavljen']== 1) {
header("Location:index.php"); exit;
} else {
if (!$_POST["SBunos"]) {
echo'
<table align="center" border="0" cellpadding="5" cellspacing="0">
<form action="" method="POST">
<tr>
<td align="right" class="malitext"><b>Korisničko ime: </b></td>
<td><input size="50" type="text" name="korisnickoime" /></td>
</tr>
<tr>
<td align="right" class="malitext"><b>Lozinka: </b></td>
<td><input size="50" type="password" name="lozinka" /></td>
</tr>
<tr>
<td align="right" class="malitext"><b>E-mail: </b></td>
<td><input size="50" type="text" name="email" /></td>
</tr>
<tr>
<td align="right" class="malitext"><b>Ja sam: </b></td>
<td align="left"><select name="spol">
<option value="-1">Odaberi spol:</option>
<option value="muško">muško</option>
<option value="žensko">žensko</option></select>
</td>
</tr>
<td></td>
<td align="left"><input type="submit" name="SBunos" value="Registruj se!" /></td>
</tr>
</form>
</table>';
} else {
$korisnickoime = "$_POST[korisnickoime]";
$lozinka = "$_POST[lozinka]";
$email = "$_POST[email]";
$spol = "$_POST[spol]";
$provjera_korisnickoime = mysql_query (" SELECT * FROM korisnici WHERE korisnickoime ='".$korisnickoime."' ") or die ("nije izvršena provjera u bazi");
$provjera_emaila = mysql_query (" SELECT * FROM korisnici WHERE email ='".$email."' ") or die ("nije izvršena provjera u bazi");
if (empty($korisnickoime)) {
echo'<p class="malitext">Niste upisali korisničko ime! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif (mysql_num_rows($provjera_korisnickoime)>0) {
echo'<p class="malitext">Korisničko ime ' ,$korisnickoime, ' već postoji u bazi! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif (preg_match('/[-!#$%&\'*+\\.\/=?^`{|}~]/', $korisnickoime)) {
echo'<p class="malitext">Upišite validno korisničo ime (samo slova, brojevi i _crte)! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif((strlen($korisnickoime)<=2)) {
echo'<p class="malitext">Korisničko ime nemože sadržavati manje od 2 znaka! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif((strlen($korisnickoime)>15)) {
echo'<p class="malitext">Korisničko ime nemože sadržavati više od 15 znakova! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif (empty($lozinka)) {
echo'<p class="malitext">Niste upisali lozinku! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif((strlen($lozinka)<=4)) {
echo'<p class="malitext">Lozinka nemože sadržavati manje od 4 znaka! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif((strlen($lozinka)>50)) {
echo'<p class="malitext">Lozinka nemože sadržavati više od 50 znakova! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif (empty($email)) {
echo'<p class="malitext">Niste upisali e-mail! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif (mysql_num_rows($provjera_emaila)>0) {
echo'<p class="malitext">E-mail ' ,$email, ' već postoji u bazi! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif (!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email)) {
echo'<p class="malitext">Niste upisali ispravnu e-mail adresu! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif((strlen($email)>100)) {
echo'<p class="malitext">E-mail adresa nemože sadržavati više od 100 znakova! <a href="javascript:history.back()">Idi nazad</a></p>';
} elseif (in_array($spol, array(-1))) {
echo'<p class="malitext">Niste odabrali spol! <a href="javascript:history.back()">Idi nazad</a></p>';
} else {
$mb5_lozinka = md5("$lozinka");
$imebaze="INSERT INTO korisnici (korisnickoime, lozinka, email, spol)
VALUES ('$korisnickoime', '$mb5_lozinka', '$email', '$spol')";
if (mysql_query($imebaze)) {
echo'<p class="malitext">Uspješno ste se registrirali! Na vaš e-mail poslan je aktivacijski link!</p>';
} else {
echo'<p class="malitext">Nastala je greška pri registraciji! <a href="javascript:history.back()">Idi nazad</a></p>';
}
}
}
}
?>
</td>
</tr>
</table>
<?php
include "dno.php";
?>
e moželi mi neko reći kako da napravim kad se korisnik registruje da mu na mail se pošalje link za aktivaciju.
negdje na internetu sam čito da se može napraviti vako:
0) pokrenes session i korisnikove podatke spremis u session (a ne bazu!)
1) generiras jedinstveni id sa funkcijom "unique_id" (ili tako nesto)
2) spremis taj id u $_SESSION
3) posaljes email sa linkom tako da u query stringu imas taj id (npr. http://www.example.com/activation.ph...e82NAe2238sdAS)
4)u activation.php (ili u kojoj ces vec skripti to procesirati) usporedis to sta imas u get parametru ($_GET['activation_id']) i to sta imas u session-u ($_SESSION['activation_id']). Dakle,
if (isset(_GET['activation_id'] && isset($_SESSION['activation_id'])) {
// obrada aktivacije
if ($_GET['activation_id'] === $_SESSION['activation_id']) {
//aktivacija je uspjesna, podatke iz session-a mozes spremiti u bazu
}
}
Jako elegantno rjesenje jer se ne moras brinuti oko toga sta sa neaktiviranim korisnicima (nakon isteka session-a se ti podaci obrisu).
Samo ja kako god sam ovo probo da uradim ne uspijevam, molio bih vas za poć. Hvala