Problemi collegamento a MySQL

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto ho visto dal tuo ultimo screen che non hai messo il campo id autoincrement primary key.
poi prova a fare la insert con dei valori direttamente da phpmyadmin
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non so sul tuo phpmyadmin, ma generalmente a dx c'è un'iconcina con una chiave e sotto il pulsante di selezione.
non si se rieci a vedere (freccia rossa)
primary.jpg
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Aggiunto ma continua a non inserire i dati, ho provato ad inserirli all'interno di phpmyadmin e li inserisce tranquillamente nella tabella
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
PHP:
<?php  
if(isset($_POST['submit'])) { 
$connessione=mysql_connect("127.0.0.1", "Oswold", "")   
or die ("Non riesco a connettermi");  
$db=mysql_select_db ("Test");  
if (!$db)  
{  
 die ("Connessione al db fallita!".mysql_error());  
}  
$user=$_POST['user']; 
$pass=$_POST['pass'];  
$mail=$_POST['email'];  
$risultato=mysql_query("INSERT INTO utenti (username,password,mail) VALUES ('$user', '$pass', '$mail')") or die(mysql_error());  

//Vediamo se passa i dati 
echo $user. " - ".$pass." - ".$mail."<br><br>"; 
if($risultato){  
    echo "Registrazione avvenuta correttamente<br>";  
}else{  
    echo "ERRORE riprova<br>";  
}  
} 
?>  

<html>  
<body>  
<form method="post" action="index.php">  
<table border="1">  
<tr><td>  
<p><label><b>User:</b><br>  
<input name="user" type="text">  
</label></p>  
<p><label><b>Email:</b><br>  
<input name="email" type="text">  
</label></p>  
<p><label><b>Password:</b> <br>  
<input name="pass" type="password">  
</label></p>  
</td></tr>  
</table>  
<br>  
<input name="submit" type="submit" value="Registrati">  
</form>  
</body>  
</html>

 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto una cosa: stai facendo tutto in una stessa pagina?
se si sostituisci
PHP:
<form method="post" action="index.php">
con
PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
poi nella connessione al posto di
PHP:
$connessione=mysql_connect("127.0.0.1", "Oswold", "");
metti
PHP:
$connessione=mysql_connect("localhost", "Oswold", "");
a parte questo non vedo perche non funzioni

p.s.
hai messo la password in connessione?
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

Se levo questo non li scrive all'interno della tabella, se lo metto li scrive!
Perché? Io dopo che gli utenti si sono registrati in questa pagina vorrei reindirizzarli in un'altra in modo diretto!

PS: Inoltre una volta inseriti i dati oltre a scrivere "Registrazione avvenuta con successo" mi scrive pure i dati inseriti, perché?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Se levo questo non li scrive all'interno della tabella, se lo metto li scrive!
la pagina come si chiama?
se si chiama index.php
scrivere
1) <form method="post" action="index.php">
oppure
2) <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
è la stessa cosa, ma se la pagina si chiama in modo diverso (si fa per dire pinco.php)
la 1) ti manda alla pag index.php dove non c'e (credo) lo script per l'inserimento
la 2) indipendentemente da come si chiami ti manda alla pag stessa dove c'è lo script per l'inserimento

per riinviare dopo la registrazione alla pag che vuoi potresti usare

PHP:
<?php
//..........
if($risultato){  
	echo "Registrazione avvenuta correttamente<br>";
	//il seguente aspetta 3 secondi e riinvia
	echo "<meta http-equiv='Refresh' content='3; URL=nome_pag_a_cui_riinviare.php'>";
}else{  
    echo "ERRORE riprova<br>";  
}  
//.......... 
?>

mostra i dati che hai inserito perchè hai questa riga
PHP:
//Vediamo se passa i dati 
echo $user. " - ".$pass." - ".$mail."<br><br>";
toglila o commentala
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Non lo avevo proprio notato l'echo! Lo avevo eclissato ormai eheheh!

Grazie mille per l'aiuto ed il tempo che mi hai dedicato!

Un ultima cosa: se io non voglio aspettare 3 secondi per reindirizzare la pagina basta che inserisco
PHP:
echo URL=nome_pag_a_cui_riinviare.php'>";
o se voglio aspettare solo un secondo modificare il
PHP:
echo "<meta http-equiv='Refresh' content='3;
in "
PHP:
echo "<meta http-equiv='Refresh' content='1;"
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
un secondo (pero devi lasciare il tempo all'utente di leggere il messaggio)
PHP:
echo "<meta http-equiv='Refresh' content='1; URL=nome_pag_a_cui_riinviare.php'>";

0 secondi immediato
PHP:
echo "<meta http-equiv='Refresh' content='0; URL=nome_pag_a_cui_riinviare.php'>";

poi a parte il tempo se vuoi riinviare sempre alla pag stessa
PHP:
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dimenticavo per la stessa pagina puoi anche scrivere
PHP:
echo "<meta http-equiv='Refresh' content='3'>";
ma io preferisco sempre indicare il nome dove vado
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Sulla base del consiglio di alcuni ho sistemato la registrazione aggiungendo questi campi:

PHP:
// Controlla che i campi siano stati riempiti tutti
if (empty($user)) { echo "Non hai inserito l'username!"; goto a; }
elseif (empty($mail)) { echo "Non hai inserito l'email!"; goto a; }
elseif (empty($pass)) { echo "Non hai inserito la password!"; goto a; }

// Controlla la presenza della @ sull'email
if (!ereg("@",$mail)) { echo "L'email inserità non è valida!"; goto a; }

// Controlla se l'user è già presente
$Username= "SELECT Count( * ) AS Conta FROM utenti WHERE username = '$_POST[user]'";
$raw = mysql_query($Username);
$row = mysql_fetch_array($raw);
if($row[Conta]>0 )
{echo "Username gia esistente"; goto a;}

// Controlla se l'email è già presente
$Email= "SELECT Count( * ) Conta1 FROM utenti WHERE mail = '$_POST[email]'";
$raws = mysql_query($Email);
$rows = mysql_fetch_array($raws);
if($rows[Conta1]>0 )
{echo "Email gia esistente"; goto a;}

// Controlla la lunghezza della password
$Password = 6;
if(strlen($_POST['pass'])<$Password)  
{ echo "La password scelta è troppo corta"; goto a; }

Funziona tutto correttamente, tranne la visualizzazione di un errore per Conta ma che non da nessun problema allo script, secondo voi dovrei aggiungere qualcos'altro?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova così
PHP:
<?php
// Controlla che i campi siano stati riempiti tutti
//l'addslashes ti da un minimo di sicurezza
if (empty($_POST['user'])) { echo "Non hai inserito l'username!"; goto a; }else{$user=addslashes($_POST['user']);}
elseif (empty($_POST['email'])) { echo "Non hai inserito l'email!"; goto a; }else{$mail=addslashes($_POST['email']);}
elseif (empty($_POST['pass'])) { echo "Non hai inserito la password!"; goto a; }else{$pass=addslashes($_POST['pass']);}
// USA QUESTO (tra l'altro eregi è deprecato si deve usare pre_match)
if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) { echo "L'email inserità non è valida!"; goto a; }
// Controlla se l'user è già presente
$Username= "SELECT * FROM utenti WHERE username = '$user'";
$raw = mysql_query($Username);
//$row = mysql_fetch_array($raw);
if(mysql_num_rows($raw)>0 )
{echo "Username gia esistente"; goto a;}
// Controlla se l'email è già presente
$Email= "SELECT *  FROM utenti WHERE mail = '$mail'";
$raws = mysql_query($Email);
//$rows = mysql_fetch_array($raws);
if(mysql_num_rows($raws)>0 )
{echo "Email gia esistente"; goto a;}

// Controlla la lunghezza della password
//qui ti converrebbe usare preg_match per verificare i caratteri
$Password = 6;//e se uno scrivesse una pass di 100 caratteri?
if(strlen($pass)<$Password)  
{ echo "La password scelta è troppo corta"; goto a; }
?>
poi perchè usi il goto? mi sembra di essere ritornato al 1980

comunque andrebbe rivisto un pochettino il tutto

p.s.
non usare le maiuscole per i nomi delle variabili e/o campi: sono solo sorgente di errore
 
Discussioni simili
Autore Titolo Forum Risposte Data
N php problemi a visualizzare video PHP 3
T problemi con dati menu a tendina HTML e CSS 2
T problemi di connessione MySQL 2
M Upload immagine con javascript problemi con FormData() Javascript 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
R Problemi anomalo insermento in db PHP 9
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 5
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
M [PHP] Problemi su inserimento array nel db PHP 7
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
M [PHP] Problemi con il riconoscimento login. PHP 21
A [WordPress] problemi con xampp WordPress 2
M Problemi con database Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1 PHP 6
P Problemi comunicazioni Comunicazioni dallo Staff 8
G I problemi non vengono solo per nuocere Presentati al Forum 0
A Problemi Wi-Fi Fastweb Reti LAN e Wireless 4
C [WordPress] Url vulnerability e problemi sito da mobile WordPress 0
S [PHP] problemi con le sessioni PHP 3
B Problemi accesso Instagram Smartphone e tablet 1
T [PHP] problemi con il browser PHP 0
M [Flash] Problemi conversione formato swf Flash 20
Andrea_Ventura [HTML] Problemi con effetto hover HTML e CSS 5

Discussioni simili