Cytat
Notice: Undefined index: userEmail in D:\Program Files\WebServ\httpd\register.php on line 24
Notice: Undefined index: active in D:\Program Files\WebServ\httpd\register.php on line 52
To wyskakuje po dodaniu kodu:
Wiem, że funkcja email nie będzie działała na localhost, ale konto i tak powinno tworzyć.
Całość koduje po edycji:
<?php
include_once('templates/header.php');
include_once("config/db.php");
//Flirtujemy dane.
$haslo = md5($_POST['haslo']);
//Sprawdzamy czy użytkownik podał poprawne dane.
if (isset($_POST['submit'])) { } else {
echo "Nazwa użytkownika zawiera niedozwolone znaki!"; }
} else {
echo "Hasło zawiera niedozwolone znaki!"; }
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_POST["userEmail"])) { } else {
echo "Email zawiera niedozwolone znaki!"; }
if (empty($login)) die ('Pole z nazwą użytkonika nie może być puste!'); if (empty($haslo)) die ('Pole z haslem nie może być puste!'); if (empty($email)) die ('Pole z emailem nie może być puste!');
$db = mysql_query("SELECT * FROM users WHERE u_name='$_POST[login]' "); if (!$_POST['login'] OR !$_POST['haslo'] OR !$_POST['email']) {
print "Nie wypełniono wszystkich pól formularza."; print "Podana nazwa użytkownika jest już zajęta."; } else {
$_POST["haslo"]=md5($_POST["haslo"]); $actCode=str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890"); $headers="MIME-Version: 1.0\r\n";
$headers.="Content-type: text/html; charset=iso-8859-2\r\n";
$content="<html><head><title>Aktywacja Konta</title</head>
<body>
Aby aktywować konto musisz kliknąć poniższy link aktywujący:<br>
<a href=\"http://twojastrona.com/register.php?active=".$actCode."\"> <a href="http://twojastrona.com/register.php?active=".$actCode."" target="_blank">http://twojastrona.com/register.php?active...;actCode."</a> </a><br></body></html>";
mail($_POST["email"], "Link Aktywacyjny", $content, $headers); mysql_query("INSERT INTO users (login, haslo, email, active_key) VALUES('$_POST[login]', '$_POST[haslo]', '$_POST[email]', '$actCode')"); mysql_query("INSERT INTO users (login, haslo, email, active_key) VALUES('$_POST[login]', '$_POST[haslo]', '$_POST[email]', '$actCode')") or
die('BŁĄD:'.mysql_error()); print"Na podany adres emailowy został wysłany klucz aktywacyjny."; }
}
elseif($_GET["active"])
{
mysql_query("UPDATE users SET active=1 WHERE active_key='$_GET[active]' "); {
print"Twoje konto zostało aktywowane."; }
else
{
print"Podany kod aktywacyjny jest nieprawidłowy."; }
}
}
?>
<form action="register.php" method="post">
<input type="hidden" name="submit" value="true">
Nazwa <input type="text" name="login" maxlength="20"><br>
Hasło <input type="password" name="haslo" maxlength="30"><br>
Podaj E-Mail <input type="text" name="email" maxlength="64"><br>
<input type="submit" value="Rejestracja">
</form>
<?php include_once('templates/footer.php'); ?>
Nie wyskakuje error, a co do mieszania HTML i PHP to HTML będzie potem w oddzielnym pliku.