[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
616
58
28
20
Vicenza
Forse non è questo il problema, ma hai chiamato due cose diverse con la stessa variabile $conferma.
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
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.203
207
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.203
207
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.203
207
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.203
207
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0

Discussioni simili