【问题标题】:PHP header redirect not working after update query更新查询后PHP标头重定向不起作用
【发布时间】:2016-01-03 23:46:35
【问题描述】:

我正在向一个电子邮件地址发送一个验证链接。该链接会将用户引导至仅包含少量代码的页面。我实际上只是将数据库中的一行从“0”更改为“1”,表明它们已经过验证

PHP:

<?php

    include( 'database/sql_link.php' ) ;   //This is my link to the database


    $clientName = mysqli_real_escape_string( $db , $_GET[ 'client' ] ) ;

    $sql        =   " UPDATE  clients
                         SET  verifiedUser = '1'
                       WHERE  userName     = '$clientName' " ;

    if ( !mysqli_query( $db , $sql ) ) {

        die( ' Error: <br> <br> ' . mysqli_error( $db ) ) ;

    }

    header( "Location: http://www.example.net/portal.php" ) ;

    exit() ;

上面的代码会正确修改数据库,但不会重定向到“portal.php”。

感谢任何输入。提前致谢!

编辑 - 由 Shehary 解决 - 详细信息在我对主题的回复中。

【问题讨论】:

  • 你喜欢有这么多不必要空格的代码,想知道你是否写p h p而不是php
  • 这些间隙和空格,从长远来看,会给你错误header already sent 并在&lt;?php 之后添加ob_start(); 看看这是否有帮助
  • 您是在暗示我的间距 is 会导致问题,或者间距会导致问题?因为我知道后者。如果您认为我在上面对间距的使用导致了问题,那么我将非常感谢您澄清上面滥用间距的位置。谢谢
  • 你的问题解决了吗,还是你还在苦苦挣扎?
  • 你检查过日志吗? error_reportingdisplay_errors 是否启用?

标签: php mysql redirect


【解决方案1】:

所以我的问题根源于我最初的数据库链接 php 文件。

include( 'database/sql_link.php' );

文件在开始&lt;?php之前有一个标签。

感谢 Shehary。

更新的 PHP

<?php
error_reporting(-1);
include( 'database/sql_link.php' ) ;
$clientCompany = mysqli_real_escape_string( $db , $_GET[ 'comp'    ] ) ;
$clientName    = mysqli_real_escape_string( $db , $_GET[ 'client'  ] ) ;
$clientAddress = mysqli_real_escape_string( $db , $_GET[ 'address' ] ) ;
$sql         =   " UPDATE clients SET verifiedUser = '1' WHERE userName = '$clientName' " ;
if ( !mysqli_query( $db , $sql ) ) {
    die( ' Error: <br> <br> ' . mysqli_error( $db ) ) ;
}
header( "Location: http://www.etheritwiki.net/evanJustinProject_Portal_Client.php" ) ;
exit() ;
$db  -> close() ;
$sql -> free()  ;

【讨论】:

    【解决方案2】:

    include( 'database/sql_link.php' ) ;   //This is my link to the database
    
    
    $clientName = mysqli_real_escape_string( $db , $_GET[ 'client' ] ) ;
    
    $sql        =   " UPDATE  clients
                         SET  verifiedUser = '1'
                       WHERE  userName     = '$clientName' " ;
    
    if ( !mysqli_query( $db , $sql ) ) {
        die( ' Error: <br> <br> ' . mysqli_error( $db ) ) ;
    }
    
    header( "Location: http://www.example.net/portal.php" ) ;
    exit() ;
    

    试试这个。

    【讨论】:

    • 感谢您的帮助。我更新了我的代码以反映您的建议。没有骰子,它会更新数据库,然后在空白屏幕上挂起。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2022-01-17
    相关资源
    最近更新 更多