我希望有人能帮助我。
我有3个页面,一个注册页面,其中包含调用加载我的第二个页面在iframe,这是一个表单,张贴到第三个页面,处理注册。
我要做的是在用户注册后设置一个会话变量,并将其传递回初始注册页面。
我遇到的问题是,当第三个页面关闭时,第一个页面上的afterclose不会触发吗?
RegisterPage.php
<script type="text/javascript">
function fancyboxTest(href,provider,providerid,username,email,location,firstname,surname) {
$.fancybox({
padding: 0,
autoResize: true,
autoSize: true,
closeBtn:false,
closeClick:false,
afterClose : function() {
location.href = "home.php?se=<?php session['login'];?>";
},
modal:true,
type: 'iframe',
'href' : href + '?provider='+escape(provider)+'&providerid='+escape(providerid)+'&username='+escape(username)+'&email='+escape(email)+'&location='+escape(location)+'&firstname='+escape(firstname)+'&surname='+escape(surname)+''
});
}
</script>第三页
<?php
$_Session_start();
$provider = $_POST['provider'];
$providerID = $_POST['providerid'];
$username = $_POST['user_name'];
$email = $_POST['user_email'];
$forenames = $_POST['user_forename'];
$surname = $_POST['user_surname'];
$location = $_POST['user_location'];
$date = date('Y-m-d H:i:s');
$database = new Database();
$database->query('INSERT INTO users(provider, provider_id, name_forename, name_surname, name_username,registered_date) VALUES (:provider, :provider_id, :forename, :surname, :username,:datereg)');
$database->bind(':provider', $provider);
$database->bind(':provider_id', $providerID);
$database->bind(':forename', $forenames);
$database->bind(':surname', $surname);
$database->bind(':username', $username);
$database->bind(':datereg', $date);
$database->execute();
$nid = $database->lastInsertId();
$database = new Database();
$database->query('INSERT INTO profile(id, location, email) VALUES (:id, :location, :email)');
$database->bind(':id', $nid);
$database->bind(':location', $location);
$database->bind(':email', $email);
$database->execute();
$tses = sha1($providerID . $date);
$_session['login'] = $tses;
$database = new database();
$database->query('UPDATE users SET session_id = :session WHERE id = :id');
$database->bind(':session', $_session['login']);
$database->bind(':id', $nid);
$database->execute();
?>
<script type="text/javascript">
parent.$.fancybox.close();
</script>知道是怎么回事吗?用户已成功注册,iframe关闭,但是浏览器位于注册页面?我尝试在没有任何参数的情况下重定向到home.php,因为我还不确定是否设置了会话,如果我在注册页面上包含一个session_start,我会得到一个警告,说明它已经启动。
发布于 2013-05-21 05:25:12
明白了!
从中三开始,这就成功了。
<script type="text/javascript">
parent.jQuery.fancybox.close();
window.parent.location.href = 'home.php?se=<?php echo $tses;?>';
</script>https://stackoverflow.com/questions/16655262
复制相似问题