controllo username

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

So che sto scrivendo da mesi ma non riesco ad ottenere un risulta di un esempio valido che poi posso andare avanti da solo o sono io imbranato. Ma è una questione di principio tra me e me. Allora, sto cercando di capire passo passo come diavolo fare una validazione campi seria, ma come dicevo prima senza ottenere grossi risultati. Questo è quanto sto cercando di realizzare:

checkusername.php

PHP:
!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="generator" content="AlterVista - Editor HTML"/>
  <title>KeyUp</title>
  <script src='http://code.jquery.com/jquery-1.9.1.js'></script>
  <script src='http://code.jquery.com/jquery-migrate-1.1.1.min.js'></script>

  <script type="text/javascript">
function (){

       		 $.ajax({  
                   type: 'POST',  
                   url: 'checkdate.php', 
                   data: {'campo':campo,'valore':value},  
                   beforeSend: function(){  
                       $('.'+id).html('sto controllando...');  
                   }  
               }).done(function(trasmissione){   
                   $('.'+id).html(trasmissione);  
               });   
}

$(document).ready(function()
{	
	//quando premo sul bottone (unico presente nel file)
	$('button').click(function(){
		
		var username = document.getElementById('username').value;
		
                if(username == ''){
			$('form').html("C'è/Ci sono un/dei campo/i vuoto/i");
		}
                });
  </script>


</head>
<body>

  <form action="checkdate.php" method="post"">
       
      <label for="username">Username: <input type ="text" id="username" name="username"  autocomplete="off" ></label>
      
      <div align ="center">
 
                    <input type="submit" name="reg" value="Invio iscrizione" />
</div>
          
</form> 
</body>
</html>

e questo ècheckdate.php dove parte la chiamata in ajax

checkdate.php

PHP:
<?php
         require_once("connettimysqli.php");

 
$email=$_POST['email'];
 

$checkusername -> query("SELECT username FROM uty WHERE username ='$username'");

$controllo_esistenza_username = $result->num_rows($checkusername);

$controlloesistenza_username = $result->num_rows ($checkusername);
       if($controlloesistenza_username >= 1)
	{
		echo "Username è già presente nel db";
	        exit();
	}  else 
         

?>

In pratica, se io inserisco nell'input uno username già esistente, mi dovrebbe comparire a fianco dell'input una "X" altrimenti una "V" se non è presente. E' chiaro che avrò scritto un sacco di scemate già lo so ma non so come correggerle. Ho visto e letto die manuali ma hanno messo ancora di più confusione. Se mi potete dare una mano a risolvere la questione ve ne sarei grato.
 
Ciao Paperinik,
questo è un problema di ajax, ti sposto in quella sezione
non so quante volte ne abbiamo parlato e ti ho postato una soluzione
Te ne posto un'altra
HTML:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>KeyUp</title>
        <script src='http://code.jquery.com/jquery-1.9.1.js'></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $("#username").keyup(function() {
                    checkdate();
                });
            });
            function checkdate() {
                $.ajax({
                    type: "POST",
                    url: "checkdate.php",
                    data: $("#checkdate").serialize(),
                    success: function(response) {
                        eval(response);
                    }
                });
            }
        </script>
    </head>
    <body>
        <form id="checkdate" action="iscrizione.php" method="post">
            <label for="username">Username: </label>
            <input type="text" id="username" name="username"/>
            <span id="checkusername"></span>
            <br/>
            <input type="submit" name="reg" value="Invio iscrizione" />
        </form> 
    </body>
</html>
checkdate.php
PHP:
<?php

$sql = new mysqli("localhost", "username", "password", "database");

$result = $sql->query("SELECT username FROM uty WHERE username ='" . $sql->real_escape_string($_POST['username']) . "'");

if ($result->num_rows > 0) {
    $checkusername = "X";
} else {
    $checkusername = "V";
}
echo "$('#checkusername').html('" . $checkusername . "');"
?>
di più non posso fare
 
grazie

Ciao cricric,

Sono io che mi sono documentato male e ho seguito degli esempi sbagliati o incompleti. Comunque ti ringrazio di nuovo. Spero di non aver più bisogno di consultazioni e sopratutto non volgio più disturbare la vostra sensibilità e la mia incapacità di comprensione. Mi auto rimprovero da solo. E' ovvio che è tutta colpa mia se non riesco a comprendere alcuni procedimenti. Grazie ancora. -5 stelle a me e una punizione :P
 
ciao

Ciao cricric,

Volevo dei chiarimenti. Il primo, come mai metti questa stringa così:

PHP:
<form id="checkdate" action="iscrizione.php" method="post">

Poi un'altra curiosità Tu adoperi come me netbeans 7.2 e nel file checkdate.php mi segnala un errore a questa riga che ti posto:

PHP:
$result = $sql->query("SELECT username FROM uty WHERE username ='" . $sql->real_escape_string($_POST['username']) . "'");


In teoria da quanto ho capito dall'esempio, dovrebbe apaprirmi una "X" o una "V" a secondo se è presente o meno nel db giusto ??? Probabilmente essendoci un errore su quella riga è per questo ch enon me lo fa. Grazie ancora.
 
I triangoli di netbeans non sono errori,ma, solo segnalazioni.
Ti avverte che secondo lui in quella riga potrebbe esserci un problema,ma, netbeans non è perfetto
il codice l'ho testato e funziona cosi come te lo postato.
ovviamente devi inserire i tuoi parametri di connessione al posto di quelli che ho messo io :
PHP:
$sql = new mysqli("localhost", "username", "password", "database");
 
ciao

Ciao,

Ah ok, finalmente ho capito cosa isono i triangolini che molto spesso appaiano. Quindi anche se ci sono questi avvertimenti lui la riga la esegue comunque se non ho capito male.
 

Discussioni simili