0%

ROIS2023冬令营第三周学习记录

(01/30更了)学了个寂寞😅
后知后觉这是第三周OMG那我第二周干了什么。。。?

都是车轱辘和废话。。可以直接拉到最下面看我丑陋的页面👉👈。。

Crypto

CryptoHack更了一点点
CryptoHack部分wp
这次的题用到的gmpy2库里的函数比较多,放一下搜到的
gmpy2常见函数使用
(01/30)会把读书笔记继续贴上来。。。

web

学习记录还在写😅跟没学似的有时候觉得自己😅真服了

2003/01/29

php

安装和配置参考,几个教程其实大差不差。。。
win10如何安装和搭建php开发环境
windows下PHP环境的搭建
php windows环境安装(图文版)

前端

随便一点啦。。懒得修饰了啦。。
登录页面

1
2
3
4
5
6
7
8
9
10
11
12
13
<head>
<title>简陋登录页面</title>
<meta charset="utf-8">
</head>
<p>你懂什么大道至简(目移)</p>
<p>页面简陋一些也没什么吧(悲)</p>

<form action="" method="post">
<p>用户: <input type="text" name="username" /></p>
<p>密码: <input type="password" name="password" /></p>
<p><input type="submit" name="login" value="登录"/></p>
</form>
<a href = "register.php">立即注册</a>

注册页面

1
2
3
4
5
6
7
8
9
10
11
12
<head>
<title>简陋注册页面</title>
<meta charset="utf-8">

</head>

<form action="" method="post">
<p>用户: <input type="text" name="username" /></p>
<p>密码: <input type="password" name="password" /></p>
<p><input type="submit" name="login" value="注册"/></p>
</form>
<a href = "login.php">点我返回</a>
数据库
1
2
3
<?php
$db = mysqli_connect("localhost","root","root","test");
?>

新建一个数据库,数据表,字段为相应的“username”和“password”。
create database test;
alter database test character set utf8;
use test;

创建test数据库并建立user表。。不知道这步有没有写错。。
create table user(id INT, username VARCHAR(20), password VARCHAR(20));

show create table user;
desc user;
给自己加个号
insert into user(id,username,password) values(1,LinTu,qwertyuiop);

期间出现的问题,网上查到的(我能用的)解决方法:

  1. 我不会说我PHP连上MySQL这个问题就花了三小时但这是事实😅
    Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in
    php7.4.5 出现Call to undefined function mysqli_connect()解决方法
后端

其实我前端后端是写在一起的。。但这不重要。。
登录页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
error_reporting(E_ALL ^ E_NOTICE);

session_start();
require("sql.php");

$username=$_POST['username'];
$password=$_POST['password'];

$sql="select id,username,password from user where username='$username' and password='$password'";
$result=mysqli_query($db,$sql);
$a=mysqli_fetch_array($result);

if($a['username']==$username && $username!='' ){
echo "<script>alert('登录成功!');window.location='guestbook.php';</script>";
}else{
echo "<script>alert('输入为空或密码错误或未注册')</script>";
}
?>

注册页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
error_reporting(E_ALL ^ E_NOTICE);

session_start();
require("sql.php");

$username=$_POST['username'];
$password=$_POST['password'];

// $sql="insert into user(username,password) values('$username','$password')";

$result=mysqli_query($db,$sql);
$a=mysqli_fetch_array($result);

if(!empty($_POST['username'])){
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($a)){
if(!empty($_POST['password'])){
$sql="insert into user(username,password) values('$username','$password')";
echo "<script>alert('注册成功!');window.location='login.php';</script>";
}else{
echo "<script>alert('输入不能为空')</script>";
}
}else{
echo "<script>alert('该用户名已被注册!')</script>";
}
}
?>

给留言板部分加了个登出功能突然意识到这玩意是不是也要接个数据库才能发布留言但是我凑合过吧我不想管了明天再说吧呵呵呵呵呵呵呵呵呵呵呵呵呵呵

1
2
3
4
5
6
7
8
9
10
<?php
session_start();
require("sql.php");

if (isset($_SESSION['username'])) {
echo '欢迎您,'.$_SESSION["username"];
}
?>
<br>
<a href="123.php">登出</a>

123.php的部分

1
2
3
4
5
<?php
session_start();
unset($_SESSION["uesrname"]);
echo "<script>alert('登出成功!');window.location='login.php';</script>";
?>

现在的问题是登录页面弹窗老出问题但是我懒得改了然后注册页面不是注册的账号写不进数据库就是写进数据库但是会出现同名现象然后留言板根本没写至于剩下的页面美化呵呵呵呵呵呵呵呵呵呵呵呵谁管它谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎谁在乎主队打保级队2-5我真的精神崩溃了受不了了受不了了受不了了受不了了受不了了随便了随便了随便了随便了差不多得了差不多得了差不多得了

先下了需要调理一下再见明天见明天也不一定见

2023/01/30

敷衍地改了改登录页面的php,现在弹窗好一点了。。其实没差多少。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
error_reporting(E_ALL ^ E_NOTICE);

session_start();
require("sql.php");

$username=$_POST['username'];
$password=$_POST['password'];

$sql="select id,username,password from user where username='$username' and password='$password'";
$result=mysqli_query($db,$sql);
$a=mysqli_fetch_array($result);

if($username!='' && $password!=''){
if($a['username']==$username ){
echo "<script>alert('登录成功!');window.location='guestbook.php';</script>";
}else{
echo "<script>alert('密码错误或未注册')</script>";
}
}else{
echo "输入不能为空。。(远目)";
}
?>

注册页面php小修了一下,现在能正常写进数据库并且不会同名了(大概吧。。
(注释全是写烂了的。。
(写得好丑陋。。有缘再修吧。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
error_reporting(E_ALL ^ E_NOTICE);

session_start();
require("sql.php");

$username=$_POST['username'];
$password=$_POST['password'];

// $sql="insert into user(username,password) values('$username','$password')";
$sql_n="select username from user where username='$username'";
$sql_p="select password from user where and password='$password'";

$result_n=mysqli_query($db,$sql_n);
$n=mysqli_fetch_array($result_n);

// $result_p=mysqli_query($db,$sql_p);
// $p=mysqli_fetch_array($result_p);

$username = $_POST['username'];
$password = $_POST['password'];
// if($a['username']==$username){
// echo "<script>alert('该用户名已被注册!');;</script>";
// }else{
// echo "<script>alert('注册成功');;</script>";
// }
if(!empty($_POST['username'])){

if($n['username']!=$username){
if(!empty($_POST['password'])){
$insert=mysqli_query($db,"insert into user (username,password) values('$username','$password')");
echo "<script>alert('注册成功!');window.location='login.php';</script>";
}else{
echo "<script>alert('输入不能为空')</script>";
}
}else{
echo "<script>alert('该用户名已被注册!')</script>";
}
}
?>


?>

给留言板开个表
create table guestbook (message VARCHAR(2500));
偶们留言板是匿名的😎😎😎非常酷炫捏。。。。(其实是能少写一点是一点捏。。。。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<head>
<title>简陋留言板</title>
<meta charset="utf-8">
</head>
<p>你好捏。。。要写点什么不。。。?</p>

<form action="http://localhost/guestbook.php" method="post">
<p>写点什么: <input type="text" name="message" /></p>
<p><input type="submit" name="login" value="提交"/></p>
</form>

<?php
error_reporting(E_ALL ^ E_NOTICE);

session_start();
require("sql.php");

$message=$_POST['message'];

// $sql="select message from guestbook where message='$message'";
$result=mysqli_query($db,"select * from guestbook");
$a=mysqli_fetch_array($result);

$datarow = mysqli_num_rows($result);

if($message!=''){
$insert=mysqli_query($db,"insert into guestbook (message) values ('$message') ");
}

echo "<a href='123.php'>登出</a><br><br>";
echo "<span style='font-size: 32px'>一些前人留言。。</span><br><br>";

for($i=0;$i<= $datarow;$i++){
$sql_arr = mysqli_fetch_assoc($result);
$message = $sql_arr['message'];
echo "$message<br>";
}
// while($sql_arr = mysqli_fetch_assoc($result)){
// echo $sql_arr['message'].'<br/>';
// }

?>

OMG刚刚看了一眼原来要输出留言人的捏。。。。。。。。没关系这部分可以明天再写因为本人累了今天不想写了不如读书。。。。。。。。。。

现在存在的问题是

  1. 留言板根本没有留言人;
  2. 留言板里数据库最上面一行的数据不知道为什么没有显示在页面上
  3. 理论上说留言板的顺序应该是新发布的浮在上面,但是我没有捏(不过这个循环改一下就好应该
  4. 其实不登录直接登guestbook.php页面也可以发留言。。这部分可以改进一下。。
  5. 发完留言后自己的留言不能刷新一下就出来,因为你查找的页面使用了你输入的信息。返回此页面可能导致重复你在那里进行的任何操作。是否继续?会导致数据库输入两次数据。。
  6. 留言板完全不安全,随便<script>alert(/xss/)</script>一下直接干懵。。不过这个不着急。。。

放一下做完的图片吧。。今天的学习就敷衍到这里啦。。
登录页面
401428a881632f1384debbc5b7589219.png
注册页面
c9653f45d80bc6bcbf32189a59d748f4.png
留言板页面
9de939df400a58bece0673519129c94d.png
写点什么吧。。
0601d22a29a50fb1448eb89f7ca12be3.png
226ac99ca158e87bc3a0bfa68133c9a4.png
然后是我的数据库和两个表。。
8a854421ef954ee8e6dc89a76081ea91.png
好啦。。。明天再见吧。。。。

2023/02/24

放一下留言板源码。。
林涂的留言板代码