在Flask中重定向到PHP文件

时间:2014-11-08 23:25:05

标签: php python flask

我正在使用Flask和python运行localhost网站。我有一些我想在用户点击按钮时运行的php文件。问题是Flask没有将PHP文件识别为PHP代码,并且代码在网页上显示为文本。它显示了所有echo语句的文本,但这些语句中的单词对应于代码中允许用户登录和注销网站的变量。我该怎么办?

Python代码:

@app.route('/example.php')
def phpexample():
    return render_template('example.php')

这显示了一个html页面,其中包含echo语句生成的文本。

PHP代码(example.php):

<?php
    require ('steamauth/steamauth.php');  
?>
<html>
<head>
    <title>Eliminate Phishers! Join Steap now</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta name="description" content="" />
        <meta name="keywords" content="" />
        <!--[if lte IE 8]><script src="css/ie/html5shiv.js"></script><![endif]-->
        <script src="js/jquery.min.js"></script>
        <script src="js/skel.min.js"></script>
        <script src="js/init.js"></script>
        <noscript>
            <link rel="stylesheet" href="css/skel.css" />
            <link rel="stylesheet" href="css/style.css" />
            <link rel="stylesheet" href="css/style-wide.css" />
        </noscript>
        <!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]-->
</head>
<body>

        <!-- Header -->
            <div id="header">
                <span class="logo icon fa-paper-plane-o"></span>
                <h1>Welcome. This is Steap</h1>
                <p>A website designed to help eliminate phishers 
                <br />
                and hackers on Steam.</p>
            </div>

        <!-- Main -->
            <div id="main">

                <header class="major container small">
                    <h3>
                    <?php

if(!isset($_SESSION['steamid'])) {

    echo "welcome guest! <br />\n please login ";
    steamlogin(); //login button

}  else {
    include ('steamauth/userInfo.php');
    $url = $steamprofile['profileurl'];
    if ($steamprofile['personastate'] == 0) {
        $state = '<span style="color:#616161";>(Offline)</span>';
        $picture = '<span style="color:#616161";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>';

    } else if ($steamprofile['personastate'] == 1) {
        $state = '<span style="color:#006EFF";>(Online)</span>';
        $picture = '<span style="border: 10px dotted #006EFF;"><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>';
    } else if ($steamprofile['personastate'] == 2) {
        $state = '<span style="color:#006EFF";>(Busy)</span>';
        $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>';
    } else if ($steamprofile['personastate'] == 3) {
        $state = '<span style="color:#006EFF";>(Away)</span>';
        $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>';
    } else if ($steamprofile['personastate'] == 4) {
        $state = '<span style="color:#006EFF";>(Snooze)</span>';
        $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>';
    } else if ($steamprofile['personastate'] == 5) {
        $state = '<span style="color:#006EFF";>(Looking to Trade)</span>';
        $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>';
    } else if ($steamprofile['personastate'] == 6) {
        $state = '<span style="color:#006EFF";>(Looking to Play)</span>';
        $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>';
    }


    //Protected content
    echo "Welcome back" . "</br> </br>" . $picture ."</br>". $steamprofile['personaname'] . "</br>" .$state .  "</br>".  "Steam ID: ". $steamprofile['steamid'] . "</br>";
    echo '<a href="' . $url . '">Steam Profile</a>'  . "</br> </br>" . "<form action=\"steamauth/logout.php\" method=\"post\"><input value=\"Logout\" type=\"submit\" /></form>"; // Display their avatar!

}    
?>
</h3>
                </header>

                <footer class="major container small">

                    <ul class="actions">
                        <li><a href="index.html" class="button">Get Phishers</a></li>
                    </ul>
                </footer>

            </div>

        <!-- Footer -->
            <div id="footer">
                <div class="container small">

                    <header class="major last">
                        <h2>Questions or comments?</h2>
                    </header>

                    <p>Program not working? Not detecting the phishers properly? <br \> Send us a message. We'll be sure to back to you as soon as possible.</p>

                    <form method="post" action="#">
                        <div class="row collapse-at-2">
                            <div class="6u">
                                <input type="text" name="name" placeholder="Name" />
                            </div>
                            <div class="6u">
                                <input type="email" name="email" placeholder="Email" />
                            </div>
                        </div>
                        <div class="row">
                            <div class="12u">
                                <textarea name="message" placeholder="Message" rows="6"></textarea>
                            </div>
                        </div>
                        <div class="row">
                            <div class="12u">
                                <ul class="actions">
                                    <li><input type="submit" value="Send Message" /></li>
                                </ul>
                            </div>
                        </div>
                    </form>

                    <ul class="icons">
                        <li><a href="#" class="icon fa-twitter"><span class="label">Twitter</span></a></li>
                        <li><a href="#" class="icon fa-facebook"><span class="label">Facebook</span></a></li>
                        <li><a href="#" class="icon fa-instagram"><span class="label">Instagram</span></a></li>
                        <li><a href="#" class="icon fa-github"><span class="label">Github</span></a></li>
                        <li><a href="#" class="icon fa-dribbble"><span class="label">Dribbble</span></a></li>
                    </ul>

                    <ul class="copyright">
                        <li>&copy; Steap 2014 All rights reserved.</li><li>Design: <a href="http://html5up.net">HTML5 UP</a></li>
                    </ul>

                </div>
            </div>

    </body>
</html>

3 个答案:

答案 0 :(得分:0)

也许您应该在其他端口(例如 8080)上运行 php 服务器(例如 Apache 或其他),并且当您调用任何 php 文件时,从您的 Flask 服务器向 php 服务器发出请求。并且从 php 服务器获取的结果显示为 Flask 服务器。我希望你能找到如何从flask向其他服务器发送请求的方法。

答案 1 :(得分:-1)

Flask与php不兼容。因此,它无法读取php代码。

答案 2 :(得分:-3)

您是否考虑过使用JQuery Ajax?

以下是一个例子:

你有一个名为get_name.php的文件包含:

<?php echo "Hello, my name is John"; ?>

使用Jquery ajax函数我调用get_name.php

        $.ajax({
            url : 'get_name.php',
            success : function(data) {
                console.log(data);
            }
        });

控制台中的输出为:

  

您好,我的名字是John

因此,使用返回的数据,您可以随心所欲。