Как получить изображение профиля пользователя через имя пользователя в PHP?
Я разработал Профиль пользователя, в который он может загрузить свою фотографию при первом входе в систему. Его фотография профиля сохраняется в папке, а путь к изображению сохраняется в базе данных. Теперь я хочу получить это изображение, используя его имя пользователя, которое у меня есть, чтобы сделать его уникальным. когда пользователь сохраняет свою фотографию профиля, через скрытую кнопку отправки, я сохраняю его имя пользователя в базе данных.
Но эта выборка кода изображения не работает
Что я уже пробовал:
Это мой полный прием. php-файл, в котором пользователь может изменить свою фотографию профиля и увидеть его детали профиля.
<?php include('config.php');?> <?php // index.php session_start(); if(!isset($_SESSION['username'])) { header("Location: login.php"); exit(); } $username = $_SESSION['username']; $sql = "SELECT * FROM services WHERE user_name = '".$_SESSION['username']."'"; $result = $con->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { ?> <!-- Save username and profile picture--> <link rel="stylesheet" type="text/css" href="css/welcome_php.css"> <?php include('header.php');?> <div class="container"> <div class="row"> <div class="col-md-7 "> <div class="panel panel-default"> <div class="panel-heading"> <a style="float: right" href="logout.php"> Logout</a> <center> <h4 >User Profile</h4></center> </div> <div class="panel-body"> <div class="box box-info"> <div class="box-body"> <div class="col-sm-6"> <form method="post" action="ajaxupload.php" enctype="multipart/form-data"> <h5 style="color:#a66a6a;">Set your profile picture</h5> <input type="file" name="Filename"> <input type="hidden" name="Description" value="<?php echo $row ['user_name']; ?>" /> <br/> <input TYPE="submit" name="upload" value="Submit" class="btn1" /> </form> </div> <div class="col-sm-6"> <h4 style="color:#a66a6a;"><?php echo $row ['name']; ?></h4></span> <span><p><?php echo $row ['service']; ?></p></span> </div> <div class="clearfix"></div> <hr style="margin:5px 0 5px 0;"> <div class="col-sm-5 col-xs-6 tital " >Name</div><div class="col-sm-7 col-xs-6 "><?php echo $row ['name']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >User Name</div><div class="col-sm-7"> <?php echo $row ['user_name']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >Password</div><div class="col-sm-7"> <?php echo $row ['password']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >email</div><div class="col-sm-7"><?php echo $row ['email']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >District</div><div class="col-sm-7"><?php echo $row ['district']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >City</div><div class="col-sm-7"><?php echo $row ['city']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >Address</div><div class="col-sm-7"><?php echo $row ['address']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >Service</div><div class="col-sm-7"><?php echo $row ['service']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >Years</div><div class="col-sm-7"><?php echo $row ['years']; ?></div> <div class="clearfix"></div> <div class="bot-border"></div> <div class="col-sm-5 col-xs-6 tital " >Details</div><div class="col-sm-7"><?php echo $row ['details']; ?></div> <center><a href="update_userinfo.php" class="btn" role="button">Update</a></center> <?php } } ?> <?php $sql="SELECT image_path FROM images where user_name = '".$_SESSION['username']."'"; $result = $con->query($sql); $file_name=$row['file_name']; $image_path=$row['image_path'];//here you get path where you store image for user1 ?> <img src=<?php echo"$image_path";?> width=500 height=400> <br>
Это ajax upload file который сохраняет изображение в ddatabse
<?php $fileExistsFlag = 0; $fileName = $_FILES['Filename']['name']; $link = mysqli_connect("localhost","root","","construction") or die("Error ".mysqli_error($link)); /* * Checking whether the file already exists in the destination folder */ $query = "SELECT file_name FROM images WHERE file_name='$fileName'"; $result = $link->query($query) or die("Error : ".mysqli_error($link)); while($row = mysqli_fetch_array($result)) { if($row['filename'] == $fileName) { $fileExistsFlag = 1; } } /* * If file is not present in the destination folder */ if($fileExistsFlag == 0) { $target = "uploads/"; $fileTarget = $target.$fileName; $tempFileName = $_FILES["Filename"]["tmp_name"]; $fileDescription = $_POST['Description']; $result = move_uploaded_file($tempFileName,$fileTarget); /* * If file was successfully uploaded in the destination folder */ if($result) { echo "Your file <html>".$fileName."</html> has been successfully uploaded"; $query = "INSERT INTO images(image_path,file_name,user_name) VALUES ('$fileTarget','$fileName','$fileDescription')"; $link->query($query) or die("Error : ".mysqli_error($link)); } else { echo "Sorry !!! There was an error in uploading your file"; } mysqli_close($link); } /* * If file is already present in the destination folder */ else { echo "File <html>".$fileName."</html> already exists in your folder. Please rename the file and try again."; mysqli_close($link); } ?>
Jochen Arndt
Ваше сообщение об ошибке выглядит следующим образом
"Неопределенная переменная: image_src ..."
но ваш опубликованный код не содержал этой переменной.
Проверьте полное сообщение об ошибке. Он содержит имя файла и номер строки, в которой используется эта неопределенная переменная. Затем проверьте исходный код в указанном файле.
Если вы все еще застряли, обновите свой вопрос с полным сообщением об ошибке и соответствующим кодом.
dush93
@Jochen я обновил вопрос
Jochen Arndt
Смотрите мое решение, которое я опубликовал тем временем.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]