为PHP脚本添加视觉样式(页面)

时间:2015-07-27 02:05:54

标签: php html css

用户到达以下php脚本,并设置是否已确认电子邮件。

目前,用户在浏览器中看到的唯一内容是由php echo打印的非常简单的消息。

我希望它看起来更有趣。将此回显作为具有标题,字体样式,签名,图像的正确样式的HTML页面的一部分......

考虑到我的脚本有断点,最好的方法是什么?正如我之前从未这样做过的那样,不确定将重点放在哪一方面是最好的起点。

  

Bellow是基于答案的代码更新。希望有助于其他   不熟悉php的用户。

<?php
require("../db/MySQLDAO.php");
require ("../Classes/EmailConfirmation.php");
$config = parse_ini_file('../db/SwiftApp.ini');

//host access data

$dbhost = trim($config["dbhost"]);
$dbuser = trim($config["dbuser"]);
$dbpassword = trim($config["dbpassword"]);
$dbname = trim($config["dbname"]);

// receive token data

$emailToken = htmlentities($_GET["token"]);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport" content="width=device-width" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Title here</title>
<style>
/* -------------------------------------
        GLOBAL
------------------------------------- */
* {
    margin: 0;
    padding: 0;
    font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
    font-size: 100%;
    line-height: 1.6;
}
img {
    max-width: 100%;
}
body {
    -webkit-font-smoothing: antialiased;
    -webkit-text-size-adjust: none;
    width: 100%!important;
    height: 100%;
}
/* -------------------------------------
        ELEMENTS
------------------------------------- */
a {
    color: #348eda;
}
.btn-primary {
    text-decoration: none;
    color: #FFF;
    background-color: #348eda;
    border: solid #348eda;
    border-width: 10px 20px;
    line-height: 2;
    font-weight: bold;
    margin-right: 10px;
    text-align: center;
    cursor: pointer;
    display: inline-block;
    border-radius: 25px;
}
.btn-secondary {
    text-decoration: none;
    color: #FFF;
    background-color: #aaa;
    border: solid #aaa;
    border-width: 10px 20px;
    line-height: 2;
    font-weight: bold;
    margin-right: 10px;
    text-align: center;
    cursor: pointer;
    display: inline-block;
    border-radius: 25px;
}
.last {
    margin-bottom: 0;
}
.first {
    margin-top: 0;
}
.padding {
    padding: 10px 0;
}
/* -------------------------------------
        BODY
------------------------------------- */
table.body-wrap {
    width: 100%;
    padding: 20px;
}
table.body-wrap .container {
    border: 1px solid #f0f0f0;
}
/* -------------------------------------
        FOOTER
------------------------------------- */
table.footer-wrap {
    width: 100%;    
    clear: both!important;
}
.footer-wrap .container p {
    font-size: 12px;
    color: #666;

}
table.footer-wrap a {
    color: #999;
}
/* -------------------------------------
        TYPOGRAPHY
------------------------------------- */
h1, h2, h3 {
    font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
    color: #d63480;
    margin: 40px 0 10px;
    line-height: 1.2;
    font-weight: 200;
}
h1 {
    font-size: 36px;
}
h2 {
    font-size: 28px;
}
h3 {
    font-size: 22px;
}
p, ul, ol {
    margin-bottom: 10px;
    font-weight: normal;
    font-size: 14px;
}
ul li, ol li {
    margin-left: 5px;
    list-style-position: inside;
}
/* ---------------------------------------------------
        RESPONSIVENESS
------------------------------------------------------ */
/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
.container {
    display: block!important;
    max-width: 600px!important;
    margin: 0 auto!important; /* makes it centered */
    clear: both!important;
}
/* Set the padding on the td rather than the div for Outlook compatibility */
.body-wrap .container {
    padding: 20px;
}
/* This should also be a block element, so that it will fill 100% of the .container */
.content {
    max-width: 600px;
    margin: 0 auto;
    display: block;
}
/* Let's make sure tables in the content area are 100% wide */
.content table {
    width: 100%;
}
</style>
</head>

<body bgcolor="#f6f6f6">

<!-- body -->
<table class="body-wrap" bgcolor="#f6f6f6">
    <tr>
        <td></td>
        <td class="container" bgcolor="#FFFFFF">

            <!-- content -->
            <div class="content">
            <table>
                <tr>
                    <td>
                        <h1>Title</h1>                      
                        <table>
                            <tr>
                                <td class="padding">
                                    <p>
                                        <?php
                                        if(empty($emailToken))  {
                                            echo "<h2>Sorry, something went wrong...</h2>";
                                            echo "<p>Unfortunately your email validation token has expired.</p>";
                                            echo "<p>Please get in contact with us at <a href=mailto:></a></p>";

                                        }
                                        else{

                                            //open server connection

                                            $dao = new MySQLDAO($dbhost, $dbuser, $dbpassword, $dbname);
                                            $dao->openConnection();

                                            //creates user 

                                            $user_id = $dao->getUserIdWithToken($emailToken);

                                            if(empty($user_id))
                                            {
                                                echo "<h2>Sorry, something went wrong...</h2>";
                                                echo "<p>We could not find an user associated with the email you provided.</p>";
                                                echo "<p>Please get in contact with us at <a href></a></p>";

                                            }
                                            else{

                                                $result = $dao->setEmailConfirmedStatus(1, $user_id);

                                                if($result)
                                                { 

                                                  echo "<h2>Thank you! Your email is now confirmed!<h2>";
                                                  $dao->deleteUsedToken($emailToken);  
                                                }

                                            }

                                            $dao->closeConnection();
                                        }
                                        ?>



                                    </p>
                                </td>
                            </tr>
                        </table>
                        <p class="padding"></p>
                        <p>Thanks,</p>
                        <p>Title team</p>
                        <p class="padding"></p>
                    </td>
                </tr>
            </table>
            </div>
            <!-- /content -->

        </td>
    </tr>
</table>
<!-- /body -->

</body>
</html>

4 个答案:

答案 0 :(得分:2)

使用HTML构建您的内容,并使用CSS格式化您的内容。

您可以将HTML和CSS与字符串一起回显。

这些链接应该让你朝着正确的方向前进。

更新以容纳评论

有很多方法,但一个可能适用于您的情况的简单示例是这样的:

而不是echo语句中的if,而是将其替换为includerequire

让我们调用该文件template.php。此文件不需要以<?php开头,而是以?>结尾。 PHP可以使用HTML进行打卡和打卡。所以template.php可能如下所示:

<!DOCTYPE html>
<html>
    <head>
        <meta name="description" content="" />
        <meta name="keywords" content="" />
        <meta charset="UTF-8">
        <title></title>
        <link href="css/styles.css" rel="stylesheet" />
    </head>
    <body>
        <div class="some_style"><?php
            echo 'something';
        ?></div>
        <div class="some_style2"><?php
            echo $some_var;
        ?></div>
    </body>
</html>

此外,如果要通过电子邮件发送,电子邮件中不支持CSS,因此您需要将样式保留在简单的HTML标记和图像上。

答案 1 :(得分:2)

urgh ..在php中的丑陋html。有些方法可以在脚本中包含html而不会回显它。

有旧方法。

// out of php
?>
<div>
<?php echo $content; ?>
</div>
<?
// back in.

或者你可以看看php / html的简短手。您的代码将从中受益,因为它的阅读会更加清晰,

主要原因是,除非你必须,否则不要让php解析HTML。

答案 2 :(得分:1)

将您的回音更改为:

echo '<div id="message">User with this email token is not found</div>';

然后使用css

设置#message样式

希望有所帮助!

答案 3 :(得分:0)

PHP

echo "<p id='token_message'>User with this email token is not found</p>";

CSS

#token_message {
    /* Styling Here */
}