Problemi anomalo insermento in db

rino2002

Utente Attivo
13 Set 2018
34
0
6
Ciao a tutti, ultimamente sto progettando un piccolo blog.
Ma all'inserimento dell'articolo alcune volta procede tutto alla perfezione ed altre volte mi da errore.
Ho provato anceh vairi inserimenti ed anche con caratteri lunari l'inserimento va a buon fine, poi quando mi metto e scrivo io un'articolo, mi da errore...sembra prorpio una presa in giro.... se qualcuno può dare un'occhiata al codice e magari dirmi qual'è il problema...grazie mille!
questo è il form in html
HTML:
<form align="left" action="add_articolo.php" method="post" enctype="multipart/form-data">

<hr>
   
<br><input type="text" name="titolo" value="" placeholder="titolo"><br>
<br><textarea name="articolo" value="" placeholder="articolo"></textarea><br>    

    <br> <input type="hidden" name="action" value="upload"/>
            <label>Carica la tua foto dalla libreria:</label>
    <input type="file" name="fileToUpload" id="fileToUpload">

<input type="submit" value="Create" name="submit">
</form>
ecco invece l'inserimento:
PHP:
 if (isset($_POST['titolo']))
    {
    
        $titolo = $_POST['titolo'];
        $articolo = $_POST['articolo'];
        $name = $_FILES["fileToUpload"]["name"];
        $evidenza = 0;


        $sql = "INSERT INTO blog (titolo,articolo,name,evidenza) VALUES ('$titolo','$articolo','$name','$evidenza')";
        
        if ($conn->query($sql) === TRUE) {
            echo "Pubblicato!<br />";
        }
        else {
            echo "Errore!<br />";
        }
    }
    include_once("includes/menu.php");
Grazie per l'attenzione.
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
un blog?
:rolleyes:
non e' una cosa facile da riscrivere da zero , ti consiglio d'installare WordPress ;)
 

rino2002

Utente Attivo
13 Set 2018
34
0
6
Ciao, guarda l'ho chiamato blog ma effettivamente mi serve solamente per pubblicare un notizia. Il sito ha altre caratteristiche per questo non installo wordpress...il problema però è che non capisco perchè solo a volte mi dà l'errore in queso inserimento.
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
se qualcuno può dare un'occhiata al codice e magari dirmi qual'è il problema...

Il codice potrebbe comportarsi male per diversi fattori:
1- Mancata sanitizzazione delle string
2- Mancato cast delle stesse
3- Record troppo lungo
4- Field mancante
5- File non passato
6- Aggiungi apostrofi nei testi (come giusto che sia), di conseguenza la query (per come scritta) genera error...

Ti consiglio di modificare come segue:


PHP:
//Messa qui per comodità
function only_string($string){
    return filter_var($string, FILTER_SANITIZE_STRING) ;
}
$sql = 'INSERT INTO blog (titolo,articolo,name,evidenza) VALUES ("'.only_string($titolo).'","'.only_string($articolo).'","'.only_string($name).'","'.only_string($evidenza).'")';

Lascia stare WP, non serve un cannone per sparare ad una formica....
 

rino2002

Utente Attivo
13 Set 2018
34
0
6
grazie mille, adesso sembra funzionare molto meglio, finalmente!
Posso solo domandarti una cosa?
Perchè adesso non mi esegue il codice?
Ad esempio se nell'articolo inserisco dei tag <h2> non me li esegue!
grazie comuque
 

rino2002

Utente Attivo
13 Set 2018
34
0
6
Il problema che poi se elimino only_string, non mi pubblica l'articolo...mi da il problema che avevo all'inizio
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Il problema che poi se elimino only_string, non mi pubblica l'articolo...mi da il problema che avevo all'inizio
guardando il tuo primo post, noto che non fai nessun controllo per la gestione degli apici,
se nel titolo o nell'articolo fossero presenti degli apici, questi modificano la query,
esempio, supponi che nel titolo ci sia l' albero, il risultato nella query sarà, VALUES ('l' albero',
puoi verificare che ci sono 3 apici e nasce l'errore

verifica se questo motivo è la vera causa dell'errore,
perché se non lo indichi, chi ti risponde può solo sperare di indovinare

ho comunque preparato una modifica al tuo codice, prova ad applicarla, attento solo alla variabile $slash che dipende dal db usato

PHP:
function FixSQL($param)
{
    $slash = "\\";    // la doppia barra rovescia vale per mySQL, se db fosse ms sql va messo $slash = "'";
    if ( strpos($param, "'") !== false ) $param = str_replace("'", $slash."'", $param);
    return $param;
}

if (isset($_POST["titolo"]))
{
    $titolo   = FixSQL($_POST["titolo"]);
    $articolo = FixSQL($_POST["articolo"]);
    $name     = $_FILES["fileToUpload"]["name"];
    $evidenza = 0;

    $sql = "INSERT INTO blog (titolo, articolo, name, evidenza) VALUES ('$titolo','$articolo','$name','$evidenza')";
  
    if ($conn->query($sql) === TRUE) { echo "Pubblicato!<br />"; }
    else                             { echo "Errore!<br />"; }
}
include_once("includes/menu.php");
 

rino2002

Utente Attivo
13 Set 2018
34
0
6
ciao marino51 , grazie mille del consiglio! Non avevo pensato che l'errore potesse essere quello degli apici.....sembra funzionare! Ti ringrazio e spero che funzionerà tutto per il meglio...buonaserata
 
Discussioni simili
Autore Titolo Forum Risposte Data
N php problemi a visualizzare video PHP 3
T problemi con dati menu a tendina HTML e CSS 2
T problemi di connessione MySQL 2
M Upload immagine con javascript problemi con FormData() Javascript 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 5
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
M [PHP] Problemi su inserimento array nel db PHP 7
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
M [PHP] Problemi con il riconoscimento login. PHP 21
A [WordPress] problemi con xampp WordPress 2
M Problemi con database Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1 PHP 6
P Problemi comunicazioni Comunicazioni dallo Staff 8
G I problemi non vengono solo per nuocere Presentati al Forum 0
A Problemi Wi-Fi Fastweb Reti LAN e Wireless 4
C [WordPress] Url vulnerability e problemi sito da mobile WordPress 0
S [PHP] problemi con le sessioni PHP 3
B Problemi accesso Instagram Smartphone e tablet 1
T [PHP] problemi con il browser PHP 0
M [Flash] Problemi conversione formato swf Flash 20
Andrea_Ventura [HTML] Problemi con effetto hover HTML e CSS 5
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1

Discussioni simili