Provare un tutorial e funziona mentre nel video sembrerebbe di si

paperinik4

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

Cecando su internet mi sono imbattuto in uun video che faceva al caso mio. Ossia controlla la presenza di uno username presente nel db. Tentato dalla voglia ho seguito il video più di una volta e l'ho rifatto di pari passo, modificando alcune cosette perchè al mio editor non andava bene. Ora posto quanto ho fatto e appreso da questo video senza otterenere il risultato che ottiene il video.

E' composto da due semplici file:

check.php

PHP:
<?php
require_once('connetti');

$username=mysql_real_string($_POST('$username'));

$check = mysql_query("SELECT username FROM uty WHERE username='$username'");

$check_num_rows = mysql_rows($check);
if ($username==NULL) 

echo "Inserire uno username";
else if (strlen($username)<=3)

echo "Username troppo corto min. di caratteri richiesti tre";
else {
if ($check_num_rows==0)
echo "Username è libero";
else if ($check_num_rows==1)
echo "Username non è libero";
}


?>
Qua mi viene segnalato diversi errori (ssotolineato in rosso dall'editor). Adopero netbeans 7.4

Questo invece è l'altro file chiamato:

index.php

PHP:
<html>
<head>
<style type = "text/css">

#feedback {

line-height: 0px;

}
</style>
     <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'></script>
       <script src="./iscrizione_files/jquery.min.js"></script>
       <script type="text/javascript">

$(document).ready.(function(){
$('$feedback').load('check.php').show();
$('#username_input').keyup(function() {
$.post('check.php', (username: form.username.value); 
function(result) {

$('#feedback').html(result).show();


)};
)};
)};
</script>
</head>
<body>
</body>

<form name="form">

Username: <input type = "text" id ="username_input" name="username">

</form>
<div id = "feedback"> Scrivere qui </div>
</html>
Sembra che non ci siano intoppi su questo file. la tabella è la solita:

si chiama uty composta:

cognome varchar(30);
nome varchar(30);
username varchar(30);
email varchar(50);
password varchar(255);

Il valodere della password l'ho messo al massimo in quanto dovrà poi essere criptata e non so esattamente quanti caratteri occupa nella criptazione in formato md5.

Il video da cui ho preso tale esempio è il seguente:

https://www.youtube.com/watch?v=8wUu7pWBygY

Ah un ultima cosa, premendo "invio" sull'input nella barra degli indirizzi del browser compare la seguente scritta:

PHP:
http://utenti/checkusername/index.php?username=eee
Cosa che vorrei che scomparisse. Grazie a tutti dell'aiuto. Spero.....

P.S.: Chiedo scusa della segnalazione del video ma è per capire come funziona. Spero di non essere andato fuori regolamento.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
Ciao,
da quello che ho capito avresti la necessità di capire se un determinato username e presente sul database.

Prima di tutto il giro che ti fa fare lì e molto lungo. andando per passo :

PHP:
<p>FORM</p>
<p><?php
		  
// Riceviamo il controllo check;
$controllo = $_POST['check'];
		  
// Se il controllo check e uguale a 1 allora continua.
if($controllo == "1") {
			  
// Recuperiamo il campo username
$username = $_POST['username'];			  
			  
// Controlliamo se e stato inserito il dato
if( trim($username) ==  "" )
{
	echo "Inserisci un'username per verificare!";
	die;
}  else {
	
// Includiamo il file di connessione al db;
include("con.php");

$sql= mysql_query("SELECT username FROM uty WHERE username='$username'");
$risultato = mysql_num_rows($sql); 
if ($risultato==0) {
echo "Username è libero";
 
}else if ($check_num_rows==1) {
echo "Username non è libero"; 
} 
	
}

		  }

?></p>
<form name="form1" method="post" action="show.php">
  <p>
    <input name="check" type="hidden" id="check" value="1">
  </p>
  <p>Username : 
    <label for="username"></label>
    <input type="text" name="username" id="username">
    <input type="submit" name="button" id="button" value="Controlla">
  </p>
</form>
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
ciao

Ciao,

Allora, ho provato il tuo e sembra che funzioni. L'unica cosa che non mi compare e che non capisco il perchè è questo:

PHP:
// Includiamo il file di connessione al db;
include("connetti.php");

$sql= mysql_query("SELECT username FROM uty WHERE username='$username'");
$risultato = mysql_num_rows($sql); 
if ($risultato==0) {
echo "Username è libero";
 
}else if ($check_num_rows==1) {
echo "Username non è libero"; 
} 
    
}

ossia quando c'è lo username presente ne db compare una pagina bianca.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
Allora la connessione al db può essere anche su un file esterno così lo puoi richiamare su ogni pagina con la funzione include invece di scrivere ogni volta tutti i parametri di connessione.


Inviato dal mio iPhone utilizzando Tapatalk
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ok una cosa. Il tutto si può trasformare adoperanfo ajax e facendo apparire una "v" per username libero oppure una "x per username occupato ??? E un altra cosa, se io lo volessi espandere anche per la verifica dell'email come dovrei fare ???? Grazie. A
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
Allora si per tutte e due le domande si può realizzare ... Attualmente sono fuori casa e non posso darti uno script che tengo fatto... Se aspetti più tardi te lo posto


Inviato dal mio iPhone utilizzando Tapatalk
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ciao Grazie della tua collaborazione. Io sono presente fino alle 18 che poi debbo uscire ma controllo comunque la posta dal mio cell. Appunto ogni tanto scrivo male. Appena puoi inviare fammelo sapere. Grazie.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ciao MMDesign,

Intanto ti ringrazio della segnalazione del link. Poi volevo sapere se eri disponibile ad aiutarmi a realizzare uno script semplice chiaro e che se ci devo mettere le mani per togliere o aggiungere i campi sono in grado di farlo da solo senza nessun aiuto. Comunque stasera guardo il link così per vedere se ci capisco qualcosa. Intanto grazie ancora.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
Il link che ti ho dato di spiega passo passo tutte le funzionalità in piu' ogni codice e commentato quindi non penso avrai difficoltà a modificarlo. Per qualsiasi cosa sono a disposizione :]
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ti ringrazio moltissimo. Solo una cosa vorrei capire. A posto dei messaggi a finestra con alert, è possibile mettere gli avvisi senza gli alert tipo come si fa con php echo "pincopallino"; Mi sono sempre stati antipatici gli alert e mlto spesso vengono scambiati per virus.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
Si certo basta solo modificare il codice invece di fargli inviare la richiesta con allert si aggiorna un div sul form che puoi tranquillamente trovare su zio google poi dopo te lo posto modificando questo post


Inviato dal mio iPhone utilizzando Tapatalk
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
ciao

Ciao MMDesign,


Allora, finalmente sono riuscito a provare l'esempio da tes egnalatomi. Per fortuna c'era un file zippato che mi ha aiutato a farlo funzionare. Risultato: qualsiasi username ci metto mi dice sempre non disponibile. Mentre invece è disponibile. Ti posto il tutto così magari si riesce a capire dove c'è lo sbaglio.

P.S.: Ho modificato solo la connessione al db e il nome della tabella.

check_username.php

PHP:
<?php
//connect to database
require_once('connetti.php');
//get the username
$username = mysql_real_escape_string($_POST['username']);

//mysql query to select field username if it's equal to the username that we check '
$result = mysql_query('select username from uty where username = "'. $username .'"');

//if number of rows fields is bigger them 0 that means it's NOT available '
if(mysql_num_rows($result)>0){
	//and we send 0 to the ajax request
	echo 0;
}else{
	//else if it's not bigger then 0, then it's available '
	//and we send 1 to the ajax request
	echo 1;
}

?>
index.html

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Input description</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">


  $(document).ready(function() {
        
		
		//the min chars for username
		var min_chars = 3;
		
		//result texts
		var characters_error = 'Minimum amount of chars is 3';
		var checking_html = '<img src="images/loading.gif" /> Checking...';
		
		//when button is clicked
		$('#check_username_availability').click(function(){
			//run the character number check
			if($('#username').val().length < min_chars){
				//if it's bellow the minimum show characters_error text
				$('#username_availability_result').html(characters_error);
			}else{			
				//else show the cheking_text and run the function to check
				$('#username_availability_result').html(checking_html);
				check_availability();
			}
		});
		
		
  });

//function to check username availability	
function check_availability(){
		
		//get the username
		var username = $('#username').val();
		
		//use ajax to run the check
		$.post("check_username.php", { username: username },
			function(result){
				//if the result is 1
				if(result == 1){
					//show that the username is available
					$('#username_availability_result').html('<span class="is_available"><b>' +username + '</b> is Available</span>');
				}else{
					//show that the username is NOT available
					$('#username_availability_result').html('<span class="is_not_available"><b>' +username + '</b> is not Available</span>');
				}
		});

}  
</script>
<style type='text/css'>
#check_username_availability{
	background: #225384;
	border:1px solid black;
	color:white;
}
body{
	font-family: 'tahoma';
}
input{
	padding:5px;
	font-family: 'tahoma';
}
.is_available{
	color:green;
}
.is_not_available{
	color:red;
}
</style>
</head>
<body>
<input type='text' id='username'> <input type='button' id='check_username_availability' value='Check Availability'>
<div id='username_availability_result'></div>
</body>
</html>

Questo è quanto manca solo il jquery.js che si prende direttamente da google. Perchè non funziona come dovrebbe ???? Buona serata e grazie.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
Ciao paperinik,
l'errore sta nella query mysql.

Ho sistemato un pò il codice basta solo che lo copi e funziona :

PHP:
<?php 
//connect to database 
include('connetti.php'); 
//get the username 
$username = mysql_real_escape_string($_POST['username']); 

//mysql query to select field username if it's equal to the username that we check ' 
$query = "SELECT username FROM uty WHERE username='".$username."'";
$result = mysql_query($query); 
$count=mysql_num_rows($result);
//if number of rows fields is bigger them 0 that means it's NOT available ' 
if($count > 0){ 
    //and we send 0 to the ajax request 
    echo 0; 
}else{ 
    //else if it's not bigger then 0, then it's available ' 
    //and we send 1 to the ajax request 
    echo 1; 
} 

?>
in poche parole mysql dava un'errore relativo alla query dove interpretava l'username inserito come tabella.
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ciao MMDesign,

Ho provato solo ora il tuo codice modificato, ma il risultato è sempre lo stesso. Ossia qualunque username digito mi dice sempre che non è disponibile. :( non capisco dove sta l'ulteriore sbaglio :( Comunque ti volevo ringraziare della correzione.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
Sembra strano che continua a fare l'errore ho provato ancora adesso sul mio server e funziona correttamente se vuoi ti dj il link così vedi.

Comunque l'errore sta in check_username.php sicuramente.

Per provare modifica la variabile $username da post a get poi vai sulla pagina del tuo sito


www.miosito.it/check_username.php?username=Pippo e vedi se ti da l'errore oppure il numero 0


Inviato dal mio iPhone utilizzando Tapatalk
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ciao MMDesign,

Allora il link che mi hai dato mi da una pagina not found. Comunque ho provato a modificare da $_POST A $_GET, ma il risultato non cambia. Ho provato a immettere nel browser quel link che mi hai dato e mi da il seguente errore:

Warning: include(connetti.php): failed to open stream: No such file or directory in /volume1/web/utenti/checkusername/check_username.php on line 3 Warning: include(): Failed opening 'connetti.php' for inclusion (include_path='.') in /volume1/web/utenti/checkusername/check_username.php on line 3 Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in /volume1/web/utenti/checkusername/check_username.php on line 5 Warning: mysql_real_escape_string(): A link to the server could not be established in /volume1/web/utenti/checkusername/check_username.php on line 5 Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in /volume1/web/utenti/checkusername/check_username.php on line 9 Warning: mysql_query(): A link to the server could not be established in /volume1/web/utenti/checkusername/check_username.php on line 9 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /volume1/web/utenti/checkusername/check_username.php on line 10 1
E' come se non si connettesse al db. Però se faccio girare il file connetti.php funziona egregiamente e mi dice che sono connesso al db.
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Perdonami,


Ho fatto un errore madornale io. Mi sono dimenticato di copiare il file connetti.php ecco perchè mi dava tutta quella parpaddella di errori e poi avevo sbagliato a richiamare il file connetti. Ora riprovo. e ti dico l'esito. Comunque non cambia l'esito è sempre uguale.