Controllo dati

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, non mi ricordo più come si fa fare il controllo dati se esiste o no e stampare l'errore dicendo "Non trovo il dato inserito nel database".

Questo è il mio script .. solo che ho cambiato metodo di quello che avevo problemi con l'if else if che non eseguivono..

faccio fare ansi che uno copia la chiave e la email dalla email che gli è arrivata ed inserisce nella pagina confirm.

vi posto il codice:

PHP:
<?php
// Includo la connessione al database
require('config.php');


// Se il modulo viene inviato...
if(isset($_POST['submit']))
{
	
	// Dati Inviati dal modulo
	$mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';	// Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
	$key = (isset($_POST['key'])) ? trim($_POST['key']) : '';	
	// Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
	if (!get_magic_quotes_gpc()) {
    	$key = addslashes($key);
	    $mail = addslashes($mail);
	}
	
	if(empty($mail))
	{
	  $error = "EMail vuota";
	}elseif(!isEmail($mail))
		$error = 'Email non valida';
	
	elseif(empty($key))
	{
	  $error = 'chiave vuota';
	}
	else
	{
		
        
       	$query = mysql_query("SELECT _key,mail FROM utenti WHERE _key='$key' and mail='$mail'");
		
        $row = mysql_fetch_assoc($query);
        
         if($row["_key"] == $key)
         {
           $error = "Chiave Non presente nel nostro database.";
           
         }elseif($row["mail"] == $mail)
         {
            $error = "Email Non presente nel nostro database.";
            
         }else
        
        {  
		      if(mysql_num_rows($query)==1)
            {
		
            $attivo = 1;
		// Query per la conferma dell'utente nel database
		
	       	$strSQL = "UPDATE utenti SET attivo = $attivo  WHERE _key='$key' and mail='$mail'";

		mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error());
        
        echo $strSQL;
        
		$getUser = mysql_query("SELECT * FROM utenti WHERE mail = '".mysql_real_escape_string($mail)."'") or die(mysql_error());
		
		if(mysql_num_rows($getUser)==1)
		{
			$row = mysql_fetch_assoc($getUser);
			$site_email = "meloland@localhost";
			$domain_name = "MeloLand";
			$url_root = "http://localhost/meloland";
			$subject = "Iscrizione venuta alla  land " . $domain_name;
			$message = 'Ciao,<b>'.$row["account"].'</b><br/>
			<p>Grazie per essere registrato nella nostra Land</p>';
				
			inviaMail($row["mail"], $subject, $message, "Land", $site_email);
			$msg = "Confermata la registrazione , controllare la prossima email sia posta indiserata e normale.";
		}
        
        }   
	}
}
}
?>
<?php	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	?>
<?php	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {?>
<form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
 Key<input name="key" type="text" id="key"  /><br />
 Email<input name="mail" type="text" id="mail"  /><br />
 <input name="submit" type="submit" value="Modifica" />
</form>
<?php }?>


sto provando ad fare un browser game semplice..
però mi sono fermato qui.. perché non so come mai questi if non li capisco ancora.

vi ringrazio molto....
buona giornata.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
ho fatto alcune modifiche prova a vedere se qualcosa puo interessarti
ho commentato
PHP:
<?php
// Includo la connessione al database
require('config.php');

// Se il modulo viene inviato...
if (isset($_POST['submit'])) {

    // Dati Inviati dal modulo
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    
// Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    $key = (isset($_POST['key'])) ? trim($_POST['key']) : '';
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $key = addslashes($key);
        $mail = addslashes($mail);
    }
    $error = array();
    // controlli che la mail non sia vuota
    if (!empty($mail)) {
        // controlli che sia valida
        if (!isEmail($mail)) {
            // crei l'errore con chiave mail
            $error['mail'] = 'Email non valida';
        }
        // se invece la mail è vuota
    } else {
        $error['mail'] = "EMail vuota";
    }
    // controlli che la chiave non sia vuota
    if (empty($key)) {
        // crei l'errore con chiave chiave
        $error['chiave'] = 'chiave vuota';
    }
    // verifichi che i dati siano presenti entrambi sul db
    $query = mysql_query("SELECT _key,mail FROM utenti WHERE _key='$key' = mail='$mail'");
    // e la query? non la esegui
    $res = mysql_query($query);
    // estrai i dati in un array associativo
    $row = mysql_fetch_assoc($res);
    // se la query va a buon fine ma non hai risultati i dati non sono validi
    if (mysql_query($query) && mysql_num_rows($query) == 0) {
        // crei un errore per l'autenticazione
        $error['auth'] = "Parametri non presenti nel nostro database.";
    }
    // verifichi che nell'array degli errori non ci siano elementi
    if (count($error) == 0) {
        $attivo = 1;
        // Query per la conferma dell'utente nel database
        $strSQL = "UPDATE utenti SET attivo = $attivo  WHERE _key='$key' and mail='$mail'";

        mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore " . mysql_error());

        echo $strSQL;

        $getUser = mysql_query("SELECT * FROM utenti WHERE mail = '" . mysql_real_escape_string($mail) . "'") or die(mysql_error());

        if (mysql_num_rows($getUser) == 1) {
            $row = mysql_fetch_assoc($getUser);
            $site_email = "meloland@localhost";
            $domain_name = "MeloLand";
            $url_root = "http://localhost/meloland";
            $subject = "Iscrizione venuta alla  land " . $domain_name;
            $message = 'Ciao,<b>' . $row["account"] . '</b><br/>
            <p>Grazie per essere registrato nella nostra Land</p>';

            inviaMail($row["mail"], $subject, $message, "Land", $site_email);
            $msg = "Confermata la registrazione , controllare la prossima email sia posta indiserata e normale.";
        }
    }
    // altrimenti se presente anche un solo errore cicli l'array
    foreach ($error as $key => $value) {
        echo "<p class='error'>$value</p>";
    }
} else {
    // se non è settato il post stampi la form
    ?>
    <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
        Key<input name="key" type="text" id="key"  /><br />
        Email<input name="mail" type="text" id="mail"  /><br />
        <input name="submit" type="submit" value="Modifica" />
    </form>
<?php } ?>

Ho creato un array per gli errori in modo che puoi ciclarlo e stamparli tutti

non ho testato

ciao
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao ho risolto con una funzione che avevo già scritto per controllare i dati e bastato mettere senza il ! e fa la cosa che voglio fare io.

grazie lo stesso..

vi ringrazio molto..

buona giornata.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [MySQL] Controllo dati di una tabella in tempo reale MySQL 0
F Controllo dati sui campi di input tramite php PHP 1
M [PHP] controllo inserimento dati un un form PHP 4
L Query di controllo dati già presenti PHP 1
P invio form non corretto dopo controllo dati PHP 8
K Controllo esistenza dati e inserimento in db ASP.NET 2
K controllo dati PHP 6
P Non funziona il controllo dati con ajax PHP 4
T problema strano con procedura di controllo da database, di dati immessi in un form asp Classic ASP 5
L form controllo con il for "Tutti i dati sono richiesti". PHP 2
S Controllo dati MS Access 0
K Controllo FORM e invio dati al DB PHP 43
P controllo dati form con jquery e php PHP 8
P controllo dati mentre s'inseriscono nel form PHP 17
P controllo dati immediati HTML e CSS 4
P Controllo inserimento dati Javascript 6
A Controllo dati su MYSQL per non sovrascrivere PHP 1
pup3770 Controllo sulla presenza di dati presenti su altra tabella PHP 5
T Impostare un controllo da database, di dati immessi in un form asp Classic ASP 6
T impostare il controllo dei dati immessi dagli utenti su form asp Classic ASP 8
emanuelevt controllo dati provenienti da tinymce PHP 4
G [Access 2003] Crere un controllo per dati già presenti MS Access 2
L MVC-Controllo Inserimento Dati PHP 6
L Controllo e confronto dati immessi in 2 campi Data in un form (mysql) PHP 1
B Controllo inserimento dati in Campi PHP 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
Z Controllo giorni MYSQL PHP 0
M Problema con controllo form in real time jQuery 6
MarcoGrazia jquery validate() controllo checkbox jQuery 2
M Controllo del codice fiscale/partita iva PHP 11
S Software windows10 per controllo contenuti web Windows e Software 6
S Controllo appuntamenti disponibili sul db PHP 5
L input (controllo se è stato modificato o no). PHP 1
W Controllo competitors serp SEO e Posizionamento 2
bubino8 [Javascript] popup di controllo elimina dopo window.print(); Javascript 0
M [MS Access] controllo valido se MS Access 8
MarkRed Come indicare, in una maschera, il primo controllo d'input, tipo "SetFocus" jQuery 9
C [PHP] Controllo <select> comportamento anomalo PHP 2
elpirata [Javascript] Controllo campi required non effettuato Javascript 2
A [PHP] Controllo nome utente form di registrazione PHP 4
L [PHP] controllo dimensione immagine per il resize PHP 2
M [ASP] Upload file da form controllo Classic ASP 5
P [PHP] Controllo al checkbox privacy PHP 6
T [php] controllo su estensione file PHP 7
M [PHP] Script per controllo disponibilitá negozio in citta PHP 4
I Recupero accesso pannello di controllo dominio Leggi, Normative e Fisco 2
R [MS Access] CONDIZIONE CHE CAMBIA PROPRIETA' DI UNA CONTROLLO MS Access 7
M [PHP] Dubbio controllo IF PHP 15
M [PHP] Controllo campo cap con trattino oltre ai numeri PHP 3

Discussioni simili