douhushen3241 2018-04-10 14:37
浏览 224
已采纳

PHP默认配置文件图片设置

I have had a problem with creating a if statement in order to display a default profile picture in case that the user hasn't uploaded their own profile picture. I have tried many examples online yet none of them seemed to have worked on my certain code and didn't reply to working, overall. I deleted my attempts to fixing the problem and gave the original code. Here's the current code I have:

<?php
    session_start();

    if (!isset($_SESSION['username'])) {
        $_SESSION['msg'] = "You must log in first";
        header('location: login.php');
    }

    if (isset($_GET['logout'])) {
        session_destroy();
        unset($_SESSION['username']);
        header("location: login.php");
    }
$username = $_SESSION['username'];
$file = "extra/" . $username . ".png";
?>
<html>
<title> Home Page </title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<header>
    <div class="container">
      <nav>
        <ul>
          <li><a href="index.php">Home</a></li>
          <li><a href="downloads.php">Downloads</a></li>
          <li><a href="chat.php">Chat</a></li>
          <li><a href="profile.php">Profile</a></li>
          <li class="logout"><a href="index.php?logout='1'">Logout</a></li>
        </ul>
      </nav>
    </div>
  </header>
<body>
  <div class="profileIMG">
    <img src=<?php echo $file; ?>  width="100" height="100">
  </div>
  <div class="profileNAME">
    <<?php echo $username ?>
  </div>
</body>
<footer>
<div class="status">Currently logged in as <?php echo $username ?></div>
</footer>
</html>

CSS

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 13%;
    background-color: #f1f1f1;
    position: fixed;
    height: 100%;
    font-size: 20px;
    font-family: arial;
    overflow: hidden; 
}
li a {
    display: block;
    color: #000;
    padding: 8px 16px;
    text-decoration: none;
}

li a.active {
    background-color: #4CAF50;
    color: white;
}

li a:hover:not(.active) {
    background-color: #555;
    color: white;
}

li a:target { 
    background-color: #4CAF50;
    color: white;
}

li button {
    display: block;
    color: #000;
    padding: 8px 16px;
    text-decoration: none;
}

li button.active {
    background-color: #4CAF50;
    color: white;
}

li button:hover:not(.active) {
    background-color: #555;
    color: white;
}
body { 
    background-image: url(extra/background.png); 
    margin: 0;
    overflow: hidden;
}
h5 {
    color: green;
    margin-left: 6%;
    font-family: arial;
    font-size: 15px;
}
input[type=text] {
    width: 100%;
    box-sizing: border-box;
    border: 2px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
    background-color: white;
    background-position: 10px 10px;
    background-repeat: no-repeat;
    padding: 12px 20px 12px 15px;
}
#player {
  width: 200px;
  height: 50px;
  position: relative;
  margin-left: 24px;
  top: 18px;
}
#player i {
  position: absolute;
  margin-top: -6px;
  color: #666;
}
#player i.fa-volume-down {
  margin-left: -8px;
}
#player i.fa-volume-up {
  margin-right: -8px;
  right: 0;
}

#volume {
  position: absolute;
  left: 24px;
  margin: 0 auto;
  height: 5px;
  width: 150px;
  background: #555;
  border-radius: 15px;
}
#volume .ui-slider-range-min {
  height: 5px;
  width: 300px;
  position: absolute;
  background: #2ecc71;
  border: none;
  border-radius: 10px;
  outline: none;
}
#volume .ui-slider-handle {
  width: 20px;
  height: 20px;
  border-radius: 20px;
  background: #FFF;
  position: absolute;
  margin-left: -8px;
  margin-top: -8px;
  cursor: pointer;
  outline: none;
  z-index: 1;
}
.logStatus {
  position: absolute;
  bottom: 0;
}

The CSS is not needed but rather there to make viewing more pleasing. Also, the folder extra/ contains the images and the name of the default photo is defaultProfile.png.

  • 写回答

1条回答 默认 最新

  • doushi3189 2018-04-10 14:40
    关注

    Make this simple change at the top of your script where you are initialising your $file variable,

    $file = 'extra/' . $username . '.png';
    
    if (!file_exists($file))
        $file = 'path-to-default-image';
    

    To be fair, if you wanted to keep your code 'logical', you can flip the above check, so it sets $file to the default image location first and then if the user's image exists then switch to that:

    $file = 'path-to-default-image';
    
    if (file_exists('extra/' . $username . '.png'))
        $file = 'extra/' . $username . '.png';
    

    Reading Material

    file_exists

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿