typecho手机免登陆快捷发布文章
    words  516     visits  181     
自己有一个简单的网页,直接在手机浏览器上打开输入就会在服务器上保存为一个txt文本,只设置了一个验证码确认权限,没有使用数据库,内容也简单。
通过typecho自己的发布页也是可以在手机上发布的,不过同时在两个页面上发布也可以做个备份。
使用了一个插件,在网上找的,这个人很厉害,做这个插件的时候还是个高中生,那时候是要用流量计费的,不像现在都是无限流量了,用最小流量发布内容quickapi-for-typecho
最终形成只在自己的页面上写下内容,同时在博客上也能发布,不需要登录。其实也在后台登录了,帐户密码还是要输入。
内容很简单,只是外行随便花了点时间琢磨了一下,代码基本都是复制的。
由于get方式有一定限制,当发布内容较多时候会提示url too large错误,无法传递,所以自己手动将插件中的action.php中所有$_GET全部替换成了$_POST方法,在使用curl时也同时调整为POST方式,可以发送较多内容,理论上也是可以发送图片的,不过typecho要上传图片然后获得地址然后再把地址放到文章中,可能还要不少代码。
自制发布页面(post页)
<article id="blog">
<h2 class="major">记录信息</h2>
<section>
<form method="post" action="phpdo/adddir.php" enctype="multipart/form-data" >
<div>
<!-- 账户、apikey、admkey、密码 -->
<td><input type="text" style="text-align:center;border:none;border-radius:1px;height:100%;width:100%;" name="user" id="user"></td>
<td><input type="text" style="text-align:center;border:none;border-radius:1px;height:100%;width:100%;" name="apikey" id="apikey"></td>
<td><input type="text" style="text-align:center;border:none;border-radius:1px;height:100%;width:100%;" name="admkey" id="admkey"></td>
<input type="password" name="password" id="password" />
<!-- 内容 -->
<input type="text" name="dirname" id="dirname" placeholder="今天又学到一招" required/>
<textarea rows="10" overflow-y word-break="break-all" name="message" id="blogmessage" >要写点什么?</textarea>
</div>
<input type="submit" value="点击发送" class="primary" />
<input type="reset" value="重置" />
</form>
</section>
</article>
发布程序
<?php
$path="../blogfile/";
$dirname=$_POST["dirname"];
$hash='验证码';
if(password_verify(@$_POST["password"],$hash)){
@mkdir($path.date("YmdHis").$dirname,0777);
chmod($path.date("YmdHis").$dirname,0777);//新建目录
$filename=date("YmdHis").$dirname.".txt";//文件名
$fp=fopen($path.date("YmdHis").$dirname."/".$filename,"w");//新建文件
fwrite($fp,@$_POST["dirname"]."\r\n");
fwrite($fp,@$_POST["message"]."\n");//写入内容
fclose($fp);
$url = "https://www.moooon.top/blog/quickapi";
$data=array(
"apikey" => @$_POST["apikey"],
"admkey" => @$_POST["admkey"],
"user" => @$_POST["user"],
"password" => @$_POST["password"],
"title" => @$_POST["dirname"],
"text" => @$_POST["message"],
"action" => "post",
);//博客插件参数
$url=$url.http_build_query($data);
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_PORT, 9999);
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制 防止死循环
$tmpInfo = curl_exec($curl); // 执行操作
curl_close($curl); // 关闭CURL会话
//return $tmpInfo; // 返回数据
echo "<script>alert('留言成功,正确的格式还会记录在typecho博客中。');location.href='../index.php#blogshow'</script>";
}
} else{
$tempblog=str_replace("#","",str_replace(PHP_EOL,"",@$_POST["message"]));
echo "<script>alert('验证失败,本页仅限作者填写,如需留言请转到联系页');
}
?>