• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto non si inviano i dati a mysql

bleach96

Utente Attivo
Autore del topic
30 Agosto 2010
356
0
Miglior risposta
0
salve a tutti :emoji_slight_smile:
ho scritto una pagina html contenente degli input text all'interno di un form che invia i dati a una pagina php che a sua volta li rinvia ad un database mysql, o almeno dovrebbe farlo -.-" infatti si connette al database ma non li invia... come fare? ecco i codici:

registrazione.html

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<form action="registrazione.php" method="POST">
Nome: <input type="text" name="nome" />
Cognome: <input type="text" name="cognome" />
Email: <input type="text" name="email" />
<input type="submit" value="Invia" />
</form>
</BODY>
</HTML>


registrazione.php

<html>
<body>
<?php
$nomereg= $_POST[nome];
$cognomereg=$_POST[cognome];
$mailreg=$_POST;
$connetti=mysql_connect("localhost","mionomeutente","");
if (!$connetti)
{
die('Could not connect: ' . mysql_error());
}
else{
mysql_select_db("my_database");
mysql_query("INSERT INTO utenti (cognome,nome,email) VALUES (.'$cognomereg'.,.'$nomereg'.,.'$mailreg'.)");
mysql_close($connetti);
echo "connessione avvenuta";
}
?>
</body>
</html>

ovviamente al posto di "mionomeutente" o messo il mio nome utente xD scusate il gioco di parole xD
 
Riferimento: non si inviano i dati a mysql

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Quella virgola, che si trova al posto della password da inserire, l'hai scritta di tua spontanea volontà per far vedere a noi il post o cosa ?
 
Riferimento: non si inviano i dati a mysql

no, quella virgola separa il nome utente dalla password (che è facoltativa)
 
Riferimento: non si inviano i dati a mysql

Un po' di cose ci sono da cambiare..

i $_POST vogliono che il nome dell' input stia tra apici, quindi:

$_POST['nome'];

e non $_POST[nome];


Poi qua:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

devi aggiungere a quale connessione fa riferimento, quindi:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

(.'$cognomereg'.,.'$nomereg'.,.'$mailreg'.)

I punti non ci devono essere dato che non hai chiuso gli apici doppi ( " " )

E dato che il tutto sta negli apici doppi, basta che metti '$nomevar' , dato che quando stanno negli apici doppi le variabili vengono sostituite dai loro valori.
 
Riferimento: non si inviano i dati a mysql

quindi diventa così registrazione.php?

<html>
<body>
<?php
$nomereg= $_POST['nome'];
$cognomereg=$_POST['cognome'];
$mailreg=$_POST['email'];
$connetti=mysql_connect("localhost","mionomeutente","lamiapassword");
if (!$connetti)
{
die('Could not connect: ' . mysql_error());
}
else{
mysql_select_db("my_keepinnet", $connetti);
mysql_query("INSERT INTO utenti (cognome,nome,email) VALUES ('$cognomereg','$nomereg','$mailreg')");
mysql_close($connetti);
echo "connessione avvenuta";
}
?>
</body>
</html>
 
Riferimento: non si inviano i dati a mysql

oddio, che stupido che sono :emoji_slight_frown: RISOLTO
nel codice php avevo messo "nome" "cognome", però i campi li avevo chiamati "nomi" "cognomi"
scusate per il disturbo, ma sono moolto sbadato :emoji_slight_frown:
mettete pure risolto

a, grazie a tutti :emoji_slight_smile:
 
Riferimento: non si inviano i dati a mysql

quindi diventa così registrazione.php?

<html>
<body>
<?php
$nomereg= $_POST['nome'];
$cognomereg=$_POST['cognome'];
$mailreg=$_POST['email'];
$connetti=mysql_connect("localhost","mionomeutente","lamiapassword");
if (!$connetti)
{
die('Could not connect: ' . mysql_error());
}
else{
mysql_select_db("my_keepinnet", $connetti);
mysql_query("INSERT INTO utenti (cognome,nome,email) VALUES ('$cognomereg','$nomereg','$mailreg')");
mysql_close($connetti);
echo "connessione avvenuta";
}
?>
</body>
</html>

Ricordati che le variabili vanno separate con il punto.

('$cognomereg','$nomereg','$mailreg') => ('".$cognomereg."','".$nomereg."','".$mailreg."')

Inoltre devi passare le variabili per mysql_real_escape_string per evitare SQL Injection.

Un'altra cosa importante :

Per eseguire una Query sarebbe meglio fare così :

$query = "SELECT * FROM bla bla bla..";
$esegui = mysql_query($query) or die (mysql_error());
 
Riferimento: non si inviano i dati a mysql

Appunto.... non così
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Quando fai :

"SELECT * FROM tabella WHERE Username='' " devi dividere le variabili, quindi devi utilizzare anche " "

Comunque non ho detto che è sbagliato, ho solamente detto che secondo me è più corretto.