Problemi collegamento a MySQL

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Ciao a tutti, ho iniziato da poco a smanettare con il php e devo dire che non è troppo complicato ma ho due problemi persistenti che non riesco a risolvere in nessun modo:

1) Molte volte non mi visualizza il comando "echo"

2) Questo script di registrazione:

PHP:
<html>
<body>
<form method="post" action="index.php">

<?php 
$connessione=mysql_connect("localhost", "root", "") 
or die ("Non riesco a connettermi"); 
$db=mysql_select_db ("test", $connessione);
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', '$email'")
echo "Registrazione avvenuta correttamente" <br>

<input type="submit" name="submit" value="Avanti">

<?php

mysql_close($connessione); 

?>

</form>
</body>
</html>

PHP:
<html>
<body>
<form method="post" action="reg-control.php">
<table border="1">
<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">
</p></label>
<p><label><b>Password:</b> <br>
<input name"pass" type="password">
</p></label>
</td>
</table>
<br>
<br>
<input name="submit" type="submit" value="Registrati">
<input name="reset" type="reset" value="Resetta">
</form>
</body>
</html>

In pratica il secondo script php ti consente di inserire i dati: nome, password ed email e ti porta nel secondo script che si collega al database in questione, tutto ok, non mi visualizza nessun errore (come ho già detto però mi salta l'echo) ma quando mi collego al localhost non mi aggiorna la tabella con i dati inseriti nella registrazione, qualcuno di voi mi saprebbe dire dove sta il problema?
 

mrdive

Nuovo Utente
7 Ago 2013
2
0
0
Ciao io togliere dal secondo file "<form method="post" action="index.php"> ".

Fammi sapere

ciao
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Quello serve solo a reindirizzarmi dopo aver fatto il passaggio nel database in quanto devo inserirlo in un sito... comunque sia ho provato a rimuoverlo ma non va ugualmente, di darmi problemi no ne da quindi non riesco proprio a capire il motivo!

Ci sarà qualcosa che non va in "INSERT INTO" ma ho provato a cambiarlo più volte, sono a corto di idee!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
intanto ricordati che tutte le istruzioni di php devono terminare con il ;
poi non avevvi chiuso un tag php
PHP:
<html>
<body>
<form method="post" action="index.php">
<?php 
$connessione=mysql_connect("localhost", "root", "") 
or die ("Non riesco a connettermi"); 
$db=mysql_select_db ("test", $connessione);
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', '$email'");
echo "Registrazione avvenuta correttamente<br>";
?>
<input type="submit" name="submit" value="Avanti">

<?php
//questo non serve ci pensa php a chiudere
//mysql_close($connessione); 

?>
</form>
</body>
</html>

senza contare che non è bene inserire i dati così "brutalmente" nel db, i dati prima di essere inseriti devono essere formalmente verificati e eventualmente aggiustati
ti faccio un esempio: se un utente sceglie come user de'pallonzi ti manda il tutto in pallino,
analogamente per la pass e l'email che potrebbe inserire come mia#email.it che non è un indirizzo valido, o un user gia esistente, ecc.....
se cerci in giro per il forum trovi diverse discussioni di come devono essere validati i dati

il form per reindirizzare può andare bene, anche se si può usare un semplice link (abbellito con i css)
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Ok grazie però, purtroppo, continua a non funzionare!...

Quello che hai detto era il secondo passo dello script ma prima devo riuscire a fare le cose basilari! Sono solo due giorni che ci sbatto la testa ancora.
Già ho un idea per l'algoritmo per verificare l'email e dopodiché, come hai ben detto tu, verificare se i dati inseriti sono già presenti nel database e magari inserire una domanda per potersi iscrivere (2+2=?) così da evitare spam bot e cavolate varie!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
intanto dividi la query
$risultato=mysql_query("INSERT INTO utenti (username,password,mail) VALUES ('$user', '$pass', '$email'");
e visto che sei agli inizii impara ad usare var_dump che è uno degli strumenti migliori per trovare gli inghippi
PHP:
<html>
<body>
<form method="post" action="index.php">
<?php 
$connessione=mysql_connect("localhost", "root", "") 
or die ("Non riesco a connettermi"); 
$db=mysql_select_db ("test", $connessione);
if (!$db)
{
 die ("Connessione al db fallita!".mysql_error());
}
$user=$_POST['user'];
$pass=$_POST['pass'];
$mail=$_POST['email'];
$query="INSERT INTO utenti (username,password,mail) VALUES ('$user', '$pass', '$email'";
echo "<pre>";
var_dump($query);
$risultato=mysql_query($query);
var_dump($risultato);
echo "</pre>";
echo "Registrazione avvenuta correttamente<br>";
?>
<input type="submit" name="submit" value="Avanti">
</form>
</body>
</html>
il primo var_dump (es se inserito pinco pallo [email protected]pallo.it ti dovrebbe resituire
string(nn) "INSERT INTO utenti (username,password,mail) VALUES ('pinco', 'pallo', '[email protected]'"
dove nn è la lunghezza della stringa
se viene es
string(xx) "INSERT INTO utenti (username,password,mail) VALUES ('', 'pallo', '[email protected]'"
è evidente che il $_POST non va
se la stringa viene scritta come dovrebbe, ma il secondo var dump ti restituisce
bool FALSE
c'è qualcosa che non va nella tabella utenti es. qualche nome di campo diverso (devono essere uguali compreso maiuscole/minuscole)
se invece ti da RESOURCE
guarda la tabella con phpmyadmin e verifica cosa è stato inserito
una volta risolto gli echo pre e i var dump o li togli o li commenti
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Mi da una parte di codice nella pagina html, sicuramente per questo non va:

"; var_dump($query); $risultato=mysql_query($query); var_dump($risultato); echo ""; echo "Registrazione avvenuta correttamente
"; ?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
semprerebbe che tu abbia sbagliato l'apertura/chiusura dei tag php <?php ........ ?>
controlla ed eventualmente posta quello che hai fatto
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
PHP:
<html>
<body>
<form method="post" action="index.php">
<?php 
$connessione=mysql_connect("localhost", "Oswold", "")  
or die ("Non riesco a connettermi");  
$db=mysql_select_db ("test", $connessione); 
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', '$email'"); 
echo "<pre>";
var_dump($query); 
$risultato=mysql_query($query); 
var_dump($risultato); 
echo "</pre>"; 
echo "Registrazione avvenuta correttamente<br>";
?>
<input type="submit" name="submit" value="Avanti"> 
</form> 
</body> 
</html>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
prova così, funzia
leggi i commenti
PHP:
<html>
<body>
<!-- attento qui ho meso il nome della mia pagina poi devi rimettere il tuo-->
<form method="post" action="000002.php">
<table border="1">
<!-- mancava il tag <tr> -->
<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>
<!-- attento avevi scritto name"pass" senza = -->
<input name="pass" type="password">
</label></p>
</td></tr>
</table>
<br>
<br>
<input name="submit" type="submit" value="Registrati">
<input name="reset" type="reset" value="Resetta">
</form>
</body>
</html>

PHP:
<html>
<body>
<!-- attento qui ho messo il nome della mia pagina poi devi rimettere il tuo-->
<form method="post" action="000003.php">
<?php
//verifica i dati perche ho messo i miei
$connessione=mysql_connect("localhost", "root", "password") 
or die ("Non riesco a connettermi");
//attento qui il nome del tuo db 
$db=mysql_select_db ("prove");
if (!$db)
{
 die ("Connessione al db fallita!".mysql_error());
}
$user=$_POST['user'];//ricorda I DATI DEVONO ESSERE CONTROLLATI
$pass=$_POST['pass'];//prima di immettrli nel db
$mail=$_POST['email'];
//dimenticato di chiudere vaules (.....)
$risultato=mysql_query("INSERT INTO utenti (username,password,mail) VALUES ('$user', '$pass', '$mail')");
//e qui metti un if
if($risultato){
	echo "Registrazione avvenuta correttamente<br>";
}else{
	echo "ERRORE riprova<br>";
}
?>
<input type="submit" name="submit" value="Avanti">
</form>
</body>
</html>

poi stai attento i tag non si devono sovrapporre
errore:
<p><label>....</p></label>
ma
<p><label>....</label></p>
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Quindi come apro i tag devo chiuderli? Intendo la posizione...

Stavolta mi visualizza questo continuando a non inserire i dati sul database:

"; }else{ echo "ERRORE riprova
"; } ?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
non capisco cosa stai combinando perche visualizzi
"; }else{ echo "ERRORE riprova
"; } ?>

per quanto riguarda l'inserimento verifica il nome della tabella e dei campi devono essere uguali (compreso maiuscole/minuscole) a quello che scrivi nella query
lo sdript è molto semplice forse stai sbagliando qualcosa col copy/paste.

poi posta il dump della tabella utenti
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania


PHP:
<html> 
<body> 
<form method="post" action="index.html"> 
<?php 
$connessione=mysql_connect("localhost", "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')"); 
if($risultato){ 
    echo "Registrazione avvenuta correttamente<br>"; 
}else{ 
    echo "ERRORE riprova<br>"; 
} 
?> 
<input type="submit" name="submit" value="Avanti"> 
</form> 
</body> 
</html>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
prima del campo username aggiungi il campo indicativo del record (generalmente si chiama id)
id int(12) autoincrement primarykey
non serve che tu lo metta nella query ci pensa mysql ad aggiornarselo.
se non metti quel campo come fa mysql a capire dove inserire ol nuovo record?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, ho provato anchi lo script
mi da il tuo stesso errore se utilizzo l'apertura abbreviata di php
PHP:
<?
anziche quella estesa
PHP:
<?php
sicuro di usare quella estesa?
fai una prova semmai con quella abbreviata forse è un problema di configurazione di php
 
Discussioni simili
Autore Titolo Forum Risposte Data
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 6
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
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
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
M [PHP] Problemi con login facebook PHP 0
Andrea_Ventura [HTML] Problemi con visualizzazione Navigation Bar HTML e CSS 10
andreas88 Creare file .htaccess per risolvere alcuni problemi con il tester SEO SEO e Posizionamento 0
M problemi modem netgear Adsl e Connettività 0

Discussioni simili