在SSL网站上加载在iframe上发出请求的非SSL动态页面(jps)?

时间:2019-02-27 16:15:10

标签: javascript php jquery ssl

我的网站带有SSL证书。 我想从没有SSL连接的保加利亚国家铁路公司获得并向用户显示没有ssl(火车时刻表)的网址。虽然我的网站未使用SSL,但我通过src ='http://razpisanie.bdz.bg/mobile/guide.jsp'的iframe显示了日程表,但由于可理解的原因,此功能现在不起作用。

保加利亚国家铁路公司还提供大型车站电子板上的信息。为此,我创建了php文件并从url获取所有内容,并将文件url设为iframe src

例如:

iframe src="./eltabla-sofia.php"

<?php $elTabla = file_get_contents('http://razpisanie.bdz.bg/mobile/lists.jsp?st=SOFIA'); echo $elTabla; ?>

我也得到了css文件,它可以正常工作并且看起来很棒(我用我的原始css进行了更改),因为内容只加载一次并且没有进一步的请求,但是在火车时刻表上,用户需要输入站和站以获取今天的时间表。

如何显示向我的ssl网站提出请求的非ssl页面?

谢谢!

2 个答案:

答案 0 :(得分:2)

恐怕这不容易实现,因为如果您位于https网站,现代浏览器会阻止非HTTPS请求。

我认为您最好的选择是使用fromStationtoStation字段创建自己的表单,在您自己的网站上从用户那里收集此信息,然后以类似的方式访问铁路网站可以,但用户可以提供变量,而不是硬编码的URL

$fromStation = $_GET['fromStation']; // this should be sanitized and validated first
$toStation = $_GET['toStation'];

$content = file_get_contents("http://razpisanie.bdz.bg/mobile/search.jsp?fromstation={$fromStation}&tostation={$toStation}");
echo $content;

这只是一个非常简单的原型,您将失去诸如自动完成的功能(除非您自己编写)。但是除非保加利亚铁路在https上移动其网站,否则恐怕您没有太多选择。

答案 1 :(得分:0)

Becquerel的想法是我的实现。该方法目前可以​​自动完成,但很快就会添加电台列表:

form.html

<form id="form_51888" class="appnitro"  method="post" action="razpisanie.php">
        <div class="form_description">
            <h1>Моля въведете начална и крайна гара на латиница.</h1>
            <h1>Например: sofia,plovdiv,varna</h1>
        </div>                      
        <ul >
            <li id="li_1" >
                <div>
                    <input id="fromStation" name="fromStation" class="element text medium" type="text" maxlength="50" placeholder="НАЧАЛНА ГАРА" value=""/> 
                </div> 
            </li>       
            <li id="li_2" >
                <div>
                    <input id="toStation" name="toStation" class="element text medium" type="text" maxlength="50" placeholder="КРАЙНА ГАРА" value=""/> 
                </div> 
            </li>

            <li class="buttons">
                    <input type="hidden" name="form_id" value="51888" />                    
                    <input id="saveForm" class="button_text" type="submit" name="submit" value="Търсене" />
            </li>
        </ul>
        </form> 

和razpisanie.php的php代码

<?php

    $fromStation = $_POST['fromStation']; // this should be sanitized and validated first
    $toStation = $_POST['toStation'];

    $SanfromStation = filter_var($fromStation, FILTER_SANITIZE_STRING);
    $SantoStation = filter_var($toStation, FILTER_SANITIZE_STRING);

    if ((isset($SanfromStation) && !empty($SanfromStation)) && (isset($SantoStation) && !empty($SantoStation))){
        $content = file_get_contents("http://razpisanie.bdz.bg/mobile/search.jsp?fromstation={$SanfromStation}&tostation={$SantoStation}");

        $contentEnc = iconv('CP1251', 'UTF-8', $content);

        echo $contentEnc;
    }
    else echo 'There is an error';

    ?>

再次感谢贝克勒尔!