Hallo,

toen ik een paar maanden geleden net begonnen was met php heb ik een login systeem van het internet afgehaald uit een tutorial.
Ik heb daar nu ook al het een en ander aan veranderd omdat hij niet geheel goed functioneerde maar ik krijg het registratiegedeelte niet helemaal werkend.

in de register.php staat dit:


<?php

require_once "header.php";
include "db_connect.inc";

if (isset($_POST['register'])){

if (registerNewUser($_POST['username'], $_POST['password'], $_POST['password2'], $_POST['email'])){

echo "Thank you for registering, an email has been sent to your inbox, Please activate your account.
<a href='./index.php'>Click here to login.</a>
";

}else {

echo "Registration failed! Please try again.";
show_registration_form();

}

} else {
// has not pressed the register button
show_registration_form();
}

require_once "footer.php";
?>

en in de functions.inc dit: (het is allemaal in de header geincluded)

<?
function registerNewUser($username, $password, $password2, $email)
{

global $seed;//seed voor w8woord

if (!valid_username($username) || !valid_password($password) ||
!valid_email($email) || $password != $password2 || user_exists($username))
{
return false;
}


$code = generate_code(20);
$sql = sprintf("insert into login (username,password,email,actcode) value ('%s','%s','%s','%s')",
mysql_real_escape_string($username), mysql_real_escape_string(sha1($password . $seed))
, mysql_real_escape_string($email), mysql_real_escape_string($code));


if (mysql_query($sql))
{
$id = mysql_insert_id();

if (sendActivationEmail($username, $password, $id, $email, $code))
{

return true;
} else
{
return false;
}

} else
{
return false;
}
return false;

}
?>

en het mailgedeelte:
<?
function sendActivationEmail($username, $password, $uid, $email, $actcode)
{
global $domain;
$link = "http://www.$domain/activate.php?uid=$uid&actcode=$actcode";;
$message = "
Thank you for registering on http://www.$domain/,

Your account information:

username: $username
password: $password

Please click the link below to activate your account.

$link

Regards
$domain Administration
";

if (sendMail($email, "Please activate your account.", $message, "no-reply@$domain"))
{
return true;
} else
{
return false;
}
}

?>

ik kan niet precies vinden wat er fout is, zover gaat mijn kennis in php nog niet. Maar altijd als ik probeer te registreren komt er: Registration failed! Please try again.
Ik weet niet wat er in db_connect.inc staat, maar dat is dus gewoon door iedereen te lezen. Oftwel geheel onveilig. Gebruik altijd een .php extension.
Idem voor functions.inc.
Hou $vars altijd buiten de quotes.
Mailheaders kloppen niet: http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
Moet ik die in de header zetten?
Dit heeft niet met een layout-header te maken :-)
Deze horen in de headers van de mail() functie, 4[sup]e[/sup] argument.
Bekijk ook eens http://php.net/mail

Nog mooier is natuurlijk als je phpMailer gebruikt.
thanks, hiermee kom ik er wel.
Al denk ik niet dat WAMP mails verstuurt?
Vast wel als je de juiste instellingen in php.ini doorvoert.
Gewoon even de SMTP van je provider gebruiken en Apache even herstarten...
hmm.. waar kan ik dat dan ongeveer vinden in de php.ini?

[size=xsmall]Toevoeging op 13/06/2011 13:06:10:[/size]

<?

ik was wat vergeten. Deze zit er ook nog bij:

function sendMail($to, $subject, $message, $from)
{


$from_header = "From: $from";

if (mail($to, $subject, $message, $from_header))
{
return true;
} else
{
return false;
}
return false;
}

?>
Bij de [mail] sectie ;-)

Laat anders een CTRL+F het werk doen, en geheid vind je het.
hij blijft het niet doen,

ik heb nu:


<?php

require_once "header.php";
include "db_connect.inc";

if (isset($_POST['register'])){

$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$password2 = $_POST['password2'];



if (registerNewUser($_POST['username'], $_POST['password'], $_POST['password2'], $_POST['email'])){

echo "Thank you for registering, an email has been sent to your inbox, Please activate your account.
<a href='./index.php'>Click here to login.</a>
";

}else {

echo "Registration failed! Please try again.";
show_registration_form();

}

} else {
// has not pressed the register button
show_registration_form();
}

require_once "footer.php";
?>
<?
function registerNewUser($username, $password, $password2, $email)
{

global $seed;

if (!valid_username($username) || !valid_password($password) ||
!valid_email($email) || $password != $password2 || user_exists($username))
{
return false;
}


$code = generate_code(20);
$sql = sprintf("insert into login (username,password,email,actcode) value ('%s','%s','%s','%s')",
mysql_real_escape_string($username), mysql_real_escape_string(sha1($password . $seed))
, mysql_real_escape_string($email), mysql_real_escape_string($code));


if (mysql_query($sql))
{
$uid = mysql_insert_id();


if (sendActivationEmail($username, $password, $uid, $email, $code))
{

return true;
} else
{
return false;
}

} else
{
return false;
}
return false;

}
?>
<?function sendActivationEmail($username, $password, $uid, $email, $code)
{
$to .= '$email';

$subject = 'register on localhost';

// global $domain;

$link = "http://www.$domain/activate.php?uid=$uid&actcode=$actcode";;
$message = '
<html>
<head>
<title></title>
<body>
Thank you for registering on http://www.$domain/,

Your account information:

username: $username
password: $password

Please click the link below to activate your account.

$link

Regards
$domain Administration
</body>
</html>
';
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . PHP_EOL;
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . PHP_EOL;
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . PHP_EOL;
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . PHP_EOL : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . PHP_EOL;
$headers .= 'X-Priority: Normal' . PHP_EOL;
$headers .= ($html) ? 'MIME-Version: 1.0' . PHP_EOL : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL : '';

mail($to, $subject, $message, $headers);

if (mail($to, $subject, $message, $headers))
{
return true;
} else
{
return false;
}
}
?>

[size=xsmall]Toevoeging op 13/06/2011 18:49:48:[/size]

laat maar zitten ik ga op zoek naar iets anders/ zelf iets in elkaar prutsen: alles bugt nu doordat ik heb zitten kloten :P

Reageren