spiegazioni di uno script

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao ragazzi visto che sto studiando php e lo vorrei fare in maniera
ottimale, vorrei delle spiegazioni in riguardo

ho questo codice funzionante, da me scritto
è una semplice insert che ho visto sul libro e lo adattato a mio piacimento

PHP:
<?php
//richiamo il file di configurazione
require 'Config.php';
//richiamo il file di connessione
require 'Connect.php';

----------------------------------------------------------------
if(isset($_POST['variabile']))
	{
		$variabile = mysql_real_escape_string($_POST['variabile']);
	}
else
	{
		$variabile= "";
	}
----------------------------------------------------------------
		
$categoria=trim($_POST['frm_categoria']);
//verifico che magic_quotes è attivo in caso affermativo rimuovo i backslash inseriti dal PHP
if(get_magic_quotes_gpc())
	{
		$categoria=stripslashes($categoria);
	}
//effettuo il dovuto controllo di carattero potenzialmente pericolosi
$categoria=mysql_real_escape_string($categoria);
//controllo alcuni caratteri speciali che potrebbero andare in conflitto con HTML			
$categoria=str_replace("<", "&lt;", $categoria);
$categoria=str_replace(">", "&gt;", $categoria);
if(!$categoria)
	{
		$messaggio=urlencode("Non hai inserito la Categoria");
		header('location:'.'../app_frm_categoria.php'.'?msg='.$messaggio);
		exit;
	}

$query_di_verifica_stringa="SELECT descrizione FROM categorie WHERE descrizione='".$categoria."'";  
$query_di_verifica = mysql_query($query_di_verifica_stringa);  
$num=mysql_num_rows($query_di_verifica);
if($num > 0)
        { 
        	$messaggio=urlencode("Categoria già presente"); 
            header('location:'.'../app_frm_categoria.php'.'?msg='.$messaggio);
            exit; 
        } 
	 		
//preparo la query di inserimento
$query="INSERT INTO categorie(descrizione)
VALUES('$categoria')";
//invio query
if(!mysql_query($query))
	{
		die("errore nella query;".mysql_error());
	}
		$messaggio=urlencode("E' stata inserita una nuova Categoria");
		header('location:'.'../app_frm_categoria.php'.'?msg='.$messaggio);
		exit;
//chiudo la connessione
mysql_close();
?>

lo script tra i tratteggi mi è stata suggerita
per la verita anche senza quella parte mi funziona lo stesso la insert

vorrei delle spiegazioni in merito
poi mi dovreste dire tra le parentesi quadre posso mettere ciò che voglio,xrchè honotato che posso mettere anche pippo il codice funziona sempre

garzie in anticipo
 

nickagency

Nuovo Utente
17 Lug 2008
9
0
0
1. Tra le parentesi quadre puoi assegnare qualsiasi nome alla variabile POST, basta che sia lo stesso della pagina che contiene il form.
2. Lo script tra i tratteggi è indispensabile per un corretto funzionamento:
- if(isset($_POST['variabile'])) verifica che sia assegnato un valore alla variabile. In caso contrario la query di inserimento genererebbe un errore. Se ad esempio lasci il campo vuoto nella pagina del form che manda la variabile POST cosa succederebbe: MySql ti darà ERRORE perché stai cercando di inserire una variabile che non è definita. Mentre in questo caso tu la dichiari esplicitamente assegnando o il valore passato o settandola a ‘vuota’.
- mysql_real_escape_string($_POST['variabile']); questa funzione è indispensabile per inserire nel DB esattamente il testo postato così com’è. Ad esempio prova a scrivere nell’<input type=text …> del form il nome ANTONIO D’AMICO. Vedrai che MySql ti darà un altro errore dovuto all’apostrofo. Mentre con mysql_real_escape_string puoi inserire tutti gli apostrofi, virgolette e caratteri che normalmete generererebbero errori e questi saranno correttamente memorizzati nel DB.
 

minatore

Utente Attivo
25 Set 2007
410
0
0
1. Tra le parentesi quadre puoi assegnare qualsiasi nome alla variabile POST, basta che sia lo stesso della pagina che contiene il form.
2. Lo script tra i tratteggi è indispensabile per un corretto funzionamento:
- if(isset($_POST['variabile'])) verifica che sia assegnato un valore alla variabile. In caso contrario la query di inserimento genererebbe un errore. Se ad esempio lasci il campo vuoto nella pagina del form che manda la variabile POST cosa succederebbe: MySql ti darà ERRORE perché stai cercando di inserire una variabile che non è definita. Mentre in questo caso tu la dichiari esplicitamente assegnando o il valore passato o settandola a ‘vuota’.
- mysql_real_escape_string($_POST['variabile']); questa funzione è indispensabile per inserire nel DB esattamente il testo postato così com’è. Ad esempio prova a scrivere nell’<input type=text …> del form il nome ANTONIO D’AMICO. Vedrai che MySql ti darà un altro errore dovuto all’apostrofo. Mentre con mysql_real_escape_string puoi inserire tutti gli apostrofi, virgolette e caratteri che normalmete generererebbero errori e questi saranno correttamente memorizzati nel DB.

ciao e grazie x la precisazione

ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [Javascript] Spiegazioni di due funzioni Javascript 10
A spiegazioni merge sort ricorsivo Java 0
L Spiegazioni ad un neofita PHP 6
A For in uno switch PHP 1
A Riprodurre uno schema colore Photoshop 15
L Non riesco a riprodurre uno sfondo Photoshop 0
R Distribuire uno Script "Facebook Auto Post" PHP 0
rebeca Come Unire file PST in Uno? Windows e Software 0
M temi premium Shopify da 180$ l'uno a prezzi bassissimi Altri Annunci 0
A eliminare caratteri speciali mettendo uno spazio PHP 0
U Cerco un graphic designer e uno sviluppatore Android Offerte e Richieste di Lavoro e/o Collaborazione 1
C Salve a tutti, sono uno studente Presentati al Forum 1
G Fare uno sfondo con il prato e degli alberi Photoshop 0
K Help: problema con uno script di booking in php! PHP 0
A Creare con Javascript un percorso all'interno di uno spazio Javascript 0
D [Javascript] inserire uno script in un file php Javascript 6
P [PHP] Contare quante volte uno stesso id si ripete nella tabella PHP 12
giorgiacampus Vendo un account Instagram da 5,7k e uno da quasi 3k Annunci servizi di Social Media Marketing 2
T interpretare uno script php non fatto da me... PHP 3
M [PHP] valore dentro uno shortcode PHP 0
T Artisti: Uno o due profili Instagram? Social Media Marketing 2
S [PHP] Ricercare Uno Specifico Carattere In Una Precisa Posizione PHP 3
T mostrare il riultato di uno script php Ajax 2
momeraths [WordPress] Problema creazione di uno shortcode WordPress 2
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
L Smartphone per fotografiaSto cercando uno smartphone che scatta foto in RAW/DNG e che possa sostitui Smartphone e tablet 2
F [MySQL] Select con due condizioni su uno stesso campo MySQL 7
L [PHP] Inserire google recaptcha in uno form contatti PHP 1
T [PHP] Relazione uno a uno PHP 1
4potere Quanto pagare ad uno studente per i testi in ottica seo per il sito? SEO e Posizionamento 2
F [HTML] Effetto fade su ogni immagine contenute in uno slider HTML e CSS 16
ANDREA20 Creare carrello della spesa e applicare uno sconto E-Commerce 6
M Formazione per diventare uno specialista di Sicurezza Informatica Sicurezza e Virus 3
Gabriele Visioli Come creare uno spoiler in una pagina o post WordPress 1
M Ricercare uno specifico carattere in una precisa posizione PHP 5
novello88 Quanti domini gestisce uno specifico provider? Domini 1
felino [Wordpress] Custom Post Type: plugin per creare uno slider nei widget WordPress 0
marino51 730 precompilato + di uno snippet Snippet PHP 516
M Creare stampe pdf con tabelle relazione uno a molti PHP 0
ecosito CSS: è possibile cambiare font con uno non di uso comune? HTML e CSS 11
M Relazione uno a molti PHP 59
B Problema di visualizzazione di uno Slider in jquery jQuery 4
M Problema relazione uno a molti con 3 tabelle MySQL 4
felino [Oracle] Eseguire uno split di un record Oracle 1
A Visualizzare minuti con due cifre anche se il valore del tag ne riporta solo uno jQuery 1
A Visualizzare minuti con due cifre anche se il valore del tag ne riporta solo uno jQuery 0
Mr. Alex D. Come far apparire un testo preimpostato in una casella di un form di uno script php? PHP 1
felino Google My Business: uno strano errore... Social Media Marketing 3
otto9due Piccolo conflitto jquery.. Chi gli da uno sguardo? jQuery 6
S Un aiuto su uno script di ricerca avanzata in php che sto verificando. PHP 1

Discussioni simili