<?php
$con = mysqli_connect("localhost", "root", "", "" ) or die("Neuspjelo spajanje");
function InsertUser(){ global $con;
if(isset($_POST['sign_up'])){
$name = mysqli_real_escape_string($con, $_POST['u_name']);
$pass = mysqli_real_escape_string($con,$_POST['u_pass']);
$email = mysqli_real_escape_string($con,$_POST['u_email']);
$country = mysqli_real_escape_string($con,$_POST['u_country']);
$gender = mysqli_real_escape_string($con,$_POST['u_gender']);
$b_day = mysqli_real_escape_string($con,$_POST['u_birthday']);
$date = date("m-d-Y");
$status = "unverified";
$posts = "No";
$get_email = "select * from users where user_email='$email'";
$run_email = mysqli_query($con, $get_email);
$check = mysqli_num_rows($run_email);
$insert = "insert into users (user_name, user_pass, user_email, user_country, user_gender, user_b_day,
user_image, register_date, last_login, status, posts) values
('$name','$pass', '$email', '$country', '$gender', '$b_day', 'default.jpg',
'$date', '$date', '$status', '$posts')";
$run_insert = mysqli_query($con, $insert);
$result = mysql_query($insert);
if($result){
echo "<script>alert ('You're successfully registered!')</script>";
echo "<script>window.open('home.php', '_self')</script>";
}
}
}
?>
你不能回显javascript并在已经加载的页面中运行它。这需要是客户端ajax调用的结果,重定向来自ajax回调。如果您不介意放弃警告,您可以从php:
发出重定向。header('Location: home.php');
:
$.ajax({
type: "GET",
url: "your_insert_user.php"
}).success(function(xhr) {
alert ("You're successfully registered!");
window.open('home.php', '_self');
}).fail(function (jqXHR, status, errorThrown) {
//something else here
});
但是,为什么要发出一个ajax调用只是为了重定向?此外,您需要从插入脚本发出适当的响应:
if ($result) { echo ""; } //issues a "200 OK"
else { header("HTTP/1.1 422 Unprocessable Entity"); } //fires the failure callback in ajax
我将传递一个条件GET或POST参数到home.php与一些值标志,并在那里显示您的消息
根据你上面的帖子,你在这里处理两个独立的问题。
你说"它插入",所以我假设这意味着mysql查询插入新行到你的数据库成功完成。然后你发送一些HTML代码,包含一个(有点混乱的)Javascript片段,到浏览器,它应该发出一个重定向请求到客户端的web浏览器,这没有期望的结果,看到你写它"不会重定向"。
请记住,重定向是由浏览器执行的,依赖于浏览器的功能和/或设置,并且首先需要适当的javascript。
如何正确地从浏览器请求重定向已经讨论过了。
首先,删除这一行$result = mysql_query($insert);然后修改你的代码并添加这个,希望它能工作:
$run_insert = mysqli_query($con, $insert);
if($run_insert){
echo "<script>alert ('You''re successfully registered!')</script>";
echo "<script>window.open('home.php', '_self')</script>";
}