Poniżej zamieszcam skrypt potwierdzenia rejestracji - aktywacji konta. I niby wszystko działa dobrze ale po rejestracji wysłany mail, nie zawiera linka do aktywacji (jest pusty). Co jest nie tak w tym kodzie? Dodam że dane do tabeli mysql są dodawane poprawnie.
<?php
if($_POST["regEnd"]=="true")
{
$query=mysql_query("SELECT * FROM users WHERE u_name='$_POST[userName]' "); if(!$_POST["userName"] OR !$_POST["userPasswd1"] OR !$_POST["userPasswd2"] OR !$_POST["userEmail"])
{
print"Nie wypelniono wszystkich pól"; }
elseif($_POST["userPasswd1"]!=$_POST["userPasswd2"])
{
print"Podane hasła nie sa takie same"; }
elseif (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_POST["userEmail"])) {
print"Podany email nie jest prawidłowy"; }
elseif(strlen($_POST["userName"])<4 OR
strlen($_POST["userPasswd1"])<4
) {
print"Nazwa i hasło muszą miec przynajmniej 4 znaki"; }
{
print"Podana nazwa uzytkownika jest juz zajęta. Wybierz inna"; }
else
{
$_POST["userPasswd1"]=SHA1($_POST["userPasswd1"]);
$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 na stronie XXXX musisz kliknąć poniższy link aktywujący:<br>
Dziękuje admin strony XXXX</body></html>";
mail($_POST["userEmail
"], "Link Aktywacyjny
", $content, $headers); mysql_query("INSERT INTO users (u_name, u_password, u_email, u_activation_key) VALUES('$_POST[userName]', '$_POST[userPasswd1]', '$_POST[userEmail]', '$actCode')");
print"Zostales zarejestrowany pomyslnie, jednak ta strona wymaga aktywacji kont przez email. Na podany adres emailowy zostal wyslany klucz aktywacyjny. Email powinien zostac wyslany w ciagu kilku minut, jesli tak sie nie stanie skontaktuj sie z administratorem strony.";
}
}
elseif($_GET["active"])
{
mysql_query("UPDATE users SET u_active=1 WHERE u_activation_key='$_GET[active]' ");
if(mysql_affected_rows()==1)
{
print"Aktywacja ukonczona pomyślnie. Możesz już korzystać z naszego serwisu.";
}
else
{
print"Podano nieistniejący kod aktywacyjny.";
}
}
else
{
include"form.inc";
}
?>
Tabela sql:
CREATE TABLE users (
u_id int(11) NOT NULL AUTO_INCREMENT,
u_name varchar(32) NOT NULL DEFAULT '',
u_password varchar(40) NOT NULL DEFAULT '',
u_email varchar(64) NOT NULL DEFAULT '',
u_activation_key varchar(40) NOT NULL DEFAULT '',
u_active int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (u_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Z góry dziękuje za jakąkolwiek pomoc
Ten post edytował kunegunda 27.02.2010, 11:32:22