[PHP] Verifica utente presente nel DB

#Fede5

Nuovo Utente
23 Ott 2019
11
0
1
Ciao ragazzi, ho il seguente problema: modificare i campi di un utente solo se il suo nome e cognome è presente nel db. Io ho provato a fare nel seguente modo ma non capisco dove sta l'errore

PHP:
<?php

 $connessione = mysqli_connect('localhost','root','','utente');

?>



<?php

if(isset($_POST['submit'])){
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];   
$query = "SELECT * FROM `invitato` WHERE `Nome` = $nome AND `Cognome` = $cognome";
$verificaPresenza = mysqli_query($connessione,$query);         
if(mysqli_num_rows($verificaPresenza) == 1){
 $conferma = $_POST['conferma'];
 $adulti = $_POST['adulti'];
 $bambini = $_POST['bambini'];   
 $query2 = "UPDATE `invitato` `Adulti`= $adulti ,`Bambini`= $bambini ,`Conferma`= $conferma WHERE `Nome` = $nome AND `Cognome` = $cognome";
 $conferma = mysqli_query($connessione,$query2);   
    
    
 }else{
    echo "Persona non presente";
  } 
}

      
 ?>


HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>

</head>

<body>


<div id="conferme">
           <form action="" method="post" name="conferma" id="conferma" autocomplete="off">
    
            <label form="nome">Nome</label>
            <input type="text" id="nome" name="nome" placeholder="Nome"/>
          
            <label form="cognome">Cognome</label>
            <input type="text" id="cognome" name="cognome" placeholder="Cognome"/>
          
            <label form="risposta">Verrai al nostro matrimonio?</label>   
            <select id="risposta" name="conferma">
             <option value="select">Select</option>
             <option value="Si">Si</option>
             <option value="No">No</option>
            </select>
            
            
            <label form="Numero">Quanti adulti?</label>
            <select id="adulti" name="adulti">
             <option value="select">Select</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="2">3</option>
             <option value="2">4</option>
             <option value="2">5</option>
             <option value="2">6</option>
             <option value="2">7</option>
             <option value="2">8</option>
            
            </select>
            
            <label form="Numero">Quanti bambini?</label>
            <select id="bambini" name="bambini">
             <option value="select">Select</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="2">3</option>
             <option value="2">4</option>
             <option value="2">5</option>
             <option value="2">6</option>
             <option value="2">7</option>
             <option value="2">8</option>
            
            </select>
             <input type="submit" name="submit" id="submit" class="btn btn-success" value="Invia" onclick="valida()" />
            
           </form>
        
              
              
              
          </div>

<script>
$(document).on('submit', '#conferma', function(event){
 event.preventDefault();
//varibili associate ai campi del modulo
 var nome = document.conferma.nome.value;
 var cognome = document.conferma.cognome.value;
 var conferma = document.conferma.conferma.selectedIndex;
 var adulti = document.conferma.adulti.selectedIndex;
 var bambini = document.conferma.bambini.selectedIndex;  
 var car_alf = /^([a-zA-Z\xE0\xE8\xE9\xF9\xF2\xEC\x27]\s?)+$/;
 if((nome == "") || (nome == "undefined") || (cognome == "") || (cognome == "undefined") || (conferma == "") || (conferma == "undefined") ){
     alert("I campi nome, cognome e conferma sono obbligatori");
     document.conferma.nome.focus();
     return false;
 }
   
 if(!car_alf.test(nome)){
     confirm("Il nome inserito non è valido");
     document.conferma.nome.focus();
     return false;
 }
   
 if(!car_alf.test(cognome)){
     confirm("Il cognome inserito non è valido");
      document.conferma.cognome.focus();
     return false;
 }
   
 if((conferma.index == 0) ){
    confirm("La risposta di conferma è obbligatoria");
    document.conferma.conferma.focus();
    return false; 
 }
   
 if((conferma==1) && (adulti == 0)){
    confirm("Il numero di adulti è obbligatorio");
    document.conferma.cognome.focus();
    return false; 
 }    
   
 else{
   
    confirm("Conferma inviata correttamente. Grazie!");
     document.invio.submit();
     document.invio.action ="matrimonio.php#rvsp";
 } 
   
} 
   
   
    </script>  


</body>


</html>

Qualcuno mi può aiutare? Grazie
 

Tommy03

Utente Attivo
6 Giu 2018
606
57
28
17
Vicenza
Forse non è questo il problema, ma hai chiamato due cose diverse con la stessa variabile $conferma.
 

marino51

Utente Attivo
28 Feb 2013
3.016
174
63
Lombardia
ho provato a fare nel seguente modo ma non capisco dove sta l'errore
sicuramente ti segnala un errore, se tu lo comunicassi, le persone evitano di spendere tempo inutilmente,
SELECT * FROM `invitato` WHERE `Nome` = $nome AND `Cognome` = $cognome
le variabili devono essere racchiuse tra apici, trattandosi di strinche di caratteri
altro non so
 

#Fede5

Nuovo Utente
23 Ott 2019
11
0
1
sicuramente ti segnala un errore, se tu lo comunicassi, le persone evitano di spendere tempo inutilmente,
Purtroppo non mi segnala nessun errore, altrimenti l'avrei scritto, non è mia intenzione far perdere tempo a qualcuno

le variabili devono essere racchiuse tra apici, trattandosi di strinche di caratteri
altro non so

Ho aggiunto gli apici ma non cambia nulla, non effettua la verifica iniziale e non stampa neanche l'eco "Persona non presente"
 

#Fede5

Nuovo Utente
23 Ott 2019
11
0
1
Forse non è questo il problema, ma hai chiamato due cose diverse con la stessa variabile $conferma.
Si effettivamente avevo chiamato per sbaglio due cose diverse con la stessa variabile $conferma ma il problema non si è risolto, continua a non effettuare il controllo...
 

mr.x

Utente Attivo
9 Apr 2016
252
25
28
PHP:
$query2 = "UPDATE `invitato` `Adulti`= $adulti .....

ti sei dimenticato il SET

UPDATE `invitato` SET `Adulti`= $adulti....

cmq verifica di non avere doppioni nel DB, perchè con la verifica che hai scritto per la prima query loscript non prosegue se le righe estratte sono diverse da 1 (quindi ne so sono 0 ne se sono >1 ).
 

#Fede5

Nuovo Utente
23 Ott 2019
11
0
1
PHP:
$query2 = "UPDATE `invitato` `Adulti`= $adulti .....

ti sei dimenticato il SET

UPDATE `invitato` SET `Adulti`= $adulti....

cmq verifica di non avere doppioni nel DB, perchè con la verifica che hai scritto per la prima query loscript non prosegue se le righe estratte sono diverse da 1 (quindi ne so sono 0 ne se sono >1 ).
si, il SET è stata una svista ma ancora nulla, continua a non entrare minimamente nell'if iniziale...
 

marino51

Utente Attivo
28 Feb 2013
3.016
174
63
Lombardia
manca la parentesi tonda chiusa e magari il punto e virgola
HTML:
    confirm("Conferma inviata correttamente. Grazie!");
     document.invio.submit();
     document.invio.action ="matrimonio.php#rvsp";
 }
});   <<<<<<<<<<<<<<<<<<<<<-------------------------------------------------------------------------
    </script>
</body>
</html>

poi dovresti richiamare jquery visto che lo usi, per esempio
HTML:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type='text/javascript' src='http://localhost/test_site/php/jquery.min.js'></script> <<<<<<<<<<<-----------
<title></title>
</head>

con queste modifiche, il codice html e javascript rispondono, visualizzando i messaggi

prova e fai sapere
 

marino51

Utente Attivo
28 Feb 2013
3.016
174
63
Lombardia
upload_2019-10-23_20-19-21.png



ps,
value="Invia" onclick="valida()"

la funzione "valida()" non é definita
 

#Fede5

Nuovo Utente
23 Ott 2019
11
0
1
il codice html e javascript rispondo ma continua a non essere effettuare la verifica dell'if infatti non stampa nessun ecco e quindi la verifica della presenza dell'utente nel DB. Il codice completo e modificato è attualmente questo...

PHP:
<?php

 $connessione = mysqli_connect('localhost','root','','utente');

?>

<?php

if(isset($_POST['submit'])){
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$id = $_POST['user_id'];   

$query = "SELECT * FROM `invitato` WHERE `id` = $id   AND `Nome` = '$nome' AND `Cognome` = '$cognome' ";

$verificaPresenza = mysqli_query($connessione,$query);         

if(mysqli_num_rows($verificaPresenza) > 0){
 $risposta = $_POST['risposta'];
 $adulti = $_POST['adulti'];
 $bambini = $_POST['bambini'];   

$query2 = "UPDATE `invitato` SET `Adulti`= $adulti ,`Bambini`= $bambini ,`Conferma`= $risposta WHERE `Nome` = '$nome'  AND `Cognome` = '$cognome' AND  `id` = $id ";
 
$verificaConferma = mysqli_query($connessione,$query2);   
echo "Conferma inviata" ;   
    
 }else{
    echo "Persona non presente";
  }
}
      
 ?>



HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Progetto</title>

<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
 
    
    
</head>

<body>

<form action="" method="post" name="conferma" id="conferma" autocomplete="off">
    
            <label form="nome">Nome</label>
            <input type="text" id="nome" name="nome" placeholder="Nome"/>
          
            <label form="cognome">Cognome</label>
            <input type="text" id="cognome" name="cognome" placeholder="Cognome"/>
          
            <label>Conferma?</label>   
            <select id="risposta" name="risposta">
             <option value="select">Select</option>
             <option value="Si">Si</option>
             <option value="No">No</option>
            </select>
            
            
            <label>Quanti adulti?</label>
            <select id="adulti" name="adulti">
             <option value="select">Select</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="2">3</option>
             <option value="2">4</option>
             <option value="2">5</option>
             <option value="2">6</option>
             <option value="2">7</option>
             <option value="2">8</option>
            
            </select>
            
            <label>Quanti bambini?</label>
            <select id="bambini" name="bambini">
             <option value="select">Select</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="2">3</option>
             <option value="2">4</option>
             <option value="2">5</option>
             <option value="2">6</option>
             <option value="2">7</option>
             <option value="2">8</option>
            
            </select>
             <input type="submit" name="submit" id="submit" class="btn btn-success" value="Invia"  />
            
            <input type="hidden" name="user_id" id="user_id" />
           </form>


<script>
$(document).on('submit', '#conferma', function(event){
event.preventDefault();
var user_id = $(this).attr("id");   
//varibili associate ai campi del modulo
 var nome = document.conferma.nome.value;
 var cognome = document.conferma.cognome.value;
 var conferma = document.conferma.risposta.selectedIndex;
 var adulti = document.conferma.adulti.selectedIndex;
 var bambini = document.conferma.bambini.selectedIndex; 
 var car_alf = /^([a-zA-Z\xE0\xE8\xE9\xF9\xF2\xEC\x27]\s?)+$/;
 if((nome == "") || (nome == "undefined") || (cognome == "") || (cognome == "undefined") || (conferma == "") || (conferma == "undefined") ){
     alert("I campi nome, cognome e conferma sono obbligatori");
     document.conferma.nome.focus();
     return false;
 }
  
 if(!car_alf.test(nome)){
     confirm("Il nome inserito non è valido");
     document.conferma.nome.focus();
     return false;
 }
  
 if(!car_alf.test(cognome)){
     confirm("Il cognome inserito non è valido");
      document.conferma.cognome.focus();
     return false;
 }
  
 if((conferma.index == 0) ){
    confirm("La risposta di conferma è obbligatoria");
    document.conferma.risposta.focus();
    return false;
 }
  
 if((conferma==1) && (adulti == 0)){
    confirm("Il numero di adulti è obbligatorio");
    document.conferma.adulti.focus();
    return false;
 }   
  
 else{
  
     //confirm("Conferma inviata correttamente. Grazie!");
     document.invio.submit();
     
 }
  
});
  
              
    </script>


</body>

 
</html>
 

mr.x

Utente Attivo
9 Apr 2016
252
25
28
PHP:
<?php
$connessione = mysqli_connect('localhost','root','','utente');

if (!$connessione) {    echo "Error: Unable to connect to MySQL." . PHP_EOL;    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;    exit;}
?>

modifica così le prime righe e vedi se ricevi qualche errore , perchè a me il dubbio che ci sia un problema con la connessione al DB viene..

ps
correggia anche

...`Conferma`= '$risposta' WHERE `Nome` ...
aggiungi gli apici..
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.016
174
63
Lombardia
facciamo che ti posto il codice html e javascript funzionante (c'erano anche alcuni errori, vedi "label form"),

dove c'é il messaggio
echo "La conferma e' stata inviata correttamente. Grazie!";
puoi inserire il codice php di aggiornamento del database (che non ho rivisto, hai già suggerimenti)

prova il codice che ti posto prima di fare modifiche per capire come funziona
PHP:
<?php
if(empty($_POST)) {
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Progetto</title>
<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
</head>
<body>
<form method="post" name="conferma" id="conferma" autocomplete="off" action="_test.php">

            <label for="nome">Nome</label>
            <input type="text" id="nome" name="nome" placeholder="Nome"/>

            <label for="cognome">Cognome</label>
            <input type="text" id="cognome" name="cognome" placeholder="Cognome"/>

            <label>Conferma?</label> 
            <select id="risposta" name="risposta">
             <option value="select">Select</option>
             <option value="Si">Si</option>
             <option value="No">No</option>
            </select>

            <label>Quanti adulti?</label>
            <select id="adulti" name="adulti">
             <option value="select">Select</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="2">3</option>
             <option value="2">4</option>
             <option value="2">5</option>
             <option value="2">6</option>
             <option value="2">7</option>
             <option value="2">8</option>
            </select>

            <label>Quanti bambini?</label>
            <select id="bambini" name="bambini">
             <option value="select">Select</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="2">3</option>
             <option value="2">4</option>
             <option value="2">5</option>
             <option value="2">6</option>
             <option value="2">7</option>
             <option value="2">8</option>
            </select>

            <input type="submit" name="submit" id="submit" class="btn btn-success" value="Invia" />

            <input type="hidden" name="user_id" id="user_id" />
           </form>
<script>
$(document).on('submit', '#conferma', function(event){

  alert("The form was submitted");

  var user_id  = $(this).attr("id");
  var nome     = document.conferma.nome.value;
  var cognome  = document.conferma.cognome.value;
  var conferma = document.conferma.risposta.selectedIndex;
  var adulti   = document.conferma.adulti.selectedIndex;
  var bambini  = document.conferma.bambini.selectedIndex;

  var car_alf = /^([a-zA-Z\xE0\xE8\xE9\xF9\xF2\xEC\x27]\s?)+$/;

  if((nome == "") || (nome == "undefined") || (cognome == "") || (cognome == "undefined") || (conferma == "") || (conferma == "undefined") ){
     alert("I campi nome, cognome e conferma sono obbligatori");
     document.conferma.nome.focus();
     event.preventDefault();
     return false;
  }
  if(!car_alf.test(nome)){
     confirm("Il nome inserito non è valido");
     document.conferma.nome.focus();
     event.preventDefault();
     return false;
  }
  if(!car_alf.test(cognome)){
     confirm("Il cognome inserito non è valido");
     document.conferma.cognome.focus();
     event.preventDefault();
     return false;
  }
  if((conferma.index == 0) ){
    confirm("La risposta di conferma è obbligatoria");
    document.conferma.risposta.focus();
    event.preventDefault();
    return false;
  }
  if((conferma==1) && (adulti == 0)){
    confirm("Il numero di adulti è obbligatorio");
    document.conferma.adulti.focus();
    event.preventDefault();
    return false;
  }
  confirm("Grazie, invio la conferma");
});
    </script>
</body>
</html>
<?php
}
else {
  echo "La conferma e' stata inviata correttamente. Grazie!";
}
?>

RISULTATO

upload_2019-10-24_0-56-7.png


upload_2019-10-24_0-56-32.png


ps, ATTENTO, modifica
action="_test.php"
quando hai concluso le prove, così ho chiamato lo script usato per le prove
 

marino51

Utente Attivo
28 Feb 2013
3.016
174
63
Lombardia
controlla la connessione (non uso mysql e non ho riferimenti validi) !!
sostituisci la parte finale dello script
PHP:
    </script>
</body>
</html>
<?php
}
else {
  $connessione=mysqli_connect('localhost','root','','utente');
  if (!$connessione) { die("Error: Unable to connect to MySQL" . PHP_EOL
                          ."Debugging errno: " . mysqli_connect_errno() . PHP_EOL
                          ."Debugging error: " . mysqli_connect_error() . PHP_EOL); }

  $nome    = $_POST['nome'];
  $cognome = $_POST['cognome'];
  $id      = $_POST['user_id'];  

  $query = "SELECT * FROM invitato WHERE id=".$id." AND Nome='".$nome."' AND Cognome='".$cognome."'";

  $verificaPresenza = mysqli_query($connessione,$query);        
  if ($verificaPresenza === null) { die("Errore nella verifica della persona (verificaPresenza)"); }

  if(mysqli_num_rows($verificaPresenza) > 0) {
    $risposta = $_POST['risposta'];
    $adulti   = $_POST['adulti'];
    $bambini  = $_POST['bambini'];  

    $query2 = "UPDATE invitato SET Adulti=".$adulti.", Bambini=".$bambini.", Conferma='".$risposta."' WHERE Nome='".$nome."' AND Cognome='".$cognome."' AND  id=".$id;

    $verificaConferma = mysqli_query($connessione,$query2);

    if ($verificaConferma) { echo "La conferma e' stata inviata correttamente. Grazie!"; }
    else                   { echo "Errore nell'invio della conferma (verificaConferma)"; }
  }
}
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
MarcoGrazia [PHP] Verifica dell'input utente tramite funzione generica. PHP 0
gandalf1959 [PHP] Verifica password per accesso ad area riservata PHP 3
Samuele Ronzani [PHP] Verifica se un dato esiste già PHP 1
S [PHP] Verifica dati tramite form e annullamento codice inserito PHP 7
M [PHP] Verifica formato data in tempo reale PHP 2
C verifica e invio ordine php PHP 19
P Verifica form solo con php senza javascript PHP 15
G php asincrono con ajax 2 campi di verifica PHP 1
M Cosa ne pensate del mio primo file PHP (verifica disponibilità stanze)? PHP 0
P Verifica form misto php e JS Javascript 2
P verifica codice php PHP 1
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 0
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2

Discussioni simili