简介:
一个简易的Ajax-PHP-Vue留言板,这个作品练手用的,很早之前就已经实现出来了,最近两天学习使用Vue框架,所以对前端进行了重写,并且想发出来共同交流学习一下。
特性:
- 前后端分离
- Vue+axios
安装教程
- 导入SQL/comment.sql
- 修改ajax.php中的数据库连接信息
- 开始使用
仓库链接:
https://gitee.com/7gugu/ajax-comment-vue
软件截图:

联系方式:
Email:gz7gugu@qq.com
做人咧,最紧要系开心🥳
一个简易的Ajax-PHP-Vue留言板,这个作品练手用的,很早之前就已经实现出来了,最近两天学习使用Vue框架,所以对前端进行了重写,并且想发出来共同交流学习一下。
https://gitee.com/7gugu/ajax-comment-vue

Email:gz7gugu@qq.com
这两天帮别人开发了一个自动接收报价的脚本.重新使用SteamBot API的时候,发现API的AcceptOffer函数始终无效,故花了一些时间,琢磨出了解决的办法.(也希望给后来者留下一些帮助)

原始的代码下,直接向steamcommunity.com/tradeoffer/0000/accept发送请求,Steam就会返回403 forbidden的回应.
cookie中加入sessionid即可,php中可使用这样子,重新组合一下cookie再发起链接,即可修复该bug.

今天写JAVA代码的时候,碰见了一个这么个报错,由于解决方法第一次知晓,故在此留下笔记。
for(int i = 0; i < tabName.length; i++) {
Btn = new JButton(tabName[i]);
Btn.setPreferredSize(new Dimension(
100, 25));
Btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
tabObj.setSelectedIndex(i); //BUG
}
});
panel.add(Btn);
}
在BUG标识处,我由于使用了一个匿名的未知范围的变量,JAVA编译器就抛出了错误”Local variable i defined in an enclosing scope must be final or effectively final“。
for(int i = 0; i & amp; lt; tabName.length; i++) {
Btn = new JButton(tabName[i]);
Btn.setPreferredSize(new Dimension(100, 25));
final int j = i; //通过这个转换,把一个无范围的匿名变量转换成final变量 //FIX
Btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
tabObj.setSelectedIndex(j);//FIX
}
});
panel.add(Btn);
}
通过使用final int j这个中间变量,java8的编译器就会认为j是一个常量,是安全可用的,因此就不会抛出上述错误,故解决。
之所以会写这个东西,仅仅是为了满足我的小愿望[自己做一个直播站试试],这个直播站从功能以及框架上都非常的羸弱,不足以应对复杂场景,仅仅是做着玩,所以有兴趣的朋友可以下下来玩玩,但不建议应用至生产环境之中。这次的下载站代码会放到Github,并且会在这个文章中附上Nginx(带RTMP模块)的下载链接,以及我的Nginx的配置。
1.下载Nginx-RTMP windows版
[理论上是可以自己编译的,但win版真的超级难编译]
链接: https://github.com/xaccc/nginx-rtmp-win32
2.修改conf/nginx.conf
worker_processes 1;
daemon off;
master_process off;</code>
error_log logs/error.log info;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;//本配置文件是使用1935作为直播服务器的端口
application live {
live on;
notify_method POST;
publish_notify on;
on_publish http://localhost:8080/rtmp/index.php?publish;//网站域名在服务器上使用时也要修改成对外的域名
on_publish_done http://localhost:8080/rtmp/index.php?publish&done;
on_play http://localhost:8080/rtmp/index.php?publish&play;
on_play_done http://localhost:8080/rtmp/index.php?publish&play_done;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 8080;
location / {
root D:/phpstudy/PHPTutorial/WWW;//把这个路径改成你的网站的根目录
index index.html index.htm index.php l.php;
autoindex off;
}
location ~ \.php(.*)$ {
root D:/phpstudy/PHPTutorial/WWW;//把这个路径改成你的网站的根目录
fastcgi_pass 127.0.0.1:9000;//Nginx使用php脚本要单独启用php来监听
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
}
[不过TX云会屏蔽1935端口,所以使用时要自己修改一下]
3.启用Nginx服务器nginx.exe -c conf/nginx.conf
4.启用php服务器php-cgi -b 127.0.0.1:9000 -c php.ini
5.导入SQL到MYSQL中
6.修改config.php
date_default_timezone_set('Asia/Shanghai');
define("DBIP","localhost");//数据库IP
define("DBPORT","3306");//数据库端口
define("DBUSERNAME","root");//数据库用户名
define("DBPASSWORD","root");//数据库密码
define("DBNAME","rmtp");//数据库名
define('SYSTEM_VER','1.0.0');//系统版本号
define('SYSTEM_NAME',"GU直播");//系统名称
define('SYSTEM_ROOT','D:\phpstudy\PHPTutorial\WWW\rtmp\\');//系统网站根目录
define('SUPPORT_URL', 'https://103.249.111.182');
define('SYSTEM_NO_ERROR', false );//是否开启DEBUG模式
define('AUTH_STATE', true );//是否开启注册
define('RTMP_URL', "rtmp://localhost:1935/live/" );//RTMP链接
7.安装完成!



本项目是基于H5 API开发的健身类网页应用
可改造后使其成为”微信小程序”
Github地址:https://github.com/7gugu/lebu
功能:
1.记录用户运动里程
2.记录用户运动消耗卡路里
3.记录用户运动配速
4.生成配速图
5.统计运动趋势
6.管理用户信息
预览:



最近入坑Java开发,学习到使用scanner获取用户输入,并且发现了一些入门的坑点,在此写一点笔记方便以后查找。
import java.util.*;
public class Mathmatic {
public static void main(String[] args) {
Mathmatic math = new Mathmatic();
int result;
result = math.compare();
System.out.println(result);
result = math.isPrime();
System.out.println(result);
}
public int compare() {
int num1,num2;
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个数字:");
num1=input.nextInt();
System.out.println("请输入第二个数字:");
num2=input.nextInt();
input.close();
if(num1==num2) {
return 0;
}else if(num1>num2) {
return 1;
}else if(num1<num2) {
return -1;
}
return 2;
}
public int isPrime() {
int prime;
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字:");
prime=input.nextInt();
for(int i=2;i<prime;i++) {
if(prime%i==0) {
return 0;
}
}
return 1;
}
}
此段代码在运行过程中,如果调用了compare函数之后,再调用isPrime函数,将会报以下错误。
num2=input.nextInt();
-->input.close();<--
这是因为在函数中,声明了一个scanner对象,并且调用了close方法。这可能是由于所有的scanner类共享一个输入流,当其中一个调用关闭函数的时候,所有的scanner对象都关闭了。
在程序的最后,再使用close方法

说说最近我干了啥.距离上次发文章已经20天了,这段时间里我跑去海南玩了,回来就写了一周的laravel项目了。这次是第一次写,写的挺菜的,被dalao摁在地面上摩擦了,不过还好经过这次开发,我还是学到了一些东西,在这里Mark一下,方便以后差错。
这次是第一次用auth组件来开发登录模块。由于应用的美工已经规定好了,我就直接手动认证了。
文档写的是
attempt(["email"=>$email,"password"=>$password])
,这个组件是只能用email来作为username,不能自定义username。
login组件需要传入的参数是用户实例。
用户实例的意思是你一定查到的那一条数据,比如你通过ORM查到了一条password符合的数据,此时这条数据就是一个用户实例。
可能的原因如下:
modal原代码:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
}
要把代码改成这样子才行!
modal改动后的代码:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;//要改成继承这个Auth组件
class User extends Authenticatable
{
}
Kernel原代码:
有可能是这个组件被注释了,此时需要的是取消注释。
login方法定位用户靠的是数据库的字段名id。
这个字段名必须是id,不能是Id、iD、ID。不然Auth组件将不能够正常工作
数据表,必须有remember_token用于存储辨识用户session的凭证。
不然laravel会报错。
