Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    24

    PHP + mySQL errore nella query di inerimento...

    Salve,
    sto creando un sito giornalistico e ho la necessità di scrivere articoli.
    ho creato questa pagina (per cominciare) per la modifica degli articoli nel database

    Codice PHP:
    <?php>
            
    $sc $_GET['sc'];
        
    $l $_GET['lim'];
        if(!
    $l$l =0;
        if(
    $sc == 4)
        {
            
    $titolo $_REQUEST['titolo'];
            
    $sottotitolo $_REQUEST['sottotitolo'];
            
    $riassunto $_REQUEST['riassunto'];
            
    $testo $_REQUEST['testo'];
            
    $prima $_REQUEST['prima'];
            
    $image $_REQUEST['immagine'];
            
    $link $_REQUEST['link'];
            
    $ambito $_REQUEST['ambito'];
            
    $autore $_REQUEST['autore'];
            
    $data $_REQUEST['data'];

            
    $titolo str_replace("<""&lt;"$titolo);
              
    $titolo str_replace(">""&gt;"$titolo);
      
            
    $sottotitolo str_replace("<""&lt;"$sottotitolo);
              
    $sottotitolo str_replace(">""&gt;"$sottotitolo);

              
    $autore str_replace("<""&lt;"$autore);
              
    $autore str_replace(">""&gt;"$autore);
      
              
    $testo str_replace("<""&lt;"$testo);
              
    $testo str_replace(">""&gt;"$testo);
              
    $testo nl2br($testo);
              
              
    $riassunto str_replace("<""&lt;"$riassunto);
              
    $riassunto str_replace(">""&gt;"$riassunto);
              
    $riassunto nl2br($riassunto);

            
    $db mysql_connect($db_host$db_user$db_password);
            
    $id $_GET['md'];
            if (
    $db != FALSE)
            {    
                
    $f mysql_select_db($db_name$db);
                if( 
    $f )
                {
                    if(
    $id)
                        
    $query "UPDATE articoli SET data = '$data' , titolo='$titolo' , sottotitolo = '$sottotitolo' , riassunto = '$riassunto' , testo = '$testo' , prima = '$prima' , immagine = '$image' , link = '$link', autore = '$autore', ambito = '$ambito' WHERE id = '$id'";
                    else
                        
    $query "INSERT INTO articoli (titolo, sottotitolo, testo, riassunto, data, autore, immagine, link, ambito, prima) VALUES ('$titolo', '$sottotitolo', '$testo', '$riassunto', '$data', '$autore', '$image', '$link', '$ambito', '$prima')";
                    if(
    mysql_query($query$db))
                        echo 
    "<span style='color: green'>operazione completata</span>";
                    else
                        echo 
    "<span style='color: red'>errore nell'operazione</span>";
                    
                    }
                }
            
    mysql_close($db);
            
        }
        if(
    $sc == 3)
        {
            
    $id=$_GET['id'];
            
    $db mysql_connect($db_host$db_user$db_password);
            if (
    $db != FALSE)
            {    
                
    $f mysql_select_db($db_name$db);
                if( 
    $f )
                {
                    
    $query "DELETE FROM articoli WHERE id = '$id'";
                    if(
    mysql_query($query$db))
                        echo 
    "articolo eliminato";
                    else
                        echo 
    "errore nella cancellazione";
                    
                    }
                }
            
    mysql_close($db);
            
    $id null;
        }    
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>Gestione Articoli</title>
        <style type="text/css">
        .ttesta{
            background-color: #008AB8;
            color: white;
        }
        .fannuncio {
            background-color : #E6E6E6;
            border-width : 2px;
            border-color : #004E9C;
            border-style : solid;
            padding : 5px;
            width: 500px;
            
            
        }
        .label{
            text-align : right;
            float : left;
                    
        }
        .edit{
            text-align : left;
            float : left;
            
        }
        

        </style>
      </head>
      <body>
          <div id="elenco">
              

    Elenco Articoli</p>
            <table border="1">
                 <tr class="ttesta">    
                         <td>ID</td>
                    <td>Data</td>
                    <td>Titolo</td>
                         <td>Ambito</td>
                    <td>Prima</td>
                  </tr>
                  <?php
                      $db 
    mysql_connect($db_host$db_user$db_password);
                if (
    $db != FALSE)
                {    
                    
    $f mysql_select_db($db_name$db);
                    if( 
    $f )
                    {
                        
    $query "SELECT * FROM articoli ORDER BY id DESC LIMIT $l,10";
                        
    $f=mysql_query($query$db);
                        
    $query "SELECT * FROM articoli ";
                        
    $n =mysql_num_rows(mysql_query($query$db));
                        while(
    $row mysql_fetch_array($f))
                            {
                                echo 
    "<tr><td>";
                                echo 
    "<a href=\"?id=$row[id]\"> $row[id] </a>";
                                echo 
    "</td><td> $row[data]</td><td>$row[titolo]</td><td>$row[ambito]</td>";
                                echo 
    "<td>$row[prima]</td></tr>";
                        }
                        }
                     }
                
    mysql_close($db);
                       
                   
    ?>
              </table>
            <span align="center"><?php 
                $lp 
    $l +10;
                
    $lm $l -10;
                if(
    $l >= 10) echo "[url='?lim=$lm']Precedente[/url]";
                echo 
    $n;
                if(
    $l $n 10) echo "[url='?lim=$lp']Successivo[/url]";
            
    ?></span>
              


          </div>
        <div id="menu">
            [url="?sc=1"]Nuovo Articolo[/url] | 
            <?php
                $id
    =$_GET['id'];
                if(
    $id)
                {
                    echo 
    "id selezionato: $id [url='?id=$id&sc=2']Modifica[/url] [url='?id=$id&sc=3']Elimina[/url]";
                }
            
    ?>
        </div>
        <div id="editor" class="fannuncio">
            

            <?php echo "<form  method='post' action='?sc=4&md=$id'>"?>
            <div>
            
            <?php    
                
    if($sc == || $sc == 2)
                {
                    
    $id=null;
                    if(
    $sc == 2)
                    {
                        
    $id $_GET['id'];
                        
    $db mysql_connect($db_host$db_user$db_password);
                        if (
    $db != FALSE)
                        {    
                            
    $f mysql_select_db($db_name$db);
                            if( 
    $f )
                            {
                                
    $query "SELECT * FROM articoli WHERE id = '$id'";
                                
    $f=mysql_query($query$db);
                                
    $row mysql_fetch_array($f);
                                    if(
    $row)
                                {
                                    
    $titolo $row['titolo'];
                                    
    $sottotitolo $row['sottotitolo'];
                                    
    $riassunto $row['riassunto'];
                                    
    $testo $row['testo'];
                                    
    $prima $row['prima'];
                                    
    $image $row['immagine'];
                                    
    $link $row['link'];
                                    
    $ambito $row['ambito'];
                                    
    $autore $row['autore'];
                                    
    $data $row['data'];
                                    }
                            }
                        }
                        
    mysql_close($db);
                        }
                    else
                    {
                        
    $titolo "";    
                        
    $sottotitolo ="";
                        
    $riassunto "";
                        
    $testo "";
                        
    $prima "";
                        
    $image "";
                        
    $link "";
                        
    $ambito "";
                        
    $autore "";
                        
    $data "";
                    }
                    echo 
    "<div>Data:&emsp; ";
                    echo 
    "<input type='text' name='data' size='25px' value='$data' /></div>";
                    echo 
    "<div>Titolo:&emsp; ";
                    echo 
    "<input type='text' name='titolo' size='25px' value='$titolo' /></div>";
                    echo 
    "<div valign='top'>Sottotitolo: ";
                    echo 
    "<input type='text' name='sottotitolo' size='25px' value='$sottotitolo' /></div>";
                    echo 
    "<div>Riassunto: ";
                    echo 
    "<textarea name='riassunto' cols='30' rows='10'>$riassunto</textarea></div>";
                    echo 
    "<div>Testo: ";
                    echo 
    "<textarea name='testo' cols='30' rows='10'>$testo</textarea></div>";
                    echo 
    "Link: ";
                    echo 
    "<input type='text' name='link' size='25px' value='$link'/></div>";
                    echo 
    "<div>Immagine:<input type='text' name='immagine' size='25px' value='$image'/></div>";
                    echo 
    "<div>Ambito: <input type='text' name='immagine' size='25px' value='$ambito'/></div>";
                    echo 
    "<div>Autore: <input type='text' name='ambito' size='25px' value='$autore'/></div>";
                    echo 
    "<div>In Prima: <input type='checkbox' name='prima' value='1' /></div>";
                    echo 
    "<input type='submit' value='Invia' />";

                    
                }
            
    ?>
            </div>
            </form>
        </div>
        </div>
      </body>
    </html>

    ora quando faccio prova con pochi caratteri nel campo testo e riassunto tutto funziona (ho provato anche caratteri speciali e altro)
    quando i testi sono tanto lunghi (e con tanti invii) la query da errore.
    qualcuno mi sa spiegare perchè?

  2. #2
    non vorrei dire, ma che tipi sono i campi testo e riassunto?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    24
    sono longtext
    il problema è che questa è un evoluzione di una pagina che aveva sempre il medesimo funzionamento ma più spartana
    e quella funzionava

  4. #4
    beh, allora devi vedere le differenze e controllare quelle. Poi, se non funziona ancora, devi rivedere il testo riga per riga (togliendo la roba che non serve, tipo tutti quegli str_replace e usi htmlentities al loro posto).

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    24
    è identico ho già guardato. l'unica cosa che cambia è la dimensione della textbox

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.