Joomla.it Forum
Non solo Joomla... => Sviluppo => : maxtemp 29 Nov 2009, 12:45:34
-
Salve a tutti
cercavo qualcuno che mi sapesse spiegare come inserire del codice php in joomla. Io ho provato con Jumi
ma non funge o meglio ci deve essere qualcosa che non va nel form Get...ma forse sbaglio a livello concettuale. :-[
Il codice è quello sottostante e preleva, o almeno dovrebbe, un dato per poi confrontarlo nel database e visualizzare il risultato della query.
<html><head><title>MySQL Table Viewer</title></head><body>
<form method='get' action='<?php echo $PHP_SELF; ?>'>
Nome <input size='16' name='Nome' value=''>
<input type='submit' name='Apply' value=' Cerca '>
</form>
<textarea name="" cols="" rows=""></textarea>
<?php
$db_host = '';
$db_user = 'Sql132132';
$db_pwd = '';
$database = 'Sql132132_1';
$table = 'sample';
if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Connessione database non possibile");
if (!mysql_select_db($database))
die("Selezione database non possibile");
$result = mysql_query("SELECT * FROM sample
WHERE Mittente='$Nome'");
$row = mysql_fetch_array($result);
if ($row == true) {
echo $row['Tracking Number'] . " " .$row['Mittente'] . " " . $row['Codice cliente'] . " " . $row['Stato'] . " " .$row['File'];
echo "
";
}
else echo "non trovato";
?>
</body></html>
A presto.
-
che problemi hai? quali errori ti restituisce?
i tuoi codici li hai scritti negli articoli del "componente" jumi?li hai linkati poi da menu?
-
un'ultima cosa hai provato a sostituire al posto di $_SERVER['PHP_SELF'] il link all'articolo(es:index.php?option=com_jumi&fileid=1&Itemid=58 ) nella action del form?
-
Dunque ricapitolando
non mi da errori ma non effettua la query o almeno non la visualizza. Ho provato a sostituire '$Nome' con Rossi (contenuto nel data base) e mi visulaizza il risultato della query (ergo che il problema sia del Form).
In quanto a Jumi ho creato un file form.php inserito nella dir jumi_includes, e in una pagina ho inserito il link al file {jumi [jumi_includes/form.php]}
Ma a cosa serve $_SERVER['PHP_SELF'] che hai menzionato prima? Io ho usato solo PHP_SELF e poi l'articolo si trova nella home page quindi dovrei effettuare un link ad essa?
-
ciao,allora ho controllato il tuo codice e ho trovato diversi errori prova adesso,copia e incolla questo codice al posto del tuo:
<html><head><title>MySQL Table Viewer</title></head><body>
<form method="get" action="<?php $_SERVER['PHP_SELF']; ?>">
Nome <input size="16" name="Nome'">
<input type="submit" name="Apply" value="Cerca ">
</form>
<textarea name="" cols="" rows=""></textarea>
<?php
$db_host = '';
$db_user = 'Sql132132';
$db_pwd = '';
$database = 'Sql132132_1';
$table = 'sample';
if (!mysql_connect($db_host, $db_user, $db_pwd))
{ echo "Connessione database non possibile";}
if (!mysql_select_db($database))
{ echo "Selezione database non possibile" ;}
$result = mysql_query("SELECT * FROM sample
WHERE Mittente='$Nome'");
$row = mysql_fetch_array($result);
if( $row == true) {
echo "". $row['Tracking Number'] . " " .$row['Mittente'] . " " . $row['Codice cliente'] . " " . $row['Stato'] . " " .$row['File'];
}
else echo "non trovato";
?>
ho visto che usavi gli apici singoli negli attributi della form quindi credo che il problema principale fosse quello adesso dovrebbe funzionare
per quanto riguarda PHP_SELF creo che sia la stessa cosa scrivere quello che hai scritto tu o $_SERVER['PHP_SELF']
entrambe vogliono dire, "ricorda ed esegui il tutto su questa pagina"
-
Ciao ipsuk
ho provato a reinserire il codice, come sotto, ma continua a non darmi il risultato della query!?
mmmmm
<html><head><title>MySQL Table Viewer</title></head><body>
<form method="get" action="<?php $_SERVER['PHP_SELF']; ?>">
Nome <input size="16" name="Nome">
<input type="submit" name="Apply" value="Cerca">
</form>
<?php
$db_host = 'localhost';
$db_user = 'abcsite';
$db_pwd = '';
$database = 'my_abcsite';
$table = 'sample';
if (!mysql_connect($db_host, $db_user, $db_pwd))
{ echo "Connessione database non possibile";}
if (!mysql_select_db($database))
{ echo "Selezione database non possibile" ;}
$result = mysql_query("SELECT * FROM sample
WHERE Mittente='$Nome'");
$row = mysql_fetch_array($result);
if( $row == true) {
echo "". $row['Tracking Number'] . " " .$row['Mittente'] . " " . $row['Codice cliente'] . " " . $row['Stato'] . " " .$row['File'];
}
else echo "non trovato";
?>
</body></html>
-
Ciao maxtemp,
io faccio, per esempio:
<?PHP
$hostname = "localhost";
$dbName = "mio_db";
$username = "root";
$password = "mia_password";
$database = mysql_Connect($hostname,$username,$password);
$db_selected=mysql_select_db ($dbName,$database);
if (!$db_selected) { die('Not connected : ' . mysql_error()); }
$mia_query="select * from mia_tabella where codice=mio_codice;"; $mio_valore=mysql_query($mia_query,$database);
...
?>
Mai avuto un problema.
Il risultato è nullo se ovviamente la query non produce nulla e quindi fatti visualizzare la stringa che mandi in esecuzione e inseriscila a mano nel database, per verificare che produca qualcosa.
Hai verificato che Jumi funzioni correttamente ?
Il plugin è attivo ?
Ti accetta altro codice PHP ?
Perche' costruisci una pagina e invece non inserisci il codice in un tuo normale articolo (facendo una chiamata del tipo {jumi [mia_dir/mio_codice.php]} ?
Come ulteriore osservazione, che però non c'entra nulla con quello di cui stavamo discutendo, nell'esempio che hai fatto ho notato che non hai specificato una password per il tuo database.
Mi sembra abbastanza imprudente ;)
Ciao
-
approvo
in più usi register_globals non è una buona idea,sei soggetto a SQL injection
-
Ok!
ho fatto come mi hai detto
la parte query funziona , ma per il form cosa mi conviene usare?
p.s. ma dove li avrei inseriti questi "register_globals"?
-
il register globals significa che usi $nome invece che
$_POST['nome'] o $_GET['nome']
i dati sensibili quelli provenienti da input (form in generale) vanno passati nell'array generico $_POST o $_GET
-
Salve
volevo porvi una questione legata al mio script e alle mie difficoltà nell'effettuarlo. Ma secondo voi la realizzazione delle mie necessità (inserire un nome in un form e ricercarlo in un database) è realizzabile tramite una extension tipo chronoforms+chronoconnectivity o qualcosa di simile?
-
io non so indirizzarti su estensioni per fare ciò che chiedi,ma secondo me è veramente semplice realizzare ciò che vuoi fare in php
basta leggersi come salvare e come recuperare dati in un DB
magari cerchi qualche script di ricerca su db già fatto per prenderne spunto,ne trovi miliardi in giro per la rete ;)
-
ok grazie
continuerò a cercare.