Problema con sql

di il
3 risposte

Problema con sql

Salve ho creato un mio sito internet per uso scolastico... fatto sta che c'è sicuramente un errore ma il mio prof mi ha detto che nn puo stare a vedere tutto il codice chi mi puo aiutare a capire perchè nn si collega al database che ho creato??
il sito è questo: http://dechiarap.altervista.org
poi ho creato il file register.php con questo codice:
<?php
Include 'config.php'

?>

<?php
$conn = mysql_connect ("localhost", "root", "");
mysql_select_db ("utenti_temp", $conn);
if (!isset($_GET['passkey'])){

	if (!isset($_POST['invia'])) { ?>
<form method="post" action="#" id="formregistrazione">
	<label for="username"> Username</label>
	<input type="text" name="username" id="username" /> <br>
	<label for="password1"> Password</label>
	<input type="password" name="password1" id="password1" /> <br>
	<label for="password2">Ripeti Password</label>
	<input type="password" name="password2" id="password2" /> <br>
	<label for="email"> Email</label>
	<input type="text" name="email" id="email" /> <br>
	<input Type="submit" name="invia" id= "registrati" value="registrati"/>
	</form>
	<?php
	} else {
					$codiceconferma = md5(uniqid(rand()));

$username= mysql_real_escape_string($_POST ['username']);	
$password1= mysql_real_escape_string($_POST ['password1']);	
$password2= mysql_real_escape_string($_POST ['password2']);
$email= mysql_real_escape_string($_POST ['email']);
			
			
			if($username =="" || $email==""){
					echo "Devi inserire tutti i dati";
		} elseif($password1 =="" || $password2=="") {
		echo "Devi inserire tutti i dati";
		}elseif($password2 != $password1) {
		echo "le password non sono uguali";
		}else {
		$recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email ='$email'");
$contausermail=mysql_num_rows ($recuperauseremail);
		if ($contausermail >0) {
		echo "Nome utente o e mail gia disponibili";
		} else { 
 $inviautentitemp= mysql_query ("INSERT INTO Utenti_temp(codiceconferma,username,password,email) VALUES('$codiceconferma','$username','$password2', '$email')");

if ($inviautentitemp){
$to=$email;
$message="ecco il codice di attivazione \r\n";
$message.="clicca sul link per confermare la registrazione \r\n";
$message.="http://127.0.0.1/sito/register.php?passkey=$codiceconferma";
						
							
							if (mail ($to,$message)) { 
							echo"Per completare la registrazione clicca sul link di attivazione della e mail che ti è arrivata";
							} else { echo"Errore, link di attivazione non inviato";
							}
 }else {
             echo "Errore sql.";
}  
}
}
}
} else{
$passkey =$_GET['passkey'];
$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codice_conferma ='$passkey'";
$risultatouser = mysql_query($sqlrecuperauser);
if ($risultatouser){
$contauser =mysql_num_rows ($risultatouser);
if ($contauser ==1) {


$rows =mysql_fetch_array($risultatouser);
$username =$rows ['username'];
$username= $rows ['email'];
$password= $rows ['password'];
$passwordcript =md5($password);
$sqlconfermauser=mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username','$passwordcript','$email')");
 if ($sqlconfermauser) {
 echo "il tuo account è attivo";
 $sqleliminadati =mysql_query ("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");
 } else {
 echo"errore";
 }
 }
}
}
?>

	</div>
	
	</body>
	</html>
e il file login.php con ques'altro codice :
<?php 
	
	$p = ($_GET ['azione']);
	
	if ($p == "login") {
	if (!isset($_POST['invia'])) { ?>
<form method="post" action="#" id="formlogin">
	<label for="username"> Username</label>
	<input type="text" name="username" id="username" /> <br>
	<label for="password"> Password</label>
	<input type="password" name="password" id="password" /> <br>
	<input type="submit" name="invia" id= "login" value="Accedi"/>
	</form>
	
	<?php   }			else{
	
				$username = mysql_real_escape_string($_POST['username']);
				$password = mysql_real_escape_string($_POST['password']);
	if ($username == "" ||  $password == "") {
	echo "attenzione devi inserire tutti i campi"; 
	} else{ 
	$password_cript =md5($password);
	
	$recuperadati =mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
	$verificadati=mysql_num_rows ($recuperadati);
	
	if ($verificadati == 1) {
	$sessione=mysql_fetch_array ($recuperadati);
	$_SESSION['username'] = $sessione['username'];
	echo "login effettuato con successo";
	//dopo il login ti reindirizza a index.php
	header ("Refresh:2; URL= Index.php");
	
	} else {
	echo "Dati nn presenti nel database!";
	}
	}
}	
}
	 elseif ($p == "logout") {
	session_destroy ();
	echo "logout effettuato con successo";
	//dopo il login ti reindirizza a index.php
	header ("Refresh:2; URL= form10.php");
	
	}

	
	?>
	

</div>
ho creato anche il database che si chiama my_dechiarap e le due tabelle che si chiamano utenti e utenti_temp.


il problema sta nel fatto che gli utanti nn ricevono l'email per iscriversi. Chi mi puo aiutare??

3 Risposte

  • Re: Problema con sql

    Ciao dechiara.p88 benvenuto su IProgrammatori.it,
    su questo forum avrai modo di confrontarti con persone che lavorano in questo settore e sicuramente ti potranno dare tante informazioni oltre che teoriche anche pratiche.

    La prima cosa che ti dico dopo aver visto l'istruzione:
    $conn = mysql_connect ("localhost", "root", "");

    è che:
    1. non esiste che l'account di root per mysql non abbia una password.
    2. va contro ogni principio sulla sicurezza, utilizzare un account di root per far connettere un applicazione al database. Va creato un utente apposito con i privilegi minimi che servono per le operazioni da fare nel database.
    Un classico attacco informatico a un db server è proprio utilizzare le vulnerabilità delle applicazioni che se utilizzano un account amministrativo (root) hanno un largo margine di operatività.
  • Re: Problema con sql

    Ciao come ho già detto questo sito è a puro scopo scolastico e nn mi importa se viene attaccato da hacker tanto è solo uno STUPIDO SITO... a me serve capire dove ho sbagliato e perchè
  • Re: Problema con sql

    Togli l'if sulla funziona email e dopo fai il controllo se l'ha inviato o meno
Devi accedere o registrarti per scrivere nel forum
3 risposte