Visualizzazione risultati 1 fino 8 di 8

Discussione: passare variabile a funzione da get

  1. #1
    Guest

    Unhappy passare variabile a funzione da get

    Sono in stallo da 2 giorni e non capisco dove sbaglio:
    Codice PHP:
    <?
    $des
    = $_GET['des'];
    echo
    $des;
    function
    upload($des)
    {
    $result = false;
    $immagine = '';
    $size = 0;
    $type = '';
    $nome = '';
    $max_size = 900000;
    $result = @is_uploaded_file($_FILES['file']['tmp_name']);
    if (!
    $result)
    {
    echo
    "Impossibile eseguire l'upload.";
    return
    false;
    }else{
    $size = $_FILES['file']['size'];
    if (
    $size > $max_size)
    {
    echo
    "Il file è troppo grande.";
    return
    false;
    }
    $type = $_FILES['file']['type'];
    $nome = $_FILES['file']['name'];
    $immagine = @file_get_contents($_FILES['file']['tmp_name']);
    $immagine = addslashes ($immagine);
    @include
    'conn.php';
    $sql = "INSERT INTO menu (descrizione, nome, size, type, immagine) VALUES ('$des','$nome','$size','$type','$immagine')";
    $result = @mysql_query ($sql) or die (mysql_error());
    return
    true;
    }
    }
    if (isset(
    $_FILES['file']))
    {
    upload($des);
    }
    echo
    "
    <h3>Upload</h3>
    <form enctype=\"multipart/form-data\"
    action=\""
    .$_SERVER['PHP_SELF']."\" method=\"post\">
    <input type=\"hidden\" name=\"MAX_FILE_SIZE\"
    value=\"300000\" />
    <input type=\"file\" name=\"file\" size=\"40\" />
    <input type=\"submit\" value=\"Invia\" />
    </form>
    <br /><a href=\"link.php\">Elenco</a>"
    ;
    ?>
    Funziona tutto ma non viene passata la variabile $des alla function. Qualcuno saprebbe spiegarmi il perchè? Grazie

  2. #2
    Guest

    Predefinito

    Scusa, ma da dove arriva des? Usi
    Codice PHP:
    $des = $_GET['des'];
    ma nel form non c'è alcun input chiamato così, quindi $_GET['des'] dovrebbe essere vuoto.

  3. #3
    Guest

    Predefinito

    La pagina php la chiamo imgup.php?des=prova e l'eco della seconda riga mi stampa:
    prova
    quindi la variabile $des è correttamente 'riempita' ma poi quando la funzione fa l'update al db inserisce gli altri dati ma non 'prova' nella colonna descrizione.

    GRAZIE MILLE... aiutatemi
    Ultima modifica di romeomenti : 13-08-2013 alle ore 21.47.18

  4. #4
    Guest

    Predefinito

    ok domani devo andare a lavorare presto quindi vado a dormire sperando... chissà dormendoci sopra...
    spero sempre nell'aiuto di una buon anima esperta.

  5. #5
    Guest

    Predefinito

    Prova a mettere al posto di
    Codice:
    <form enctype=\"multipart/form-data\"  
    action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
    questo
    Codice:
    <form enctype=\"multipart/form-data\"  
    action=\"".$_SERVER['PHP_SELF']."?des=".$_GET['des']."\" method=\"post\">
    Un consiglio: se devi scrivere un pezzo in HTML, come il form qui, scrivilo fuori dal tag PHP o, se proprio vuoi usare la echo, usala con i singoli apici (') invece di quelli doppi ("), così non devi fare l'escape (\") ogni volta. Tra l'altro, se la metti fuori dal tag PHP diventa anche più leggibile.

  6. #6
    Guest

    Predefinito

    Prova a dare un nome diverso alla variabile $des generica in modo che non entri in conflitto con quella che hai scritto come argomento nella funzione

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da helpcode Visualizza messaggio
    Prova a dare un nome diverso alla variabile $des generica in modo che non entri in conflitto con quella che hai scritto come argomento nella funzione
    Non possono entrare in conflitto a meno che non metta all'inizio della funzione
    Codice PHP:
    global $des;
    e comunque, avendo lo stesso valore, anche se entrassero in conflitto, accedere all'una o all'altra non cambierebbe nulla.
    Il problema è un altro: il form non passa des in GET, per quello sparisce, che è la ragione della soluzione nel mio post precedente.

  8. #8
    Guest

    Predefinito

    Funziona!!!
    Grazie mille stavo impazzendo.

Regole di scrittura

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