【问题标题】:Redirecting do a page and alert pop up重定向做一个页面并弹出警报
【发布时间】:2013-01-10 15:16:45
【问题描述】:

我创建了一个用于注册的 html 表单,当用户成功注册时,我希望他们自动重定向回我的index.html 页面,并弹出一个警报告诉他们他们已成功注册。目前我的警报有效,但它只是在空白页中打开。我曾尝试输入header ("location:../index.html"),但没有奏效,它只是将我直接引导到页面而没有给我想要的警报。有人可以帮忙吗?

<?php
$con = mysql_connect("localhost","root","") or die(mysql_error());
$select_db = mysql_select_db("mayan",$con);
if(isset($_POST['register']))
{
     $firstname=$_POST['first_name'];
     $lastname=$_POST['last_name'];
     $address=$_POST['address'];
     $postcode=$_POST['postcode'];
     $emailaddress=$_POST['emailaddress'];
     $password=$_POST['password'];
     $query = "select emailaddress FROM mayan_users where emailaddress='$emailaddress'";
     $link = mysql_query($query)or die(mysql_error());
     $num = mysql_num_rows($link);
 if ($num>0){
  echo 'Email already exists'; //email already taken
 }

 else {
 $insert_query = "insert into `mayan_users`(`firstname`,`lastname`,`address`,`postcode`,`emailaddress`,`password`) values('$firstname','$lastname','$address','$postcode','$emailaddress','$password')";
 $result = mysql_query($insert_query)or die(mysql_error());



  if(success)
{
   echo "<script type=\"text/javascript\">".
        "alert('success');".
        "</script>";
}
     }

   }
?>

【问题讨论】:

  • if(success) -> 这是一个函数还是一个变量,如果这是一个变量,应该是$success。这一套什么时候出?

标签: php html forms redirect


【解决方案1】:

在网站上填写表格后,我使用此代码将某人重定向回主页。

if(empty($errors))
{
    //send the email

    echo '
        <script type="text/javascript">
            alert("YOUR MESSAGE"); 
            window.location.href = "http://www.yoursite.com";</script>';    
}   

【讨论】:

    【解决方案2】:

    重定向时使用此功能:

    function redirect($url) {
        if(!headers_sent()) {
            //If headers not sent yet... then do php redirect
            header('Location: '.$url);
            exit;
        } else {
            //If headers are sent... do javascript redirect... if javascript disabled, do html redirect.
            echo '<script type="text/javascript">';
            echo 'window.location.href="'.$url.'";';
            echo '</script>';
            echo '<noscript>';
            echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
            echo '</noscript>';
            exit;
        }
    }
    

    所以您想重定向到同一页面,但使用 ?=XXX 获取值

    您的代码将如下所示:

    <?php
    
    if ($_GET['success'] == 1){
            echo "<script type=\"text/javascript\">".
            "alert('success');".
            "</script>";
    }
    $con = mysql_connect("localhost","root","") or die(mysql_error());
    $select_db = mysql_select_db("mayan",$con);
    if(isset($_POST['register']))
    {
         $firstname=$_POST['first_name'];
         $lastname=$_POST['last_name'];
         $address=$_POST['address'];
         $postcode=$_POST['postcode'];
         $emailaddress=$_POST['emailaddress'];
         $password=$_POST['password'];
         $query = "select emailaddress FROM mayan_users where emailaddress='$emailaddress'";
         $link = mysql_query($query)or die(mysql_error());
         $num = mysql_num_rows($link);
     if ($num>0){
      echo 'Email already exists'; //email already taken
     }
    
     else {
     $insert_query = "insert into `mayan_users`(`firstname`,`lastname`,`address`,`postcode`,`emailaddress`,`password`) values('$firstname','$lastname','$address','$postcode','$emailaddress','$password')";
     $result = mysql_query($insert_query)or die(mysql_error());
    
    
    
      if(success)
    {
       redirect('index.php?sucess=1');
    }
         }
    
       }
    ?>
    

    【讨论】:

      【解决方案3】:

      使用 JavaScript 重定向:

      window.location = "http://www.google.com/";
      

      但我建议添加一个链接供用户点击,因为某些用户可能禁用了 JavaScript。而且我会在重定向上设置超时,因此用户有几秒钟的时间来阅读页面。例如:

      if (success) {
         echo "<script type=\"text/javascript\">" . 
               "setTimeOut(function() {" . 
               "   window.location = 'http://www.google.com';" . 
                "}, 2500);" .
               "</script>";
      }
      

      【讨论】:

        【解决方案4】:

        你可以在索引页面中做一个变量,比如“index.php?success”。然后只需通过 if(isset($_GET['success']) 检查此请求。并在该 IF 中添加一些登录信息。

        【讨论】:

          【解决方案5】:

          1) 首先将您的 index.html 更改为 php 文件:index.php

          2) 在index.php文件顶部写

          <?php
              session_start();
          ?>
          

          3) 在 index.php 文件的正文中,您可以:

          要么打印消息

          <?php
             if(isset($_SESSION['message'])) {
               echo $_SESSION['message'];
               unset($_SESSION['message']);
             }
          ?>
          

          或使用 javascript 发出警报

          <?php
             if(isset($_SESSION['message'])) {
               echo '<script> alert(\'Success\'); </script>';
               unset($_SESSION['message']);
             }
          ?>
          

          4) 在你给我们的这个动作文件上

          <?php
          
            // START THE SESSION
            session_start();
          
          $con = mysql_connect("localhost","root","") or die(mysql_error());
          $select_db = mysql_select_db("mayan",$con);
          if(isset($_POST['register']))
          {
               $firstname=$_POST['first_name'];
               $lastname=$_POST['last_name'];
               $address=$_POST['address'];
               $postcode=$_POST['postcode'];
               $emailaddress=$_POST['emailaddress'];
               $password=$_POST['password'];
               $query = "select emailaddress FROM mayan_users where emailaddress='$emailaddress'";
               $link = mysql_query($query)or die(mysql_error());
               $num = mysql_num_rows($link);
           if ($num>0){
            $_SESSION['message'] = 'Email already exists'; //email already taken
           }
          
           else {
           $insert_query = "insert into `mayan_users`(`firstname`,`lastname`,`address`,`postcode`,`emailaddress`,`password`) values('$firstname','$lastname','$address','$postcode','$emailaddress','$password')";
           $result = mysql_query($insert_query)or die(mysql_error());
          
          
          
            if($result)
            {
               $_SESSION['message'] = 'Success';
            }
           }
          
          }
          // redirect to main page
          header("Location: /");
          ?>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-07-20
            • 1970-01-01
            • 1970-01-01
            • 2010-12-27
            相关资源
            最近更新 更多