Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-02-2011, 13:16   #1
dbp86
Senior Member
 
L'Avatar di dbp86
 
Iscritto dal: Aug 2002
Città: Svizzera
Messaggi: 2717
[PHP] Miglioramento script

Ciao ragazzi, ho scritto questo script che inserisce dei dati trasmetti tramite form in un database mysql.

Mi chiedevo, come posso aggiungere un controllo se i dati inseriti sono già esistenti all'interno del database?

ps: ho aggiunto un controllo sul nome incluso dentro una funzione e richiamato per valutarne il risultato, true o false, ho fatto male?
vedo che lo script funziona.

<html>
<head>
<body>

come vi sembra?

<?

require 'connect.php';
require 'config.php';

function controllodati()
{
if ( empty($_POST['nome']) ) die ('Il campo nome è obbligatorio');
}

$query= "insert into glossario (nome, descrizione) values ('{$_POST['nome']}', '{$_POST['descrizione']}')";
$result= mysql_query($query);
if(controllodati()==true) {
die ('impossibile continuare');
}

else {
if(!$result) {
die ('Inserimento non riuscito'.mysql_error());
}
}
mysql_close();
echo 'Inserimento avvenuto con successo';
?>
<br>
<a href="form.html"> Torna al form di inserimento </a>
<br>
<a href="leggi.php"> Visualizza tutti i valori esistenti nel database </a>

</head>
</body>
</html>
dbp86 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2011, 13:57   #2
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
non ha senso fare il controllo dei dati DOPO aver gia eseguito la query sul database

e poi la tua funzione di controllo non ritorna un valore TRUE/FALSE
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2011, 13:58   #3
dbp86
Senior Member
 
L'Avatar di dbp86
 
Iscritto dal: Aug 2002
Città: Svizzera
Messaggi: 2717
Quote:
Originariamente inviato da bobbytre Guarda i messaggi
non ha senso fare il controllo dei dati DOPO aver gia eseguito la query sul database

e poi la tua funzione di controllo non ritorna un valore TRUE/FALSE
non mi ero accorto di aver messo la funzione dopo la query.

Mi spiegheresti come modificare la funzione?

scusa ma sono alle prima armi.

grazie
dbp86 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2011, 14:02   #4
dbp86
Senior Member
 
L'Avatar di dbp86
 
Iscritto dal: Aug 2002
Città: Svizzera
Messaggi: 2717
così?

<html>
<head>
<body>



<?
require 'connect.php';
require 'config.php';


function controllodati()
{
if ( empty($_POST['nome']) )
{ die ('impossibile'); ;
}
}


controllodati();

$query= "insert into glossario (nome, descrizione) values ('{$_POST['nome']}', '{$_POST['descrizione']}')";
$result= mysql_query($query);

if(!$result) {
die ('Inserimento non riuscito'.mysql_error());
}
mysql_close();
echo 'Inserimento avvenuto con successo';
?>
<br>
<a href="form.html"> Torna al form di inserimento </a>
<br>
<a href="leggi.php"> Visualizza tutti i valori esistenti nel database </a>

</head>
</body>
</html>

Ultima modifica di dbp86 : 17-02-2011 alle 14:08.
dbp86 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2011, 14:23   #5
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
prova con qualcosa del genere ...
Codice PHP:
<?php
//--
    
require 'connect.php';
    require 
'config.php';

    function 
controllodati()
    {
        if ( empty(
$_POST['nome']) )
            return 
TRUE;
        else
            return 
FALSE;
    }
    
    function 
mia_funzione_di_pulizia_e_controllo($a)
    {
        
// ad esempio ...
        
        
$s mysql_real_escape_string($a);
        
// eventuali altri controlli ...
        
return $s;
    }
    
    

    if( 
controllodati() ) 
    {
        
// controllo fallito !
        // gestisco questa situazione , esco o redirect a una pagina di errore ...
        
header("Location: error.php");
        
    }
    
    
$nome mia_funzione_di_pulizia_e_controllo($_POST['nome']);
    
$desc mia_funzione_di_pulizia_e_controllo($_POST['descrizione']);
    
    
$query"insert into glossario (nome, descrizione) values ('".$nome."', '".$desc."')";
    
    
    
$resultmysql_query($query);
    
    
// ecc... ecc...
    
?>
<html>
bla... 
bla...
</html>
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2011, 14:43   #6
dbp86
Senior Member
 
L'Avatar di dbp86
 
Iscritto dal: Aug 2002
Città: Svizzera
Messaggi: 2717
grazie infinite adesso studierò il tuo metodo però prima vorrei chiederti una cosa ( devo capire bene i miei errori ) approfittando della tua gentilezza.

perchè così mi ritorna sempre la scritta impossibile???
il simbolo || non significa or?

<?
require 'connect.php';
require 'config.php';

function controllodati()
{
if ( empty($_POST['nome']) || "SELECT * FROM glossario WHERE nome='{$_POST['nome']}'") {
die ('impossibile');
}
}


controllodati();

$query= "insert into glossario (nome, descrizione) values ('{$_POST['nome']}', '{$_POST['descrizione']}')";
$result= mysql_query($query);

if(!$result) {
die ('Inserimento non riuscito'.mysql_error());
}
mysql_close();
echo 'Inserimento avvenuto con successo';
?>
dbp86 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2011, 19:39   #7
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
la condizione del tuo if si verifica se anche una delle due tue condizione risulta vera.
if ( empty($_POST['nome']) ) , puo risultare sia vera che falsa in base all'argomento passato a empty , quindi è corretto usarlo .

if ( "SELECT * FROM glossario WHERE nome='{$_POST['nome']}'")

risulta sempre verificata perche in PHP una stringa che contiene testo è vera a meno che la stringa non contenga uno 0

quindi ora capisci da solo che la condizione del tuo IF è sempre verificata quindi ti ritorna la scritta impossibile.
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
15 anni dopo Skate 3, il gioco torna sot...
Molte novità per MongoDB: version...
Cina, stop alle GPU NVIDIA: Pechino inti...
Google Pixel 10 con sconti super: ecco q...
Apple Mac mini con chip M4 a soli 598€ s...
DJI firma la rivoluzione: ecco il Mini 5...
Si spara in Friuli Venezia Giulia, ma so...
Trasformare una sigaretta elettronica us...
Addio ai clic inutili: arriva l'app Goog...
L'autobus elettrico interurbano di Merce...
Il PPE contro il Green Deal: 'Salviamo l...
AMD lancia in segreto quattro nuovi Ryze...
Maxi blitz contro lo streaming pirata: u...
PS5: oggi l'update che introduce il Powe...
Tesla apre le vendite del Cybertruck neg...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v