• User Newbie

    Problema con testi lunghi nel db (HELP!)

    Salve a tutti, prima di postare il problema vero e proprio faccio una premessa, sono un super newbie, diciamo che è da un mese circa che sto dietro al PHP e nonostante tutto sono arrivato a mio modesto giudizio a buon punto, qnd ho pensato di iniziare a lavorare al sito della mia emittente radio........
    Ma sono già davanti un muro :arrabbiato:
    Ecco la domanda:
    Dovrei inserire testi lunghi, anche sopra i 5000 caratteri, allora leggendo qua e la in rete ho capito che dovevo usare il campo TEXT nel DB, fin qui nulla di strano, ma quando provo a inserire un testo mi da errore......allora per capire la capacità ho provato a incollare il risultato di un FOR che mi da 1000 caratteri e fino a 5000 ci sta tutto, premetto che erano solo numeri, ma quando provo ad inserire del testo nulla, non riesce :gtsad:

    Sto realizzando il tutto usando un approccio procedurale e non a oggetti, non sono ancora arrivato a quel punto nello studio, qualcuno mi sa dire il xchè dell'anomalia ?
    NOTA : uso easyphp 5.3.5.0 su windows XP....

    P.S. Se serve posto anche il codice.

    GRAZIE A PRIORI :ciauz:


  • ModSenior

    Ciao gcorvetti,
    dovresti incollare sia l'errore che viene generato, che il codice utilizzato.


  • User Newbie

    Allora.....in realtà non mi da un messaggio ben preciso, si limita a scrivermi la frase che ho messo io, ma aprendo il sorgente della pagina html noto che mi da un'errore sulle variabili passate dal form nella pagina html, cmq incollo il codice che riceve i dati e li inserisce nel data base

    <?php
    //includo il file con i dati di connessione
    include("Connections/kirbu_radio.php");
    require ("function.php");

    echo "<center>";

    //recupero i dati dal form
    $titolo = $_POST['titolo'];
    $articolo = $_POST['articolo'];
    $data = date("d.m.Y");
    $nome = addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = addslashes($_FILES['imagefile']['type']);

    //controlli sulle stringhe passate dal form
    if (!isset ($titolo, $articolo) == TRUE)
    {
    echo "Campo/i mancante/i"; exit();
    }
    if (strlen($articolo) > 5000)
    {
    echo "Articolo troppo lungo (".strlen($articolo)." caratteri)<br>"; exit();
    }

    //controllo sull'immagine passata dal form
    // Creo una array con i formati accettati
    $tipi_consentiti = array("image/gif","image/jpeg","image/png");

    // verifico che il formato del file sia tra quelli accettati
    if (in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
    // copio il file nella cartella delle immagini
    copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // creo la miniatura
    makeThumb($path_img,$path,$nome,$tipo);
    

    }

    //mi connetto al database e chiedo conferma
    $con = mysql_connect($host,$user,$pass) or die ("Errore nella connessione.");
    if (!$con == TRUE)
    {echo "Errore connessione"; exit();} else { echo "Connessione OK <br>"; }

    //seleziono il database
    $tabella = mysql_select_db($db,$con);

    //controllo se la selezione è andata a buon fine
    if (!$tabella == TRUE) {echo "Errore connessione"; exit();} else { echo "Selezione OK <br>"; }

    //inserisco i dati nel database
    $query = "INSERT INTO news (titolo, articolo, img, tipo_img, data) VALUES ('$titolo','$articolo', '$nome', '$tipo', '$data')";
    $risultato = mysql_query($query,$con);

    //controllo se la query è andata a buon fine
    if ($risultato == FALSE)
    { echo "Inserimento non riuscito <br>";
    exit();
    } else {
    echo "Articolo inserito <br>";
    }

    //chiudo il collegamento al database
    mysql_close($con);
    // Stampo a video un po' di informazioni
    echo "Nome foto: ".$_FILES['imagefile']['name']."<br />";
    echo "Dimensione: ".$_FILES['imagefile']."<br />";
    echo "Tipo file: ".$_FILES['imagefile']['type']."<br />";
    echo "Immagine eseguita con successo.<br>";
    echo "L'articolo è lungo caratteri : ".strlen($articolo);

    echo "</center>";
    echo "<a href="insert_news.html">Inserisci un'altro articolo</a>";
    ?>

    forse è un pò incasinato ihihihi l'ho premesso che sono un super noob......
    Mille grazie 😄


  • ModSenior

    Aggiungi or die mysql_error per mostrare l'errore generato.
    Manca addslashes su titolo e articolo, il problema potrebbe essere causato dagli apici inseriti nel testo.


  • User Newbie

    YEAAAAAAAAAAAAAAAH sembra funzioni, non ci avevo pensato, ma lo sai bene che quando si è agli inizi si fanno errori così stupidi, cercherò di stare + attento 😄 grazie mille . . . .