我的网站带有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页面?
谢谢!
答案 0 :(得分:2)
恐怕这不容易实现,因为如果您位于https网站,现代浏览器会阻止非HTTPS请求。
我认为您最好的选择是使用fromStation
和toStation
字段创建自己的表单,在您自己的网站上从用户那里收集此信息,然后以类似的方式访问铁路网站可以,但用户可以提供变量,而不是硬编码的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';
?>
再次感谢贝克勒尔!