重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
看了你的问题,我有点晕,本来是很困的,现在更困了。
创新互联2013年开创至今,先为独山子等服务建站,独山子等地企业,进行企业商务咨询服务。为独山子企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
我觉得,你这不就是一个正常的网站吗?也没什么值需要传呐?
你的登录页面向admin.php传值这个简单,直接用form表单就可以搞定了;
验证的页面完全可以和dir.php合并嘛,登录的话都是用session或cookie完成的,反正你的每个页面都必须要做这一步,直接合并就OK
另外你的dir.php就是一个正常了网页了,也就是用户需要浏览的页面对吧?那你点了对应的链接就链接不同的页面,这个不是太简单了吗?不同的页面去取不同的数据表,神马大型的网站都是这么干的呀!
另外,要和你说的是,安全不安全不是列出了什么,重要的是你列出来的东西不要包含你的字段名,这才是影响安全的重要因素,你可以通过PHP把它转换呐,PHP不就是做这个转换的吗?PHP的功能是神马?就是做这个的呀。
另外,如果你是动态页面,使用链接跳转页面,就必须用?+信息的方式,当然,我说的是初学,如果你学得深入了,可以用伪静态,更可以用纯静态,这个先不说,先把页面间通过get传值弄通,你就学会PHP了,也就是说,你正式进入了PHP的大门。
不行了,熬不住了,睡觉去了.............
使用以下代码可以更改设置。
后端代码
push.php
?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
$worker = new Worker('websocket://0.0.0.0:1234');
// 这里进程数必须设置为1
$worker-count = 1;
// worker进程启动后建立一个内部通讯端口
$worker-onWorkerStart = function($worker)
{
// 开启一个内部端口,方便内部系统推送数据,Text协议格式 文本+换行符 $inner_text_worker = new Worker('Text://0.0.0.0:5678');
$inner_text_worker-onMessage = function($connection, $buffer)
{
global $worker;
// $data数组格式,里面有uid,表示向那个uid的页面推送数据
$data = json_decode($buffer, true);
$uid = $data['uid'];
// 通过workerman,向uid的页面推送数据
$ret = sendMessageByUid($uid, $buffer);
// 返回推送结果
$connection-send($ret ? 'ok' : 'fail');
};
$inner_text_worker-listen();
};
// 新增加一个属性,用来保存uid到connection的映射
$worker-uidConnections = array();
// 当有客户端发来消息时执行的回调函数$worker-onMessage = function($connection, $data)use($worker)
{
// 判断当前客户端是否已经验证,既是否设置了uid
if(!isset($connection-uid))
{
// 没验证的话把第一个包当做uid(这里为了方便演示,没做真正的验证)
$connection-uid = $data;
/* 保存uid到connection的映射,这样可以方便的通过uid查找connection,
* 实现针对特定uid推送数据
*/
$worker-uidConnections[$connection-uid] = $connection;
return;
}
};
// 当有客户端连接断开时
$worker-onClose = function($connection)use($worker)
{
global $worker;
if(isset($connection-uid))
{
// 连接断开时删除映射
unset($worker-uidConnections[$connection-uid]);
}
};
// 向所有验证的用户推送数据
function broadcast($message)
{
global $worker;
foreach($worker-uidConnections as $connection)
{
$connection-send($message);
}
}
// 针对uid推送数据
function sendMessageByUid($uid, $message)
{
global $worker;
if(isset($worker-uidConnections[$uid]))
{
$connection = $worker-uidConnections[$uid];
$connection-send($message);
return true;
}
return false;
}
// 运行所有的worker(其实当前只定义了一个)
Worker::runAll();
启动后端服务
php push.php start -d
前端接收推送的js代码
var ws = new WebSocket('ws://127.0.0.1:1234');
ws.onopen = function(){
var uid = 'uid1';
ws.send(uid);
};
ws.onmessage = function(e){
alert(e.data);
};后端推送消息的代码
// 建立socket连接到内部推送端口
$client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT);
// 推送的数据,包含uid字段,表示是给这个uid推送
$data = array('uid'='uid1', 'percent'='88%');
// 发送数据,注意5678端口是Text协议的端口,Text协议需要在数据末尾加上换行符
fwrite($client, json_encode($data)."\n");
// 读取推送结果
echo fread($client, 8192);这里的uid不一定是用户的id,也可以理解为任务id即 taskid
app可以直接发送http请求给服务器,然后php程序处理完之后,输出数据到一个页面,app获得这个页面就可以解析里面的数据。关于这个页面数据交换格式有很多成熟的方式,比如 xml,json。
参考:
问题真多啊,总结一下,你就是想知道,在本搭写好的 php 程序与数据怎么弄到线上服务器上。两边环境不一样有没有关系。还有php安全问题。
发布php网站问题:
php 程序只需要用 FTP 之类的工具,上传到服务器的 www 目录下即可,这一步并没什么特别的。数据问题,使用任意一种数据库管理程序,将数据从本地导出以后,再用相同的方式,导入线上服务器的数据库中即可。比如 phpmyadmin 在线导入导出工具,当然,服务器上你也得传一份 phpmyadmin 才行。php 程序连接数据库的配置部份当然得改一下。如果你本地数据库的用户名密码与服务器上的相同,那就不用改了。
关于环境版本问题:
近几年的 php 版本变化比较大,有些语法特点是新版才能使用的,有些旧版函数被废弃。只要你不急着使用太新的语法,也不要使用手册中声明弃用的函数。一般没什么问题。数据库方面的区别不太大,基本上没什么不兼容的。
安全问题:
这个说来话长了,矛与盾的问题。没有绝对的矛和盾。对于一些常见的,已知的问题,做好处理就可以了。剩下的安全问题,更多是你程序设计时有没有漏洞罢了。
这需要用ajax来实现
index.php
html
titlephp+jquery+ajax+json简单小例子/title
?php
header("Content-Type:text/html;charset=utf-8");
?
head
script type="text/javascript" src="
script type="text/javascript"
$(function() {
$("#subbtn").click(function() {
var params = $("input").serialize();
var url = "1.php";
$.ajax({
type: "post",
url: url,
dataType: "json",
data: params,
success: function(msg){
var backdata = "您提交的姓名为:" + msg.name +
"br / 您提交的密码为:" + msg.password;
$("#backdata").html(backdata);
$("#backdata").css({color: "green"});
}
});
});
});
/script
/head
body
plabel for="name"姓名:/label
input id="name" name="name" type="text" /
/p
plabel for="password"密码:/label
input id="password" name="password" type="password" /
/p
span id="backdata"/span
pinput id="subbtn" type="button" value="提交数据" //p
/body
/html
1.php代码:
?php
//接收数据-处理数据-返回数据
echo json_encode($_POST);
?
这个很简单了,php 这边写一个接口,然后android的那边访问这个接口就可以了,接口返回值用json封装,然后android那边把json提取出来就可以了
技术支持:论文第9区,专业的网站做专业的事