在 WAMP 中工作正常,但在 XAMPP 中不起作用

Posted

技术标签:

【中文标题】在 WAMP 中工作正常,但在 XAMPP 中不起作用【英文标题】:works fine in WAMP but doesn't work in XAMPP 【发布时间】:2019-09-27 13:33:00 【问题描述】:

我的程序中有以下代码,可与 WAMP 服务器完美配合。但是我不得不为 XAMPP 更改 WAMP 服务器,我不知道为什么它不执行某些部分代码。也没有错误信息。

问题是在表格代码<table> 中,在第三个<tr> 之后或“Toggle”开始时不显示。它也没有显示提交按钮。

我不明白为什么在 WAMP 中一切正常,但在 XAMPP 中却不行。有人可以帮我看看为什么会失败吗?谢谢

Project.php

<?php
include_once("Conexion.php");
include_once("functions.php");
ob_start();

$_SESSION['ex_time'] = date('Y-m-d H:i:s');
$list_ex = array();
$result = doSearch($conn);
?>

    <!DOCTYPE html>
    <html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="styleProject.css">
</head>

<body>

<div id="centered_A">

    <form action='' method='post'>
    <table id="exercises">
        <tr>
            <th colspan="3"><h2>Exercises</h2></th>
        </tr>
        <tr>
            <th><h3>Exercise_ID</h3></th>
            <th><h3>Title</h3></th>
            <th><h3>Difficulty
                <form id="difficulty_form" method="get">
                    <select id="filter" name="filter" onchange="document.getElementById('difficulty_form').submit()">
                        <option value="All">Todas</option>
                        <?php
                        for ($i = 1; $i <= 5; $i++) 
                            $selected = '';
                            if (isset($_GET['filter']) && $_GET['filter'] == $i) 
                                $selected = ' selected';
                            
                            echo "<option value=\"$i\"$selected>$i</option>\n";
                        
                        ?>
                    </select>
                </form>
                </h3></th>
        </tr>

        <?php
        $order = 1;
        $num_ex = 1;
        while($row = $result->fetch_assoc())
        
            array_push($list_ex, $row["exercise_id"]);

            $sql_check_ex = "select * from answers a where a.student_id=".$_SESSION['user_id']." and a.exercise_id_fk=".$row["exercise_id"].";";
            $result_check_ex = $conn->query($sql_check_ex);
                    ?>

                    <tr>
                        <td><?php echo $num_ex; ?></td> 
                        <!---Click Toggle Exercise-->
                        <td><a  onclick="myFunction(<?php echo $row["exercise_id"] ?>)" role="button" class="btn" target="_blank" ><?php echo $row["title"]; ?></a>
                            </td>
                        <td><?php echo $row["difficulty"]; ?></td>
                    </tr>
            <!--- Toggle --->
            <tr id="toggle<?php echo $row["exercise_id"] ?>"  style="display:none">
                <td colspan="3">

                        <?php
                        $sql = "SELECT * FROM exercises WHERE exercise_id='".$row["exercise_id"]."'";
                        $result_ej = $conn->query($sql);
                        $row_ej = $result_ej->fetch_assoc();
                        ?>

                        <p><?php $row["exercise_id"] ?> <?php echo $row["text"]?></p>
                        <br><!--- Radio Button --->
                        <?php
                        if ($row["type"] == 0) 

                            $ansarray = explode("\n", $row["image_path"]);
                            $randomans = [];
                            for($i=0; $i<count($ansarray); $i++) 
                                $a = array($i+1, $ansarray[$i]);
                                array_push($randomans, $a);
                            
                            shuffle($randomans);
                            for($i=0; $i<count($randomans); $i++) 
                                echo "<div class=\"radio\" style=\"text-align:left; display:flex; vertical-align: baseline;\">";
                                echo "<input type=\"radio\" style=\"margin-top: 8px; cursor:pointer;\" name=\"choice".$row["exercise_id"]."\" value= \"".$randomans[$i][0]."\"  />".$randomans[$i][1]."<br>";
                                echo "</div>";
                            

                            echo "<input type=\"text\" name=\"choicetext".$row["exercise_id"]."\" value='multi' style=\"display:none;\">";

                         else 
                            ?>
                            <input type="radio"  style="margin-top: 8px" name="choice<?php echo $row["exercise_id"] ?>" value= "0" checked="checked" style="display:none;" />

                            <?php
                        
                        ?>
                        <br>
                        <!--- Select level --->
                        <p2>Select difficulty level:</p2>

                        <select name="choose<?php echo $row["exercise_id"] ?>" id="choose<?php echo $row["exercise_id"] ?>">>
                            <option value="1" <?php if($row["difficulty"]=="1")  echo "selected";  ?> >1</option>
                            <option value="2" <?php if($row["difficulty"]=="2")  echo "selected";  ?> >2</option>
                        </select>
             </td>
             </tr><!---Finish Toggle --->


                <?php

            $order++;
            $num_ex++;
        
        ?>

    </table>
    <br><!---Submit Button-->
    <input class="buttonSubmit" type="submit" name="submit_proj_ex" value="Submit">
    </form>

    <script>
        function myFunction(ejer_id) 
            var x = document.getElementById("toggle" + ejer_id);
            if (x.style.display === "none") 
                x.style.display = "table-row";
             else 
                x.style.display = "none";
            
        
    </script>

</div>
</body>

<?php
if (isset($_POST['submit_proj_ex'])) 
    include_once("store_answers.php");
    header('location: Results.php');

?>
</html>

functions.php

<?php
function doSearch($conn, $fields = "*") 
    $sql = "SELECT $fields FROM exercises, ex_tag, tags where exercise_id = exercise_id_fk and tag_id = tag_id_fk";

    if (isset($_GET['filter']) && $_GET['filter'] !== 'All') 
        $filter = (int) trim($_GET['filter']);
        $sql .=  " and exercises.difficulty = '$filter'";
    

    if (!empty($_SESSION['tags_array'])) 
        $sql .= " and (";
        foreach ($_SESSION['tags_array'] as $tagId)
            $sql .= 'tag_id = ' . $tagId . ' or ';

        $sql .= "tag_id = -1)";
    
    $sql .= ' group by exercise_id_fk';
    return $conn->query($sql);

?>

【问题讨论】:

【参考方案1】:

在 WAMP 和 XAMP 中运行 phpinfo()。我不确定你的问题是什么,但如果它适用于一个而不是另一个,也许他们正在使用不同版本的 php。如果是这种情况,您将需要在 XAMP 中使用与在 WAMP 中使用的相同版本的 php,或者检查您的代码并尝试找出如何转换您的代码,以便它与该版本正常工作在你的 XAMP 上。前者可能是阻力最小的路径。

【讨论】:

谢谢 Elroy,我会试试的

以上是关于在 WAMP 中工作正常,但在 XAMPP 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

脚本在实际服务器中不起作用,但在 localhost XAMPP 中起作用

File.Exists 在 C# 中工作,但在 VB.NET 中不起作用

“GET”请求在 Python 中工作,但在机器人框架中不起作用

p12 在 NodeDefaultKeyStore 中工作,但在 WebSphere 的 CellDefaultKeyStore 中不起作用

iAP 在 Sandbox 中工作,但在“等待开发者发布”版本中不工作

上传音频文件时,API 在邮递员中工作,但在 android 应用程序中不工作