Visualizzazione risultati 1 fino 4 di 4
Like Tree1Likes
  • 1 Post By darbula

Discussione: caricamento immagini utente loggato

  1. #1
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    139

    Predefinito caricamento immagini utente loggato

    salve sto creando un sito web con login e registrazione utente funziona bene e si può cambiare la foto profilo ma ho un problema una volta che l'utente esegue l'accesso non riesco a capire come aggiungere la sessione ( la sessione è il nome utente ) in modo che l'utente può caricare le sue immagini tipo album foto chiedo aiuto grazie

    Codice PHP:
    la sessione
    <?php

    if(!isset($_SESSION["firstname"])) {
    header("Location: login.php");
    exit();
    }
    ?>
    Codice PHP:
    <?php
    include("auth_session.php");
    ?>

    <?php
    if (isset($_POST['submit']) && isset($_FILES['my_image'])) {
    include
    "db_conn.php";

    echo
    "<pre>";
    print_r($_FILES['my_image']);
    echo
    "</pre>";

    $img_name = $_FILES['my_image']['name'];
    $img_size = $_FILES['my_image']['size'];
    $tmp_name = $_FILES['my_image']['tmp_name'];
    $error = $_FILES['my_image']['error'];



    if (
    $error === 0) {
    if (
    $img_size > 125000) {
    $em = "Sorry, your file is too large.";
    header("Location: ../profilo.php?error=$em");
    }else {
    $img_ex = pathinfo($img_name, PATHINFO_EXTENSION);
    $img_ex_lc = strtolower($img_ex);

    $allowed_exs = array("jpg", "jpeg", "png", "gif");

    if (
    in_array($img_ex_lc, $allowed_exs)) {
    $new_img_name = uniqid("IMG-", true).'.'.$img_ex_lc;
    $img_upload_path = 'upload/'.$new_img_name;
    move_uploaded_file($tmp_name, $img_upload_path);

    // Insert into Database
    $sql = "INSERT INTO images(image_url)
    VALUES('
    $new_img_name')";
    mysqli_query($conn, $sql);
    header("Location: ../profilo.php");
    }else {
    $em = "You can't upload files of this type";
    header("Location: ../profilo.php?error=$em");
    }
    }
    }else {
    $em = "unknown error occurred!";
    header("Location: ../profilo.php?error=$em");
    }

    }else {
    header("Location: ../profilo.php");
    }
    ?>

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    In realtà devi conoscere dove memorizzare i dati se in un cookie, file o database.
    Quindi eccetto casi particolari
    creazione_sessione.php:
    Codice PHP:
    <?php
    session_start
    ();
    //echo 'stampare su schermo è output, prima crea e imposta $_SESSION[\'utente\'], anche il codice sorgente non racchiuso da <?php e ?' . '> è output';
    $_SESSION['utente'] = 'valore'; //Al termine di esecuzione del file php verrà creato dentro la risposta http un Set-Cookie: utente=valore, fa parte di un header anche Cookie.
    //il tuo codice stampa a schermo il tag, ergo markup HTML pre, prima header poi echo.

    ?>
    recupero_sessione.php:
    Codice PHP:
    <?php
    session_start
    ();
    //se il tipo NULL isset ritorna false
    if(isset($_SESSION, $_SESSION['utente'])) {
    echo
    $_SESSION['utente'];
    } else {
    echo
    'In condizioni normali è impossibile poiché utente è stato definito dal programmatore, occorre investigare sul perché';
    }

    ?>
    Se è memorizzato in un cookie e ovviamente è terminata l'esecuzione php quel codice prepara il Set-Cookie: utente=valore che alla prossima richiesta (se memorizzato nel browser) è Cookie: utente=valore

    In tutto questo contesto sarà sempre disponibile la variabile $_SESSION['utente'] creata e dopo sarà memorizzato in un Cookie: utente=valore (la risposta http precedente Set-Cookie: utente=valore) è la variabile sarà quell'aggiornata poiché la preleva dal cookie.
    Note1: Ovviamente session_start(); dovrà essere presente nella pagina php di recupero e pagina php creazione sessione.
    Ultima modifica di darbula : 20-09-2022 alle ore 23.04.15
    fcfclean likes this.

  3. #3
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    139

    Predefinito

    grazie

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Ciao figurati ho aggiunto una nota altrimenti il codice si basa solo per il valore della variabile Superglobale e non creazione e recupero (in tutti e due i casi).
    Cioè diventa una semplice variabile impostata dal codice del programmatore. Sebbene da php >= 7.1.0 non è più possibile inizializzare $_SESSION se la sessione non è attiva o recupero con session_start() creazione/recupero info
    Poiché il valore è memorizzato in un cookie non puoi mostrare output prima di aver creato il Set-Cookie: utente=valore (che il core del sorgente php farà automaticamente).
    Vecchie versioni di php andavano in errore se la sessione era già attiva mentre poi il core php è stato modificato per session_start() ma comunque è una buona norma chiamare session_start() una sola volta in tutto il codice coinvolto per l'esecuzione del o dei file php
    Ultima modifica di darbula : 21-09-2022 alle ore 14.39.25

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •