Errore nell'invio query

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Salve ho fatto un semplice script in php per una semplice registrazione, sembra andare tutto bene ma non mi scrive i dati sul database.
Sbaglio la query oppure è il codice che devo ricontrollare?
Grazie.

PHP:
if(empty($errori)){
	$query_registrazione = mysql_query("INSERT INTO utenti (username,password,email) VALUES ('$username', MD5'($password)','$email'"); 
		if(isset($query_registrazione)){
			$_SESSION["logged"]=true;
			header("Location:successo.php");
		} else {
			echo "query non eseguita".mysql_error();
	} }else {
		foreach ($errori as $errore)
{
    echo $errore , '<br>';
}

			}
 

frenkytribe

Utente Attivo
17 Gen 2013
87
0
0
Prova con
PHP:
$query_registrazione = mysql_query("INSERT INTO utenti (username,password,email) VALUES ('$username','".md5('$password')."','$email'");
Altrimenti faglielo fare a php l'md5
PHP:
$password=md5($password);
$query_registrazione = mysql_query("INSERT INTO utenti (username,password,email) VALUES ('$username','$password','$email'");
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Nemmeno in questo caso mi scrive i dati sul database, non penso di sbagliare la creazione della tabella..
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
In fase di sviluppo è necessario imparare a stampare eventuali errori mysql
PHP:
$query_registrazione = mysql_query("INSERT INTO utenti (username,password,email) VALUES ('$username','".md5('$password')."','$email'");  
if (!$query_registrazione) {
    echo "Errore query : " . mysql_error();
}
meglio ancora separare la query dalla sua esecuzione
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Grazie a tutti comunque sono riuscito a risolvere cambiando un po' il codice grazie all'aiuto di un mio amico..
PHP:
$query = "INSERT INTO users (nome,telefono,username,email,password) VALUES ('$nome','$telefono','$username','$email','$password')";

$mysqli -> real_query($query);
if ($mysqli -> errno) {
	printf("Si sono verificati degli errori nell'eseguire la guery: <br/> %s", $mysqli -> error);
	exit();
} else {
	echo "Utente registrato coretatmente!";
}

Ora funziona alla perfezione ed ho un codice più pulito. Una volta che ho registrato questo utente come posso ri trattare l'username e la password in modo da dargli accesso a pagine protette?
Grazie ancora.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto ti conviene modificare la password
PHP:
<?php
//...
$passwor=sha1($password);//o direttamente dal $_POST
$query = "INSERT INTO users (nome,telefono,username,email,password) VALUES ('$nome','$telefono','$username','$email','$password')";
$mysqli -> real_query($query);
//....
?>
se parli del problema di loggarti, prova a cercare nel forum, il metodo è stato trattato più volte
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Per la cronaca:
Prova con
PHP:
$query_registrazione = mysql_query("INSERT INTO utenti (username,password,email) VALUES ('$username','".md5('$password')."','$email'");
Altrimenti faglielo fare a php l'md5
PHP:
$password=md5($password);
$query_registrazione = mysql_query("INSERT INTO utenti (username,password,email) VALUES ('$username','$password','$email'");

Questi due modi sono identici.
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Allora ricapitolando ora la registrazione funziona perfettamente ed è questo il codice:
PHP:
<?php

include_once 'connessione.php';
//secure variables
$nome = $mysqli -> real_escape_string($_REQUEST['nome']);
$telefono = $mysqli -> real_escape_string($_REQUEST['telefono']);
$username = $mysqli -> real_escape_string($_REQUEST['username']);
$email = $mysqli -> real_escape_string($_REQUEST['email']);
$password = md5($mysqli -> real_escape_string($_REQUEST['password']));

$query = "INSERT INTO users (nome,telefono,username,email,password) VALUES ('$nome','$telefono','$username','$email','$password')";

$mysqli -> real_query($query);
if ($mysqli -> errno) {
	printf("Si sono verificati degli errori nell'eseguire la guery: <br/> %s", $mysqli -> error);
	exit();
} else {
	echo "Utente registrato coretatmente!";
}
?>

Ora ho fatto un form sulla home con nome utente e password per far accedere gli utenti a pagine protette del sito
n.b. io ho creato il database Registrazioni e la tabella users.. cosa sbaglio?
PHP:
<?php
include_once 'connessione.php';

$user = trim($_POST['user']);
$pwd  = trim($_POST['pwd']);

// effettuo l'escape dei caratteri speciali per inserirli all'interno della query
	$user    = mysql_real_escape_string($user);
	$pwd = mysql_real_escape_string($pwd);	

	// preparo ed invio la query
	$query = "SELECT id FROM users WHERE username = '$user' AND password = MD5('$pwd')";
	$result = mysql_query($query);
	// controllo l'esito
	if (!$result) {
		die("Errore nella query $query: " . mysql_error());
	}

	$record = mysql_fetch_array($result);

	if(!$record) {
		$messaggio = urlencode('Nome utente o password errati');
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
	} else {
		session_start();
		$_SESSION['user_id'] = $record['id'];
		$messaggio = urlencode('Login avvenuto con successo');
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
	}

?>

Mi dà questo errore:
Errore nella query SELECT id FROM users WHERE username = 'sss' AND password = MD5('aaa'): No database selected
Scusate l'ignoranza sto da poco iniziando a studiare php, grazie ancora.
 
Ultima modifica:

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Certo che c'è..
PHP:
	public $db_name = 'registrazione';
in config.php e questo è connessione.php
PHP:
<?php
@include 'config.php';
$config = new Config;

$mysqli = new mysqli($config -> db_host, $config -> db_user, $config -> db_password, $config -> db_name);
if ($mysqli -> errno) {
	printf("Connection error: %s", $mysqli -> error);
	exit();
}
?>
e sono sicuro che ho fatto bene perchè se no non dovrebbe nemmeno scriverli sul database i dati..
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Stai mischiando le estensioni : mysql non è mysqli
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Scusate un attimo.. nello script di registrazione dati cosa sbaglio? Se cambio mysqli non mi funziona più.. scusate per la confusione.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Nei due codici postati includi lo stesso file per la connessione
PHP:
include_once 'connessione.php';
nel primo però usi la classe mysqli()
PHP:
$mysqli -> real_query($query);
nel secondo l'estensione mysql
PHP:
$result = mysql_query($query);
c'è qualcosa che non va : o usi una o o l'altra
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Nei due codici postati includi lo stesso file per la connessione
PHP:
include_once 'connessione.php';
nel primo però usi la classe mysqli()
PHP:
$mysqli -> real_query($query);
nel secondo l'estensione mysql
PHP:
$result = mysql_query($query);
c'è qualcosa che non va : o usi una o o l'altra

Grazie mille per l'intervento, correggerò e ti farò sapere se funziona ! :)
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
PHP:
<?php
include_once 'connessione.php';

$user = trim($_POST['user']);
$pwd  = trim($_POST['pwd']);

// effettuo l'escape dei caratteri speciali per inserirli all'interno della query
	$user = $mysqli -> mysql_real_escape_string($user);
	$pwd = $mysqli ->mysql_real_escape_string($pwd);	
	

	// preparo ed invio la query
	$query = $mysqli->real_query("SELECT id FROM users WHERE username = '$user' AND password = MD5('$pwd')");

	// controllo l'esito
if ($mysqli -> errno) {
	printf("Nome utente o password errati: <br/> %s", $mysqli -> error);
	exit();
} else {
	session_start();
	$_SESSION['user_id'] = $record['id'];
	echo "Utente registrato coretatmente!";
}


?>

Ed ora cosa sbaglio?
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
PHP:
<?php
include_once 'connessione.php';

$user = trim($_POST['user']);
$pwd  = trim($_POST['pwd']);

// effettuo l'escape dei caratteri speciali per inserirli all'interno della query
	$user = $mysqli -> mysql_real_escape_string($user);
	$pwd = $mysqli ->mysql_real_escape_string($pwd);	
	

	// preparo ed invio la query
	$query = $mysqli->real_query("SELECT id FROM users WHERE username = '$user' AND password = MD5('$pwd')");

	// controllo l'esito
if ($mysqli -> errno) {
	printf("Nome utente o password errati: <br/> %s", $mysqli -> error);
	exit();
} else {
	session_start();
	$_SESSION['user_id'] = $record['id'];
	echo "Utente registrato coretatmente!";
}


?>

Ed ora cosa sbaglio?
p.s. cambiare il titolo della discussione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto:
usa il require_once al posto dell'include
poi, secondo me ti conviene portare fuori l codifica
PHP:
<?php
//...
$pwd=md5($pwd);
//...
$query = $mysqli->real_query("SELECT id FROM users WHERE username = '$user' AND password = '$pwd'");
//....
?>
e nella real_query manca il link, da manuale php
bool mysqli_real_query ( mysqli $link , string $query )
io verificherei il numero e non se la querry da errore
PHP:
<?php
//....
$trovati = $mysqli -> mysqli_count;
//...
?>
se poi non estrai il record come fa a trovare $record['id'] ?
 

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Scusami non voglio che me lo risolva qualcun altro il problema ma credetemi sono giorni che non riesco a capirci più nulla..
PHP:
<?php
require_once 'connessione.php';

$user = trim($_POST['user']);
$pwd  = trim($_POST['pwd']);

// effettuo l'escape dei caratteri speciali per inserirli all'interno della query
	$user = $mysqli -> mysql_real_escape_string($user);
	$pwd = $mysqli ->mysql_real_escape_string($pwd);	
	$pwd= md5($pwd); 

// preparo ed invio la query
	$query = $mysqli->real_query("SELECT id FROM users WHERE username = '$user' AND password = '$pwd'");
	
// controllo l'esito
	$result = $mysqli->query($query);
if ($result -> errno) {
	printf("Nome utente o password errati: <br/> %s", $mysqli -> error);
	exit();
} else {
	session_start();
	$_SESSION['user_id'] = $record['id'];
	echo "Utente registrato coretatmente!";
}


?>

Non capisco cosa ci sia di sbagliato anche nell'ultima parte di codice, cioè il controllo..
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Errore nell'indirizzo degli elementi HTML e CSS 2
C [MySQL] errore nell'importazione tabella con file csv MySQL 0
M [PHP] Errore nell' assegnazione della variabile $this->id su una funzione PHP 1
M Errore nell'Upload di un file PHP 0
Sevenjeak [C / Eclipse] errore nell'output della console Programmazione 0
D errore 1064 nell'importare txt MySQL 1
M Errore nell'aggiornamento news PHP 4
M errore nell estrazione foto PHP 16
B Errore nell'installazione PHP PHP 0
M asp: errore nell'upload di file di grandi dimensioni Classic ASP 3
A Errore nell'accesso ad un database PHP 1
K Inserimento query Errore 1366 PHP 4
F errore 1062 su campo nuovo MySQL 4
N Errore interno Access MS Access 2
R mi da errore dove inizia il while PHP 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
R Yoast SEO errore semafori sempre rossi SEO e Posizionamento 0
S Visualizza l'errore di creazione in MSSQL Database 4
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
Jensen Errore di sintassi con DELETE PHP 3
H Errore su array associativo PHP 1
FDF182 ERRORE 1292 PHP 4
P errore 404 con javascript Javascript 2
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A errore http://datatables.net/tn/7 PHP 4
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
A Errore durante il salvataggio Photoshop 0
M Errore configurazione motion detection nvr Hikvision DS-7616 IP Cam e Videosorveglianza 0
voldemort [c] Errore di segmentazione (core dump creato) C/C++ 1
T SSD - errore sistema Hardware 2
R Navigare sito con cURL, mi restituisce errore PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 2
A Errore visualizzazione selezione testo Photoshop 0
I Postman 400 Errore di richiesta non valida Programmazione 0
S Errore PHP - Notice: Undefined index ... PHP 14
U Campo vuoto data errore Fatal error: PHP 2
R Errore UPDATE tabella mysql PHP 1
R W10 Segnalazione di errore su terminale USB Windows e Software 0
G non riesco a capire quale sia l'errore [SQL] MySQL 2
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
W Errore di run-time di Microsoft VBScript error '800a0035' Impossibile trovare il file Classic ASP 0
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M errore dopo passaggio Php 7.2 PHP 6
S -> Errore PHP 8
S Errore "ftp_put(): Can't open that file: Permission denied" PHP 1
P Errore telecamere hdcvi dahua IP Cam e Videosorveglianza 16
L form multipla php sql,errore in inserimento MySQL 0
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0

Discussioni simili