ne farò lettura, grazie
ne farò lettura, grazie
Errare è umano, Perseverare è Diabolico.
sapiente è colui ke sa di non sapere.
dunque questo al momento � il codice completo e funzionante:
In pratica una volta estratto il record se esiste lo aggiorno inserendogli un valore '1' in un campo chiamato 'ok'.codice:<?php // richiamo il file di configurazione require 'config.php'; // richiamo lo script responsabile della connessione a MySQL require 'connect.php'; $code = $_GET["code"]; // preparo la query $query = "SELECT * FROM serials WHERE code = '".$code."'"; // lancio la query $result = mysql_query($query); // controllo l'esito if($result && mysql_num_rows($result)>0){ while($array=mysql_fetch_array($result)) //visualizzo a video il risultato echo $array['ok']; echo '</br>'; //aggiorno il record $query = "UPDATE serials SET ok='1' WHERE code = '".$code."'"; // invio la query $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); } echo 'Codice convalidato'; } else { echo 'Nessun codice trovato'; } // chiudo la connessione a MySQL mysql_close(); ?>
Adesso vorrei aggiungere un controllo di questo campo 'ok' , mi spiego, se ok sar� 1 allora non aggiornare....
....mi sembra di capire che dovrei annidare una condizione if all'interno della prima condizione subito dopo il primo controllo esito.
Mi crea dei problemi questo?
Errare è umano, Perseverare è Diabolico.
sapiente è colui ke sa di non sapere.
Prova così ma prendilo con le pinze perchè è un po' che non uso le mysql
Se è roba seria ti conviene dare un' occhiata all' sql injection perchè così è vulnerabilissimoCodice PHP:// richiamo il file di configurazione
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
$code = $_GET["code"];
// preparo la query
$query = "SELECT * FROM serials WHERE code = '".$code."'";
// lancio la query
$result = mysql_query($query);
// controllo l'esito
if($result && mysql_num_rows($result)>0)
{
while($array=mysql_fetch_array($result))
{
//visualizzo a video il risultato
echo $array['ok'];
echo '</br>';
if($array['ok'] == 1)
{
$query = "UPDATE serials SET ok='1' WHERE code = '".$code."'";
if(mysql_query($query))
{
echo 'Codice convalidato';
}
else
{
die("Errore nella query $query: " . mysql_error());
}
}
} //while end
}
else
{
echo 'Nessun codice trovato';
}
// chiudo la connessione a MySQL
mysql_close();
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
magari sta solo imparando, se x quello usa ancora le mysql...diamogli tempo![]()
In effetti non è che sia un GURu..........
...c'è da dire che il programmino che vorrei realizzare gira in una cartella nascosta del server e comunque nessuno è a conoscenza dell'url............
........vi spiego in breve cosa voglio fare (magari saprete anche consigliarmi qualcosa di più sicuro):
creo un qrCode con il link della variabile in modo che scansionandolo il programmino mi riconosce se sia stato già utilizzato o meno.............in pratica lo inserisco su dei bigliettini in maniera che questo non possa essere riutilizzato.......non so se mi sono spiegato!
Grazie per la vostra disponibilità.
Errare è umano, Perseverare è Diabolico.
sapiente è colui ke sa di non sapere.
Ciao anche io come te sto imparando a programmare...
Allora...
se ho capito quello che vuoi fare, è evitare che uno stesso codice venga riutilizzato più volte, allora in quel caso come già detto basta fare un controllo, perciò in questo punto:
...
Puoi fare cosi, ovviamente è solo un suggerimento...codice:if($result && mysql_num_rows($result)>0){ while($array=mysql_fetch_array($result))
Non so se era questo il problema che avevi... Nel caso spero di averti risposto giusto ;DCodice PHP:// richiamo il file di configurazione
require'config.php';
// richiamo lo script responsabile della connessione a MySQL
require'connect.php';
//esegui un escape per i caratteri dannosi di mysql, per evitare di essere bucato
$code =mysql_escape_string($_GET["code"]);
// preparo la query
$query ="SELECT * FROM serials WHERE code = '".$code."'";
// lancio la query
$result = mysql_query($query);
// controllo l'esito (se devi trovare un solo risultato puoi fare così a quel punto)
if($result && mysql_num_rows($result)==1){
//prendi il risultato
$array=mysql_fetch_array($result);
}
else{
//errore generico diciamo...
}
//Dopo di che effettui un controllo con un if
if($array["ok"]!="1"){
//il codice non era mai stato utilizzato
//visualizzo a video il risultato
echo $array['ok'];
echo '</br>';
//aggiorno il record
$query = "UPDATE serials SET ok='1' WHERE code = '".$code."'";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo 'Codice convalidato'; }
else{
//stampa un messaggio di errore perchè il codice è stato utilizzato
}
// chiudo la connessione a MySQL
mysql_close();
P.S. Correggetemi se ho sbagliato qualcosa xD
P.P.S.
Ultima modifica di Nexus0100; 08-08-2016 a 16:30 Motivo: Correzioni varie
Questo è il codice copmpleto e funzionante (almeno fa quello che mi necessita a me)
al limite potrei aggiungere un codice di controllo, quindi prima di effettuare la ricerca del codice e processarlo inserire una casella dove l'utente deve autenticarsi con un codice che conosce solo lui e quindi presente all'interno del db. Mi spiego meglio:codice:<?php // richiamo il file di configurazione require 'config.php'; // richiamo lo script responsabile della connessione a MySQL require 'connect.php'; //recupero la variabile del codice $code = $_GET["code"]; // preparo la query $query = "SELECT * FROM serials WHERE code = '".$code."'"; // lancio la query $result = mysql_query($query); // controllo l'esito if($result && mysql_num_rows($result)>0) { while($array=mysql_fetch_array($result)) { //visualizzo a video il risultato //echo $array['ok']; //echo '</br>'; if($array['ok'] == 0) { $query = "UPDATE serials SET ok='1' WHERE code = '".$code."'"; if(mysql_query($query)) { //indirizzo verso pagina alert function gotoPage($indirizzo=""){ echo '<script language="javascript">'; echo 'self.location="'.$indirizzo.'"'; echo '</script>'; } gotoPage("ok.php"); //echo 'Codice convalidato'; } else { die("Errore nella query $query: " . mysql_error()); } } elseif ($array['ok'] == 1) { //indirizzo verso pagina alert function gotoPage($indirizzo=""){ echo '<script language="javascript">'; echo 'self.location="'.$indirizzo.'"'; echo '</script>'; } gotoPage("alert.php"); //echo 'Attenzione, il codice è già stato utilizzato!'; } } //while end } else { //indirizzo verso pagina alert function gotoPage($indirizzo=""){ echo '<script language="javascript">'; echo 'self.location="'.$indirizzo.'"'; echo '</script>'; } gotoPage("error.php"); //echo 'Nessun codice trovato'; } // chiudo la connessione a MySQL mysql_close(); ?>
> nel db ho un campo user "ab000"
> l'utente deve inserire questo codice perchè l'applicazione prosegua, altrimenti non va avanti.
Potrebbe essere un po il modo per aumentare la sicurezza?
Mi attengo alle vostre considerazioni.
Errare è umano, Perseverare è Diabolico.
sapiente è colui ke sa di non sapere.