Visualizzazione risultati 1 fino 3 di 3

Discussione: Mi manca qualcosa

  1. #1
    Guest

    Predefinito Mi manca qualcosa

    Salve a tutti !
    sto cercando di migliorare la mia conoscenza del php, leggendo e scrivendo gli esempi di un ottimo libro edito dalla apogeo .
    ora mi sono imbattuto in un problemino ( dovuto alla mia scarsa conoscenza ) nell'ultimo capitolo del libro c'e un esempio di come uploadare un file in remoto tramite uno script php ( per poi poterlo cancellare o scaricare ) , lo script sembra funzionare ma gli manca qualcosa , nel senso che scrive correttamente nel db il nome del file e i vari dati ma non effettua l'upload del file al server .
    questi sono i 2 file che gestiscono il tutto
    index.php
    Codice PHP:
    <?php
    include_once $_SERVER['DOCUMENT_ROOT'] .
    '/includes/magicquotes.inc.php';

    if (isset(
    $_POST['action']) and $_POST['action'] == 'upload')
    {
    // Bail out if the file isn't really an upload
    if (!is_uploaded_file($_FILES['upload']['tmp_name']))
    {
    $error = 'There was no file uploaded!';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }
    $uploadfile = $_FILES['upload']['tmp_name'];
    $uploadname = $_FILES['upload']['name'];
    $uploadtype = $_FILES['upload']['type'];
    $uploaddesc = $_POST['desc'];
    $uploaddata = file_get_contents($uploadfile);

    include
    'db.inc.php';

    try
    {
    $sql = 'INSERT INTO filestore SET
    filename = :filename,
    mimetype = :mimetype,
    description = :description,
    filedata = :filedata'
    ;
    $s = $pdo->prepare($sql);
    $s->bindValue(':filename', $uploadname);
    $s->bindValue(':mimetype', $uploadtype);
    $s->bindValue(':description', $uploaddesc);
    $s->bindValue(':filedata', $uploaddata);
    $s->execute();
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error storing file!';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    header('Location: .');
    exit();
    }

    if (isset(
    $_GET['action']) and
    (
    $_GET['action'] == 'view' or $_GET['action'] == 'download') and
    isset(
    $_GET['id']))
    {
    include
    'db.inc.php';

    try
    {
    $sql = 'SELECT filename, mimetype, filedata
    FROM filestore
    WHERE id = :id'
    ;
    $s = $pdo->prepare($sql);
    $s->bindValue(':id', $_GET['id']);
    $s->execute();
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error fetching requested file.';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    $file = $s->fetch();
    if (!
    $file)
    {
    $error = 'File with specified ID not found in the database!';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    $filename = $file['filename'];
    $mimetype = $file['mimetype'];
    $filedata = $file['filedata'];
    $disposition = 'inline';

    if (
    $_GET['action'] == 'download')
    {
    $mimetype = 'application/octet-stream';
    $disposition = 'attachment';
    }

    // Content-type must come before Content-disposition
    header('Content-length: ' . strlen($filedata));
    header("Content-type: $mimetype");
    header("Content-disposition: $disposition; filename=$filename");

    echo
    $filedata;
    exit();
    }

    if (isset(
    $_POST['action']) and $_POST['action'] == 'delete' and
    isset(
    $_POST['id']))
    {
    include
    'db.inc.php';

    try
    {
    $sql = 'DELETE FROM filestore
    WHERE id = :id'
    ;
    $s = $pdo->prepare($sql);
    $s->bindValue(':id', $_POST['id']);
    $s->execute();
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error deleting requested file.';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    header('Location: .');
    exit();
    }

    include
    'db.inc.php';

    try
    {
    $result = $pdo->query(
    'SELECT id, filename, mimetype, description
    FROM filestore'
    );
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error fetching stored files.';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    $files = array();
    foreach (
    $result as $row)
    {
    $files[] = array(
    'id' => $row['id'],
    'filename' => $row['filename'],
    'mimetype' => $row['mimetype'],
    'description' => $row['description']);
    }

    include
    'files.html.php';
    e questo è il secondo files.html.php
    Codice PHP:
    <?php
    include_once $_SERVER['DOCUMENT_ROOT'] .
    '/includes/magicquotes.inc.php';

    if (isset(
    $_POST['action']) and $_POST['action'] == 'upload')
    {
    // Bail out if the file isn't really an upload
    if (!is_uploaded_file($_FILES['upload']['tmp_name']))
    {
    $error = 'There was no file uploaded!';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }
    $uploadfile = $_FILES['upload']['tmp_name'];
    $uploadname = $_FILES['upload']['name'];
    $uploadtype = $_FILES['upload']['type'];
    $uploaddesc = $_POST['desc'];
    $uploaddata = file_get_contents($uploadfile);

    include
    'db.inc.php';

    try
    {
    $sql = 'INSERT INTO filestore SET
    filename = :filename,
    mimetype = :mimetype,
    description = :description,
    filedata = :filedata'
    ;
    $s = $pdo->prepare($sql);
    $s->bindValue(':filename', $uploadname);
    $s->bindValue(':mimetype', $uploadtype);
    $s->bindValue(':description', $uploaddesc);
    $s->bindValue(':filedata', $uploaddata);
    $s->execute();
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error storing file!';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    header('Location: .');
    exit();
    }

    if (isset(
    $_GET['action']) and
    (
    $_GET['action'] == 'view' or $_GET['action'] == 'download') and
    isset(
    $_GET['id']))
    {
    include
    'db.inc.php';

    try
    {
    $sql = 'SELECT filename, mimetype, filedata
    FROM filestore
    WHERE id = :id'
    ;
    $s = $pdo->prepare($sql);
    $s->bindValue(':id', $_GET['id']);
    $s->execute();
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error fetching requested file.';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    $file = $s->fetch();
    if (!
    $file)
    {
    $error = 'File with specified ID not found in the database!';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    $filename = $file['filename'];
    $mimetype = $file['mimetype'];
    $filedata = $file['filedata'];
    $disposition = 'inline';

    if (
    $_GET['action'] == 'download')
    {
    $mimetype = 'application/octet-stream';
    $disposition = 'attachment';
    }

    // Content-type must come before Content-disposition
    header('Content-length: ' . strlen($filedata));
    header("Content-type: $mimetype");
    header("Content-disposition: $disposition; filename=$filename");

    echo
    $filedata;
    exit();
    }

    if (isset(
    $_POST['action']) and $_POST['action'] == 'delete' and
    isset(
    $_POST['id']))
    {
    include
    'db.inc.php';

    try
    {
    $sql = 'DELETE FROM filestore
    WHERE id = :id'
    ;
    $s = $pdo->prepare($sql);
    $s->bindValue(':id', $_POST['id']);
    $s->execute();
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error deleting requested file.';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    header('Location: .');
    exit();
    }

    include
    'db.inc.php';

    try
    {
    $result = $pdo->query(
    'SELECT id, filename, mimetype, description
    FROM filestore'
    );
    }
    catch (
    PDOException $e)
    {
    $error = 'Database error fetching stored files.';
    include
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
    exit();
    }

    $files = array();
    foreach (
    $result as $row)
    {
    $files[] = array(
    'id' => $row['id'],
    'filename' => $row['filename'],
    'mimetype' => $row['mimetype'],
    'description' => $row['description']);
    }

    include
    'files.html.php';
    grazie a tutti per l'aiuto

  2. #2
    Guest

    Predefinito

    Su Altervista $_SERVER['DOCUMENT_ROOT'] non restituisce un valore corretto (o almeno quello che ci si aspetta).

    Usa il percorso assoluto "/membri/<tuo_username>/"

    Ti potrebbe interessare una lettura a questa discussione dove si tratta del problema.
    Ultima modifica di vplaza : 12-06-2014 alle ore 20.25.06

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Inoltre la cartella includes esiste?
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

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