-
PHP: Ricezioni variabili
Buongiorno,
ho attivato un servizio di messaggistica per i miei utenti...........la società che mi offre questo servizio invia ad una mia pagina php le seguenti informazioni:
$_POST['mittente']
$_POST['post']
Purtroppo non riesco a creare (all'interno della pagina php) uno script che riceva le variabili e che le visualizzi nella pagina
Ho provato cosi ma niente da fare:
<?
//Recupero il valore del parametro
$nome_utente = $_POST['mittente'];
$messaggio = $_POST['post'];
//Ora stampo semplicemente a video il risultato
echo $nome_utente;
echo $messaggio;
?>
Grazie:roll:
-
Se il servizio esterno invia i dati a una pagina php quei dati sono presenti in $_POST solo durante quella chiamata. Se qualcuno deve visualizzarli successivamente allora dovresti salvare i dati da qualche parte per poi ricaricarli quando vuoi visualizzarli.
-
Grazie per la risposta............ho creato un database ma non riesco a 'passargli' le due variabili.......dove sbaglio secondo te???
- Creo database chiamato database1
- In questo database inserisco una tabella chiamata 'messaggi'...... con 2 campi (&nome e &messaggio)
Poi mi creo lo script in php per la ricezione dei dati e l'inserimento nel database:
<?php
/******** INSERISCO DATI DEL DATABASE*******/
$dbhost = 'localhost'; //
$dbuser = 'xxxxxxx'; // username per accesso database
$dbpass = 'xxxxxxx'; // password per accesso database
$dbname = 'database1'; // nome database
$mysql = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
/* VARIABILI PASSATE DA SERVIZIO ESTERNO */
$nome=$_POST['mittente'];
$messaggio= $_POST['post'];
/*INSERISCO DATI NEL DATABASE*/
$Query = "INSERT INTO `".'database1'."`.`messaggi` (`nome`, `messagggio`) VALUES (\"".$nome."\", \"".$messaggio."\");";
?>
-
dovresti prima aggiungere un campo id auto_increment per poter distinguere tutti i messaggi
-
scusami.....come faccio ad inserire il campo che si 'incrementa' ?
Lo devo fare direttamente dal database?
-
puoi farlo da phpmyadmin ce il menu a tendina
-
ok...creato il campo id (di tipo tinyint, chiave primaria, autoincrement)......
Relativamente al codice...cosa devo modificare ?....cos' non funziona...
-
Nel codice manca l'eseguimento della query.
Aggiungi questo alla fine del codice:
Codice PHP:
mysql_query($Query);
Saluti!
-
1 - Utilizza il tag PHP del forum che consente di leggere meglio il codice che posti
2 - Se ti stai collegando al database di Altervista il nome del tuo database è my_laqui
3 - Se non lanci la query è difficile che possa accadere qualcosa:
Codice PHP:
mysql_query("INSERT INTO `messaggi` (`nome`, `messagggio`) VALUES ('$nome', '$messaggio')";
Conviene far passare i dati almeno attraverso la funzione addslashes per evitare problemi con gli apici.
-
inserisci_news.php
Codice PHP:
<?php
/******** INSERISCO DATI DEL DATABASE*******/
$dbhost = 'localhost'; //
$dbuser = 'xxxxxxx'; // username per accesso database
$dbpass = 'xxxxxxx'; // password per accesso database
$dbname = 'database1'; // nome database
$mysql = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$mysql) or die("Errore nella connessione al db");
/* VARIABILI PASSATE DA SERVIZIO ESTERNO */
$nome=$_POST['mittente'];
$messaggio= $_POST['post'];
/*INSERISCO DATI NEL DATABASE*/
$Query = "INSERT INTO messaggi (`nome`, `messaggio`) VALUES ($nome,$messaggio);";
if(mysql_query($query)) {
echo "Messaggio inserito correttamente";
} else {
echo "Errore nell inserimento del messaggio";
}
?>
messaggi.php
Codice PHP:
$dbhost = 'localhost'; //
$dbuser = 'xxxxxxx'; // username per accesso database
$dbpass = 'xxxxxxx'; // password per accesso database
$dbname = 'database1'; // nome database
$mysql = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$mysql) or die("Errore nella connessione al db");
$sql = "SELECT * FROM messaggi ORDER BY id";
$query = mysql_query($sql);
while($riga = mysql_fetch_array($query)) {
echo "<h1>".$riga['nome']."</h1><br />";
echo $riga['messaggio']."<br />";
}
?>
-
Citazione:
Originalmente inviato da
palla000
inserisci_news.php
Codice PHP:
/* Codice precendente */
if(mysql_query($query)) { // <--- Errore
echo "Messaggio inserito correttamente";
} else {
echo "Errore nell inserimento del messaggio";
}
?>
Correggo palla000 perchè non esiste una variabile $query ma $Query ...
-
-
Mamma mia quanto siete gentili...........una domanda ma i due 'spezzoni' di codici devo inserirli nella stessa pagina php vero ???
Ho provato la prima parte del codice (inserisci news.php) ed a video prima di inviare messaggi mi stampa "Errore nell inserimento del messaggio";
Grazie per l'enorme aiuto
-
Nel post più sopra di palla000, c'è il codice per la pagina inserisci_news.php e messaggi.php
Dovresti copiare quelli ma devi corregere l'errore che ha distrattamente ha fatto...
Quindi inserisci_news.php dovrebbe essere così:
Codice PHP:
<?php
/******** INSERISCO DATI DEL DATABASE*******/
$dbhost = 'localhost'; //
$dbuser = 'xxxxxxx'; // username per accesso database
$dbpass = 'xxxxxxx'; // password per accesso database
$dbname = 'database1'; // nome database
$mysql = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$mysql) or die("Errore nella connessione al db");
/* VARIABILI PASSATE DA SERVIZIO ESTERNO */
$nome=$_POST['mittente'];
$messaggio= $_POST['post'];
/*INSERISCO DATI NEL DATABASE*/
$Query = "INSERT INTO messaggi (`nome`, `messaggio`) VALUES ($nome,$messaggio);";
if(mysql_query($Query)) {
echo "Messaggio inserito correttamente";
} else {
echo "Errore nell inserimento del messaggio";
}
?>
e messaggi.php lo trovi più sopra
-
Grazie....ma ho dei problemi.............
Ho creato una pagina php con inserito il codice 'inserisci_news.php'................se vado al link della pagina (prima di ricevere le variabili) mi appare la scritta di 'errore inserimento del messaggio'.............................e poi una volta invariate le variabili non cambia nulla e navigando nel database non ci sono valori
Un'ultima cosa è possibile inserire 'inserisci_news.php' e messaggi.php nella stessa pagina?
Grazie e scusate la mia poca conoscenza di php
EDIT:
non è che magari nell'insert è obbligatorio inviare un valore anche per il campo id?
-
Non devi inserire l'id, un campo auto_increment si aggiorna da solo.
Non ho seguito dall'inizio, comunque hai controllato il valore di quelle due variabili passate "dall'esterno"?
-
Ho contattato il fornitore del servizio che mi ha confermato i due valori http post:
$_POST['mittente']
$_POST['post']
Ho ricontrollato anche il link dove mandano i parametri ed è corretto.......
Mi sembra strano che aprendo la pagina mi stampi a video direttamente l'errore di inserimento nel database.
grazie per la pazienza che avete....siete molto disponibili e preparati.
x seneca: ho ricevuto il tuo msg privato......mi scuso per non aver letto il regolamento
-
ma tu ce l'hai un form html??
-
No....ti spiego,
il mio utente invia un sms ad un numero di cellulare.........questo messaggio arriva al gestore che mi offre il servizio, il quale invia i due valori http-post ($_POST['mittente']
$_POST['post']) ad un mio link php che dovrebbe gestire le variabili (www.miodominio.com/script.php)
-
allora non so cosa possa essere
-
scusami.....conosci un modo x verificare il corretto collegamento con il database?
-
se guardi il codice di prima dopo mysql_select_db ce or die("Errore nella connessione")
-
cacchio......quindi secondo te si connette correttamente con il db???...................lo dico xckè ho inserito manualmente i valori all'interno del database ma a schermo non me li ha stampati ugualmente (ed ho utilizzato solo la parte 'messaggi.php' dello script...che dovrebbe funzionare a prescindere)
bhà inizio a rinunciare........anche perchè mi sembra stranissimo che la pagina in stand-by invece di essere bianca contenga il messaggio di 'errore inserimento'.
Che mi consigliate???
Grazie
-
Ma vuoi connetterti al database del tuo account o ad un database esterno ad AV?
-
Al momento ad uno esterno ad AV...........e poi ad entrambi