addemail.php

<!DOCTYPE html>
<html lang="cn" dir="ltr">
<head>
<meta charset="UTF-8">
<title>猫王商店 - 添加邮箱</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<img src="blankface.jpg" width="161" height="350" alt="" style="float:right">
<img name="elvislogo" src="elvislogo.gif" width="229" height="32" border="0" alt="Make Me Elvis">
<p>E添加你的名字和邮箱到 <strong>猫王商店</strong> 的邮箱列表。</p>
<?php
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$output_form = 'no'; if (empty($name) || empty($email)) {
echo '请完整填写要求的内容.<br />';
$output_form = 'yes';
}
}
else {
$output_form = 'yes';
} if(!empty($name)&&!empty($email)){
$dbc = mysqli_connect('127.0.0.1','root','','elvis_store')
or die('链接MySQL失败。'); $query = "INSERT INTO email_list (name, email)".
"VALUES ('$name', '$email')";
mysqli_query($dbc, $query)
or die('数据添加失败。'); echo '顾客信息添加完成。'; mysqli_close($dbc);
} if ($output_form == 'yes'){
?> <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<label for="NAME">姓名:</label>
<input type="text" name="name" id="name"><br>
<label for="email">邮箱地址:</label>
<input type="text" name="email" id="name"><br>
<input type="submit" name="submit" value="提交">
</form> <?php
}
?>
</body>
</html>

sendemail.php

<!DOCTYPE html>
<html lang="cn" dir="ltr">
<head>
<meta charset="utf-8">
<title>猫王商店 - 发送邮件</title>
<<link rel="stylesheet" href="style.css">
</head>
<body>
<img src="blankface.jpg" alt="黑脸" width="161" height="350" style="float:right">
<img src="elvislogo.gif" alt="猫王商店" name="elvislogo" width="229" height="32" border="0">
<p><strong>私人的:</strong>仅供Elmer使用<br>
向邮箱列表的成员写和发送邮件。</p>
<?php
if (isset($_POST['submit'])) {
$from = 'xxxxxxxx@xxx.com';
$subject = $_POST['subject'];
$text = $_POST['elvismail'];
$output_form = false; if (empty($subject) && empty($text)) {
// We know both $subject AND $text are blank
echo '你忘记输入邮件的标题和内容。<br>';
$output_form = true;
} if (empty($subject) && (!empty($text))) {
echo '你忘记输入邮件标题<br>';
$output_form = true;
} if ((!empty($subject)) && empty($text)) {
echo '你忘记输入邮件正文.<br>';
$output_form = true;
}
}
else {
$output_form = true;
} if ((!empty($subject)) && (!empty($text))) {
$dbc = mysqli_connect('127.0.0.1','root','','elvis_store')
or die('链接MySQL失败。');
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query)
or die('查询数据库失败。'); while($row = mysqli_fetch_array($result)){
$name = $row['name']; $msg = "亲爱的 $name ,\n $text";
$to = $row['email'];
mail($to, $subject, $msg, 'From:'.$from); echo '邮件发送到了:'.$to.'<br>';
} mysqli_close($dbc);
} if ($output_form) {
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<label for="subject">邮件的标题:</label><br>
<input type="text" name="subject" id="subject" size="30"><br>
<label for="elvismail">邮件的内容:</label><br>
<textarea name="elvismail" id="elvismail" rows="8" cols="40"></textarea><br>
<input type="submit" name="Submit" value="提交">
</form> <?php
}
?> </body>
</html>

removeemail.php

<!DOCTYPE html>
<html lang="cn" dir="ltr">
<head>
<meta charset="utf-8">
<title>猫王商店 - 删除邮箱</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<img src="blankface.jpg" alt="黑脸" width="161" height="350" style="float:right">
<img src="elvislogo.gif" alt="猫王logo" width="229" height="32" name="elvislogo" border="0">
<p>输入你想要移除的邮箱。</p>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
$dbc = mysqli_connect('127.0.0.1','root','','elvis_store')
or die('链接MySQL失败。'); if(isset($_POST['submit'])){
foreach ($_POST['todelete'] as $$delete) {
$query = "DELETE FROM email_list WHERE id = $delete_id0";
mysqli_query($dbc, $query)
or die('查询数据库失败。');
}
echo "顾客邮箱移除完毕。<br>";
} $query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query)
or die('查询数据库失败。'); while($row = mysqli_fetch_array($result)){
echo '<input type="checkbox" value="' .$row['id']. '" name="todelete[]">';
echo "$row['name']";
echo "$row['email']";
echo "<br>";
}
mysqli_close($dbc);
?> <input type="submit" name="submit" value="Remove" />
</form>
</body>
</html>

Head First PHP&MySQl第四章代码的更多相关文章

  1. Head First PHP&MySQl第三章代码

    addemail.html <!DOCTYPE html> <html lang="cn"> <head> <meta charset=& ...

  2. 第四章-使用本机文件对话框和帮助进程间沟通 | Electron实战

    本章主要内容: 使用Electron的dialog模块实现一个本机打开文件对话框 促进主进程和渲染器进程之间的通信 将功能从主进程暴露给渲染器进程 使用Electron的remote模块从主进程导入功 ...

  3. 第四章 MySQL高级查询(二)

    第四章 MySQL高级查询(二) 一.EXISTS子查询 在执行create 或drop语句之前,可以使用exists语句判断该数据库对像是否存在,返回值是true或false.除此之外,exists ...

  4. “全栈2019”Java异常第四章:catch代码块作用域详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  5. 第四章:重构代码[学习Android Studio汉化教程]

    第四章 Refactoring Code The solutions you develop in Android Studio will not always follow a straight p ...

  6. 第四章 INI配置——《跟我学Shiro》

    转发地址:https://www.iteye.com/blog/jinnianshilongnian-2020820 第四章 INI配置——<跟我学Shiro> 博客分类: 跟我学Shir ...

  7. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  8. 《Linux内核设计与实现》读书笔记 第四章 进程调度

    第四章进程调度 进程调度程序可看做在可运行太进程之间分配有限的处理器时间资源的内核子系统.调度程序是多任务操作系统的基础.通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的 ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...

随机推荐

  1. Flyway Validate failed: Migration checksum mismatch for migration version 1.0.0.01 错误

    在运行系统的时候出现错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ...

  2. 51 Nod 1242 矩阵快速幂求斐波那契数列

    #include<bits/stdc++.h> #define mod 1000000009 using namespace std; typedef long long ll; type ...

  3. Github 已经托管超过 1000 万个项目库

    2013 年对 Github 来说是不可思议和富有成效的一年,几天前 Github.com 上托管的项目已经超过 1000 万. 在此之前,首个 100 万项目用了将近 4 年时间,具体是 3 年 8 ...

  4. Hibernate动态条件查询(Criteria Query)

    1.创建一个Criteria实例net.sf.hibernate.Criteria这个接口代表对一个特定的持久化类的查询.Session是用来制造Criteria实例的工厂. Criteria cri ...

  5. Java常考面试题整理(四)

    有关所有Swing相关的面试题,都可以说是凑数的,感觉自己在敲这些的时候感觉一点用处都没有,可以从第72条开始看. 61.说出三种支持重绘(painting)的组件. 参考答案: Canvas,Fra ...

  6. LeetCode 300. 最长上升子序列(Longest Increasing Subsequence)

    题目描述 给出一个无序的整形数组,找到最长上升子序列的长度. 例如, 给出 [10, 9, 2, 5, 3, 7, 101, 18], 最长的上升子序列是 [2, 3, 7, 101],因此它的长度是 ...

  7. Python学习笔记:第一次接触

    用的是windows的IDLE(python 3) 对象的认识:先创建一个list对象(用方括号) a = ['xieziyang','chenmanru'] a 对list中对象的引用 a[0] # ...

  8. JSP——隐式对象(implicit object)

    Servlet容器将几个对象传递给它所运行的Servlet. 例如,在Servlet的service方法中获得HttpServletRequest和HttpServletResponse,并在init ...

  9. 一、基础篇--1.1Java基础-什么是java的序列化和反序列化

     什么是序列化和反序列化 序列化:把堆内存中的java对象数据,通过某种方式把对象存储到磁盘文件或者传递给其他网络节点.这个过程称为序列化.简单来说呢,就是将对象转换成二进流的过程. 反序列化:把磁盘 ...

  10. C++模板函数实践1

    实践如下: #include <iostream> #include <typeinfo> using namespace std; class Bean{ private: ...