Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    sopadj1
    Guest

    problema con campo longtext

    come da titolo ho un problema con questo tipo di campo-

    ho uno script che scrive in 1 tabella con dei campi longtext, ma se nella textarea contenuta nel form che invia i dati al db inserisco un testo con + di 1000 lettere mi da errore e non mi fa inserire i dati nel db... esiste 1 campo con + capacita' di memoria? cosa mi consigliate?

    grazie

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    longblob

  3. #3

    Re: problema con campo longtext

    Originariamente inviato da sopadj1
    come da titolo ho un problema con questo tipo di campo-

    ho uno script che scrive in 1 tabella con dei campi longtext, ma se nella textarea contenuta nel form che invia i dati al db inserisco un testo con + di 1000 lettere mi da errore e non mi fa inserire i dati nel db... esiste 1 campo con + capacita' di memoria? cosa mi consigliate?

    grazie
    Scusami, ma l'errore è di SQL o di PHP?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  4. #4
    sopadj1
    Guest
    ho provato con longblob ma mi da sempre lo stesso errore...

    cmq è un errore php

    Codice PHP:
    <? 
    session_start
    (); 
    if (
    $_SESSION['logstatus']!="X") { 
      
    header("location:default.php"); 
    }
    ?>
    <html>
    <head>
    <title>aggiungi comando</title>
    <script>
    function insopzioni()
    {
    opz=prompt("inserisci l'opzione. es. -i oppure --install")
    descr=prompt("inserisci la descrizione della opzione")
    if (opz==null || descr==null)
    {
    alert("Errore: mancanza di informazioni necessarie. Riprovare.")
    }
    else
    {
    document.modulo.opzioni.value = document.modulo.opzioni.value + '
    <table width="100%"><tr width="100%"><td align="left" valign="top" width="20%">'+opz+'</td><td align="left" valign="top" width="80%">'+descr+'</td></tr></table>\n'
    }
    }
    </script>

    </head>
    <? 

    include("include/config.inc.php"); 
    include(
    "include/connect.inc.php"); 

    if(
    $_GET['type']=="old") { 
        
    $query="SELECT * from comandi where id=".$_GET['id'];
        
    $result=mysql_query($query,$db);
        
    $row=mysql_fetch_array($result);
    }


    switch(
    $_GET['action']) { 
      case 
    "ins":
        
        switch(
    $_GET['type']) {
           case 
    'old':
             
    $query="UPDATE comandi SET nome='".$_POST['nome']."', sintassi='".$_POST['sintassi']."', 
    descrizione='"
    .$_POST['descrizione']."', 
    opzioni='"
    .$_POST['opzioni']."', esempi='".$_POST['esempi']."', annotazioni='".$_POST['annotazioni']."' where id=".$_GET['id'];
             break;
           default:
             
    $query="INSERT INTO comandi (nome,sintassi,descrizione,opzioni,esempi,annotazioni) VALUES 
     ('"
    .$_POST['nome']."','".$_POST['sintassi']."','".$_POST['descrizione']."','".$_POST['opzioni']."','".$_POST['esempi']."','".$_POST['annotazioni']."')"
        }
        if(
    mysql_query($query,$db)){ 
          echo 
    "Comando inserito correttamente
    [url='comandi.php']Torna ai comandi[/url]"

        } else { 
          echo 
    "Errore nell'inserimento"
        }
        break;
      default:
      include(
    "include/header.inc.php"); 
    ?>
    l' errore che mi da è

    errore nell'inserimento, sta quasi all'inizio...

    help help

    cosa potrebbe essere?

  5. #5
    sopadj1
    Guest
    nessuna idea?

    ho tagliuzzato il post di sopra e ho lasciato solo la parte utile

  6. #6
    sopadj1
    Guest
    ecco lo script, se casomai avreste bisogno di esso...

    http://sopadj1.virtuale.org/APPUNTI.TAR.GZ

    il file in questione è addcomandi.php

    x installare lo script, beh, non vi devo sicuramente dire niente, cmq ho creato un file di testo chiamato INSTALL dove vi solo elencate i pochi procedimenti da seguire....

    vi ricordo che se inserisco 1 contenuto nella/e textarea con + di 1000 caratteri mi da errore.


    rihelp rihelp!

    nn so da cosa possa dipendere!!!

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    hai provato a fare un mysql_error() ?

    echo "Errore nell'inserimento ".mysql_error();

  8. #8
    Ho notato che non fai nessun tipo di escape dei parametri POST, per rimuovere eventuali virgolette singole dalla variabile $_POST["descrizione"], virgolette che potrebbero mandarti in tilt la query...

    Hai provato a fare una echo $query prima di eseguire la query stessa?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  9. #9
    premettendo che

    LONGTEXT e LONGBLOB possono contenere l'esatta quantità di dati in maniera uguale...e che non credo occuperai MAI + di 4gb (o 4gb ora non ricordo) per mille caratteri va BENISSIMO anche il normalissimo TEXT che arriva a 65 mila e passa

    dopo di che...hai la textarea? hai espcificato l'enctype nel form? usare una textarea e quasi come uploadare un file xche senno il protocollo html rimbecillisce

    cmq è sicuramente un problema di HTML xche php non c'entra un tubo ^^

    dopo di che come ti hanno consiglieto esegui un'escape dei vari campi in post che ricevi usando mysql_escape_string e in mysql_query metti or die(mysql_error()) in modo che vedi xche muore

    per finire...
    if ($_SESSION['logstatus']!="X") {

    questo controllo...è stupidissimo da saltare

    se c'è register_global impostato a ON sul server, non sul tuo picci di sviluppo perché se hai installato manualmente php e non hai toccato il parametro questo è a OFF di default, (cosa probabile al 99.99% xche in hosting lo tengono sempre attivo e le distribuzioni linux di default lo hanno attivo, quindi se non è un dedicato in cui tu lo hai specificatamente spento) facendo

    http://path/to/page.php?_SESSION[logstatus]=X

    mi sono "autenticato"
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    Veramente in tutti gli hosting che ho visto io la registerglobals era ad off, ed un simile trucco non funziona neanche un po'...

    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.