PHP表单在注册后自动注销
php form automatically gets logout just after signup
我有一个注册页面,用户注册后,它重定向到网站的饲料页面,但我希望我的用户直接进入饲料页面有登录凭据作为一个成员,因为他们刚刚注册,但刚刚注册后,它重定向到我想要的页面,但作为一个客人。我不知道为什么它会在注册后自动注销。我不希望我的会员一次又一次地把登录细节,因为他们刚刚注册,所以他们应该能够查看他们的个人资料,而无需进一步输入他们的登录凭据。这是我的代码
function signup($iid) {
global $db, $client, $uhome, $config;
if ($_POST['onpost']) {
if ($_POST['iid']) {
$res = sql_query("select * from ".tb()."invites where id='{$_POST['iid']}'");
$invite = sql_fetch_array($res);
if ($invite['id']) {
if ($hold) {
$hold = 0;
if ($invite['email'] != $_POST['email']) {
$errors[] = t('You must use the Email address from which you received the invitation');
}
}
}
}
if ($hold) {
die('<p>'.
t('Only invited people can Sign up this network. If you are invited, please click the link in the inviting email.').
'</p>');
}
if (!$_POST['agree_rules']) {
$errors[] = t('You must agree to our rules for signing up');
}
//get_r(array('username','password','password2','email','agree','confirm_code','location'));
if (strtolower($_COOKIE['cfm']) != strtolower($_POST['confirm_code'])) {
$errors[] = t('The string you entered for the code verification did not match what was displayed');
}
$_POST['username'] = strtolower($_POST['username']);
if (strlen($_POST['username']) < 4 || strlen($_POST['username']) > 18 || !ereg("^[0-9a-z]+$",$_POST['username'])) {
$errors[] = t('Username').': '.t('from 4 to 18 characters, only 0-9,a-z');
}
if (ereg('<',$_POST['fullname'])) {
$errors[] = 'Unavailable Full name format';
}
if (!$_POST['email'] || !$_POST['fullname'] || !$_POST['username'] || !$_POST['password'] ) {
$errors[] = t('Please fill in all the required blanks');
}
else {
for($i=1;$i<=7;$i++) {
$col = 'var'.$i;
$key = 'cf_var'.$i;
$key2 = 'cf_var_value'.$i;
$key3 = 'cf_var_des'.$i;
$key4 = 'cf_var_label'.$i;
$key5 = 'cf_var_required'.$i;
$ctype = get_gvar($key);
if ($ctype != 'disabled' && get_gvar($key5)) {
if (!strlen($_POST[$col])) {
$errors[] = t('Please fill in all the required blanks');
}
}
}
}
if(!eregi("^[_a-z0-9-]+('.[_a-z0-9-]+)*@[a-z0-9-]+('.[a-z0-9-]+)*('.[a-z]{2,3})$", $_POST['email'])) {
$errors[] = t('Unavailable email address');
}
$password = md5($_POST['password'].'jcow');
$timeline = time();
$res = sql_query("select * from `".tb()."accounts` where email='{$_POST['email']}'");
if (sql_counts($res)) {
$errors[] = t('You have registered with this email address before.');
}
$res = sql_query("select * from `".tb()."accounts` where username='{$_POST['username']}'");
if (sql_counts($res)) {
$errors[] = t('The Username has already been used');
}
if (!is_array($errors)) {
$reg_code = '';
$verify_note = '';
// member
if ($_POST['hide_age']) {
$hide_age = 1;
}
else {
$hide_age = 0;
}
$newss = get_rand(12);
if (get_gvar('pm_enabled')) {
$member_disabled = 1;
}
else {
$member_disabled = 0;
}
sql_query("insert into `".tb()."accounts` (about_me,disabled,gender,location,birthyear,birthmonth,birthday,hide_age,password,email,username,fullname,created,lastlogin,ipaddress,var1,var2,var3,var4,var5,var6,var7,reg_code) values('{$_POST['about_me']}',$member_disabled,'{$_POST['gender']}','{$_POST['location']}','{$_POST['birthyear']}','{$_POST['birthmonth']}','{$_POST['birthday']}','{$hide_age}','$password','".$_POST['email']."','{$_POST['username']}','{$_POST['fullname']}',$timeline,$timeline,'{$client['ip']}','{$_POST['var1']}','{$_POST['var2']}','{$_POST['var3']}','{$_POST['var4']}','{$_POST['var5']}','{$_POST['var6']}','{$_POST['var7']}','{$reg_code}')");
$uid = insert_id();
if ($uid == 1) {
sql_query("update ".tb()."accounts set roles='3' where id='$uid'");
}
sql_query("insert into `".tb()."pages` (uid,uri,type) values($uid,'{$_POST['username']}','u')");
$page_id = insert_id();
if ($_POST['iid']) {
sql_query("update ".tb()."invites set status=1 where id='{$_POST['iid']}'");
}
stream_publish(t('Signed Up <br /><br /> <img src="'.uhome().'/1.png">'),'','',$uid,$page_id);
// welcome email
$welcome_email = nl2br(get_text('welcome_email'));
$welcome_email = str_replace('%username%',$_POST['username'],$welcome_email);
$welcome_email = str_replace('%email%',$_POST['email'],$welcome_email);
$welcome_email = str_replace('%password%',$_POST['password'],$welcome_email);
$welcome_email = str_replace('%sitelink%',url(uhome(),h(get_gvar('site_name')) ),$welcome_email);
@jcow_mail($_POST['email'], 'Welcome to "'.h(get_gvar('site_name')).'"!', $verify_note.$welcome_email);
$_SESSION['login_cd'] = 3;
redirect(url('feed'));
exit;
}
else {
foreach ($errors as $error) {
$error_msg .= '<li>'.$error.'</li>';
}
sys_notice(t('Errors').':<ul>'.$error_msg.'</ul>');
}
}
if ($iid) {
$res = sql_query("select * from ".tb()."invites where id='{$iid}'");
$invite = sql_fetch_array($res);
if ($invite['id']) {
$hold = 0;
$use_i_email = t('You must use the Email address from which you received the invitation');
$iid_field = '<input type="hidden" name="iid" value="'.$iid.'" />';
}
}
if ($hold) {
c(t('Sorry, only invited people can sign up'));
stop_here();
}
set_title('Signup');
if (get_gvar('pm_enabled')) {
c('<strong>'.t('Join Us').'</strong><br />
'.t('Membership pricing').':<ul>');
if ($pm_1m = get_gvar('pm_1m')) {
c('<li>'.$pm_1m.' '.get_gvar('pm_currency').' '.t('Per month').'</li>');
}
if ($pm_3m = get_gvar('pm_3m')) {
c('<li>'.$pm_3m.' '.get_gvar('pm_currency').' '.t('Per Annua').'</li>');
}
if ($pm_12m = get_gvar('pm_12m')) {
c('<li>'.$pm_12m.' '.get_gvar('pm_currency').' '.t('Per Yeal').'</li>');
}
c('</ul>');
section_close(t('Paid membership'));
}
c('
<script>
$(document).ready( function(){
objrow = $("tr.row1 td::first-child");
objrow.attr("valign","top");
objrow.attr("align","right");
});
</script>
<form method="post" action="'.url('member/signup').'" >
<table class="stories">
<tr class="table_line1">
<td colspan="2">'.t('Passport').'</td></tr>
<tr class="row1">
<td>*'.t('Email Address').' '.$use_i_email.'</td>
<td><input type="text" size="20" name="email" value="'.h($_REQUEST['email']).'" class="fpost" style="width:180px" /><br /><span class="sub">('.$invite_msg.t("We won't display your Email Address.").')</span>
</tr>
<tr class="row1">
<td>*'.t('Username').'/'.t('Nickname').'</td><td>
<input type="text" size="18" class="fpost" name="username" value="'.h($_REQUEST['username']).'" style="width:180px" /><br />
<span class="sub">('.t('4 to 18 characters, made up of 0-9,a-z').')</span>
</tr>
<tr class="row1">
<td>*'.t('Password').'</td><td>
<input type="password" name="password" class="fpost" value="'.h($_REQUEST['password']).'" style="width:180px" />
</tr>
<tr class="table_line1">
<td colspan="2">'.t('Personal info').'</td></tr>
<tr class="row1">
<td>*'.t('Full Name').'</td><td>
<input type="text" size="20" name="fullname" value="'.h($_REQUEST['fullname']).'" class="fpost" style="width:180px" />
</td>
</tr>
<tr class="row1">
<td>*'.t('Birth').'</td><td>
<select name="birthyear" class="fpost">
');
$year_from = date("Y",time()) - 8;
$year_to = date("Y",time()) - 100;
if ($_REQUEST['birthyear'])
$yearkey = $_REQUEST['birthyear'];
else
$yearkey = $year_from - 12;
for ($i=$year_from;$i>$year_to;$i--) {
$selected = '';
if ($yearkey == $i)
$selected = 'selected';
c('<option value="'.$i.'" '.$selected.'>'.$i.'</option>');
}
if ($row['hide_age']) $hide_age = 'checked';
c('
</select>
<select name="birthmonth" class="fpost">');
for ($i=1;$i<13;$i++) {
if ($i<10)$j='0'.$i;else $j=$i;$iss='';
if ($_REQUEST['birthmonth'] == $j) $iss='selected';
c('<option value="'.$j.'" '.$iss.' >'.$j.'</option>');
}
c('</select>
<select name="birthday" class="fpost">');
for ($i=1;$i<=31;$i++) {
if ($i<10)$j='0'.$i;else $j=$i;$iss='';
if ($_REQUEST['birthday'] == $j) $iss='selected';
c('<option value="'.$j.'" '.$iss.'>'.$j.'</option>');
}
c('</select><br />
<input type="checkbox" name="hide_age" value="1" '.$hide_age.' />'.t('Hide my age').'
</td></tr>');
if ($_REQUEST['gender'] == 1) {
$gender1 = 'checked';
}
elseif ($_REQUEST['gender'] == 2) {
$gender2 = 'checked';
}
else {
$gender0 = 'checked';
}
c('
<tr class="row1"><td>*'.t('Gender').'</td><td>
<input type="radio" name="gender" value="1" '.$gender1.' />'.t('Male').'
<input type="radio" name="gender" value="0" '.$gender0.' />'.t('Female').'
<input type="radio" name="gender" value="2" '.$gender2.' />'.t('Hide').'
</td></tr>');
c('<tr class="row1"><td>*'.t('Come from').'</td><td>
<select name="location" class="inputText">');
$locations = explode("'r'n",get_text('locations'));
$_REQUEST['location'] = trim($_REQUEST['location']);
foreach($locations as $location) {
if ($_REQUEST['location'] == trim($location)) {
$selected = 'selected';
}
else {
$selected = '';
}
c('<option value="'.$location.'" '.$selected.' >'.$location.'</option>');
}
c('</select>
</td>
</tr>
<tr class="row1">
<td>'.t('About me').'</td><td>
<textarea rows="5" name="about_me">'.htmlspecialchars($client['about_me']).'</textarea></td></tr>');
// custom fields
$profile = array();
for($i=1;$i<=7;$i++) {
$col = 'var'.$i;
$key = 'cf_var'.$i;
$key2 = 'cf_var_value'.$i;
$key3 = 'cf_var_des'.$i;
$key4 = 'cf_var_label'.$i;
$key5 = 'cf_var_required'.$i;
$ctype = get_gvar($key);
$value = get_gvar($key2);
$des = get_gvar($key3);
$label = get_gvar($key4);
$required = get_gvar($key5);
if ($required) $required = '*';
if ($ctype != 'disabled') {
if ($ctype == 'text') {
if (strlen($profile[$col])) {
$value = htmlspecialchars($profile[$col]);
}
if (strlen($_POST[$col])) {
$value = h($_POST[$col]);
}
c('<tr class="row1"><td>
'.$required.$label.'</td><td><input type="text" name="'.$col.'" value="'.$value.'" />
<br /><span class="sub">'.$des.'</span></td></tr>');
}
elseif ($ctype == 'textarea') {
if (strlen($profile[$col])) {
$value = htmlspecialchars($profile[$col]);
}
if (strlen($_POST[$col])) {
$value = h($_POST[$col]);
}
c('<tr class="row1"><td>'.$required.$label.'</td><td>
<textarea rows="3" name="'.$col.'" />'.$value.'</textarea><br />
<br /><span class="sub">'.$des.'</span></td></tr>');
}
elseif ($ctype == 'select_box') {
$tarr = explode("'r'n",$value);
c('<tr class="row1">
<td>'.$label.'</td><td>
<select name="'.$col.'">
');
if (strlen($_POST[$col])) {
$value = h($_POST[$col]);
}
foreach ($tarr as $val) {
if ($val == $value) {
$selected = 'selected';
}
else {
$selected = '';
}
c('<option value="'.$val.'" '.$selected.'>'.$val.'</option>');
}
c('</select><br /><span class="sub">'.$des.'</span></td></tr>');
}
}
}
c('
<tr class="row2">
<td colspan="2"><strong>'.t('Rules & Conditions').'</strong>
<div style="width:700px;height:200px;overflow:scroll;border:white 2px solid;padding:5px;">
'.nl2br(h(get_text('rules_conditions'))).'
</div></td>
</tr>
<tr class="row2">
<td colspan="2" align="center">
<input type="hidden" name="g" value="'.$_REQUEST['g'].'" />
<input type="hidden" name="onpost" value="1" />
<input type="checkbox" name="agree_rules" value="1" checked /> '.t('I have read, and agree to abide by the Rules & Conditions.').'
<input type="submit" style="background:#5BA239;color:white;font-size:1.5em;font-weight:bold" value="'.t('Signup Now').'" />
</td></tr>
</table>
</form>
');
}
}
您可能需要在重定向之前重新生成会话。我在注册时使用以下代码:
session_regenerate_id();
// workload
session_write_close();
session_regenerate_id(true);
header("Location: /dashboard");
after
@jcow_mail($_POST['email'], 'Welcome to "'.h(get_gvar('site_name')).'"!', $verify_note.$welcome_email);
添加这一行
$_SESSION['uid'] = $uid;
redirect(url('dashboard'),t('Congratulations! You have successfully signed up.'));
exit;
。
相关文章:
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 当组件准备就绪时,如何在Polymer中动态注册新属性
- 注册OpenLayers事件时,即使使用匿名函数或绑定,JavaScript关闭也会触发循环内的所有内容
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- Angularamd在typescript控制器注册中
- 注册组件的非角度和角度版本
- 如何使用angular _ design保持全局当前用户直到注销
- 为什么是FB.注销用户功能不会重定向到我告诉它的 URL
- 如何从已注册的事件发送 JavaScript 对象
- 不使用Grunt.initConfig()注册Grunt任务
- 使用谷歌图表将mousedown事件注册为click
- Stormpath注册页面上的社交登录
- 可以'我无法提交AJAX注册表
- 注册成功后重定向
- 如何关闭注销上的所有子页面
- 模态上的输入/注册字段不起作用
- 已从Facebook注销,但仍重新注册$user
- PHP表单在注册后自动注销