PHP - 根据电子邮件显示图像

PHP - Display image based on email

我正在寻求帮助。 需要创建一个品牌页面,登录后将根据存储在数据库中的用户电子邮件显示图像。 创建 cookie 和会话 ID 就可以了。只是无法根据用户的电子邮件找到 select 图片的方法。 仅粘贴实际处理用户 ID 的部分代码,因为我的 index.php 文件中的任何其他内容都是纯 html.

到目前为止:

<?php
include 'function.php';
include 'sqlconnect.php';

//User Check
$adminid = "1";

$company1= "@gmail.com";
$company2= "@yahoo.com";

$gmail= mysqli_query($connection, "SELECT Email FROM Users WHERE Email='$company1'");
$yahoo= mysqli_query($connection, "SELECT Email FROM Users WHERE Email='$company2'");

if(loggedin()){
    $checkid = $_SESSION['user_id'];
    if ($adminid == $checkid){ //if user id is 1 then display img of administrator
        echo '<img src="images/admin.png" title="Administrator" width:"75px" height="75px">';
        echo "<li><a href='logout.php'>Logout</a></li>";
    } elseif(filter_var($company1, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\.gmail/', $company1)) {
        echo "<li><a href='logout.php'>Logout</a></li>";
        echo '<img src="images/google.png">';
    } elseif (filter_var($company2, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\.yahoo/',$company2)) {
        echo "<li><a href='logout.php'>Logout</a></li>";
        echo '<img src="images/yahoo.png>';
    }
}

?>

提前致谢!

这应该让您的用户基于会话 user_id 然后按预期显示图像。这里有一些注意事项:

  1. 我不确定您的 ID 字段是什么,所以如果它不同,请将 UserId 替换为您在 $results = 行中的列的名称。

  2. 如果是管理员,我没有运行查询,所以如果您在这种情况下需要其他数据,则必须移动$result = .. 行到 if ($userid == 1){ 行上方。

  3. 我没有检查你的 preg_match 条件的正则表达式,所以如果结果出来了,但图像没有显示,你可以看看 Email 字段是在 if(mysql_num_rows($result) == 1) { 行之后添加 echo <p>'.$result['Email'].'</p>

    <?php
    include 'function.php';
    include 'sqlconnect.php';
    
    if(loggedin()){
        $userid = $_SESSION['user_id'];    
        if ($userid == 1){ //if user id is 1 then display img of administrator
            echo '<img src="images/admin.png" title="Administrator" width:"75px" height="75px">';
            echo "<li><a href='logout.php'>Logout</a></li>";
        } else {
            $results = mysqli_query($connection, "SELECT Email FROM Users WHERE UserId='$userid'");
            if(mysqli_num_rows($results) == 1) {
                foreach(mysqli_fetch_assoc($results) as $result) {
                    echo "<li><a href='logout.php'>Logout</a></li>";
                    if (strpos($result,'yahoo')) {
                        echo '<img src="images/yahoo.png>';
                    } elseif (strpos($result,'gmail')) {
                        echo '<img src="images/google.png">';
                    } else {
                        // you could echo a default image here
                    }
                } 
            }
        }
    }
    
    ?>