Извлечение пользовательских значений из скрытых входных данных - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь загрузить, переименовать файл, затем отправить в дБ, чтобы я мог отобразить обрезанное изображение. Чтобы обрезанное изображение соответствовало зарегистрированному пользователю, мне нужно включить пользовательские данные в скрытые поля ввода.

Вот мой HTML:

<div class="modal-body">
    <form id="cropimage" method="post" enctype="multipart/form-data" action="change_pic.php">
    <strong>Upload Image:</strong> <br><br>
    <input type="file" name="profile-pic" id="profile-pic" />
    <input type="hidden" name="hdn-profile-id" id="hdn-profile-id" value="<?php echo $user['id']; ?>" />
    <input type="hidden" name="username-id" id="username-id" value="<?php echo $user['username']; ?>" />
    <input type="hidden" name="hdn-x1-axis" id="hdn-x1-axis" value="" />
    <input type="hidden" name="hdn-y1-axis" id="hdn-y1-axis" value="" />
    <input type="hidden" name="hdn-x2-axis" value="" id="hdn-x2-axis" />
    <input type="hidden" name="hdn-y2-axis" value="" id="hdn-y2-axis" />
    <input type="hidden" name="hdn-thumb-width" id="hdn-thumb-width" value="" />
    <input type="hidden" name="hdn-thumb-height" id="hdn-thumb-height" value="" />
    <input type="hidden" name="action" value="" id="action" />
    <input type="hidden" name="image_name" value="" id="image_name" />
    <div id='preview-profile-pic'></div>
    <div id="thumbs" style="padding:5px; width:600p"></div>
    </form>
</div> 

Форма запечатлена здесь:

function changeProfilePic() {
$post = isset($_POST) ? $_POST: array();
$max_width = "500"; 
$userId = isset($post['hdn-profile-id']) ? intval($post['hdn-profile-id']) : 0;
$username = isset($post['username-id']);
$path = 'assets/images/tmp';
$valid_formats = array("jpg", "png", "gif", "jpeg");
$name = $_FILES['profile-pic']['name'];
$size = $_FILES['profile-pic']['size'];
if(strlen($name)) {
    list($txt, $ext) = explode(".", $name);
    if(in_array($ext,$valid_formats)) {
        if($size<(1024*1024)) {
            $actual_image_name = 'avatar' . '_' . $username.'_'.$userId .'.'.$ext;  
///etc,etc...

Что я пытаюсь сделать, так это добраться до сборки $actual_image_name = 'avatar' . '_' . $username.'_'.$userId .'.'.$ext;

Проблема в том, что $username всегда выводится как 1 против имени пользователя. Итак, имена файлов, которые я получаю avatar_1_11.jpg, когда они должны быть avatar_john_smith_11.jpg

Я не понимаю. Если значение скрытого ввода - <?php echo $user['username']; ?>, а я извлекаю его на основе id в function changeProfilePic(), почему оно будет равно 1? Я получаю это неправильно?

1 Ответ

0 голосов
/ 30 апреля 2018

isset() возвращается true:

$username = isset($post['username-id']);

Который преобразуется в строку 1, когда вы объединяете его в $actual_image_name:

$actual_image_name = 'avatar' . '_' . $username.'_'.$userId .'.'.$ext;

Вы можете сделать это так же, как и для другой переменной:

$username = isset($post['username-id']) ? $post['username-id'] : '';

Тем не менее, почему это не так, и как с этим обращаться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...