PHP链接HTML时出现问题,不重定向

cczfrluj  于 2023-02-21  发布在  PHP
关注(0)|答案(3)|浏览(135)

基本上我的衬衫电子商务网站不会重定向到我的html网站。每当我试图点击衬衫旁边的虚拟试穿按钮时,它不会重定向到页面,而是加载并刷新当前页面。有什么提示吗?
下面是我的代码:

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="get">
    <input type="hidden" name="product_id" value="124">
    <input type="submit" value="Virtual Try ON" name="form_virtual_try_on">
</form>

<?php
$product_id = $_GET['product_id'] ?? '';

switch ($product_id) {
  case '124':
    $text = 'Virtual Try On';
    $link = 'vton_ls.html';
    break;
  default:
    $text = '';
    $link = '';
    break;
}

if (isset($_GET['form_virtual_try_on'])) {
  $product_id = $_GET['product_id'];
  if ($product_id == '124') {
    header('Location: vton_ls.html');
    exit;
  } else {
    echo "Invalid product ID";
  }
}
?>

<div class="share">
    <?php echo LANG_VALUE_58; ?> <br>
    <div class="sharethis-inline-share-buttons"></div>
</div>

我试过GET,切换大小写,从头开始重做我所有的代码,但似乎不起作用。

rlcwz9us

rlcwz9us1#

通过简单地添加代码的小片段,而不是实际的整个页面,这是潜在的容易误解你正在尝试做什么,为什么事情会出错,所以如果下面是不正确的,我道歉。
给定测试目标页(vton_ls.html)和上述解释

<?php
    session_start();
    
    if( !defined('LANG_VALUE_58') )define('LANG_VALUE_58','LANG_VALUE_58......... ok');
    
    
    if( $_SERVER['REQUEST_METHOD']=='GET' && isset( $_GET['product_id'] ) ){
        
        switch( intval( $_GET['product_id'] ) ){
            case 124:
                $text = 'Virtual Try On';
                $link = 'vton_ls.html';         
            break;
            default:
                $text = '';
                $link = '';
            break;
        }
        
        exit( header( sprintf('Location: %s?product_id=%s&text=%s', $link, $_GET['product_id'], $text ) ) );
    }   
?>
<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title></title>
    </head>
    <body>
    
        <form method='get'>
            <input type='hidden' name='product_id' value='124' />
            <input type='submit' />
        </form>
        
        <div class='share'>
            <?php echo LANG_VALUE_58; ?> <br>
            <div class='sharethis-inline-share-buttons'></div>
        </div>
    </body>
</html>

通过单击按钮,表单将提交到处理GET请求的同一页面,以构建重定向到您的html website的新url

wqsoz72f

wqsoz72f2#

您已经添加了标题,请在标题中添加锚标记('Location:);如果你想从一个HTML页面链接到一个PHP页面,你可以使用一个如下的锚标记:

<a href="vton_ls.php">Virtual Try-On</a>
px9o7tmv

px9o7tmv3#

如果您未能完成此操作,您可能会看到一条错误消息,告诉您"header are already sent."错误可能不是很严重-header函数非常挑剔,一个空格就可以提示此错误。

<?php

标题('位置:http://www.example.com/');
出口;
?〉

<head>

    <title>Example</title>

</head>

<body>

    <p>Hello, world!</p>

</body>

相关问题