Back to top

Autore Topic: [RISOLTO] Creazione modulo: richiamare un altro file  (Letto 4770 volte)

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Oggi in treno mi sono messa a fare un modulino semplice semplice per Joomla 1.5.
Essendo una primissima versione l'ho fatto senza schema MVC.
E' un semplice form stile richiesta di informazioni, nulla di più.
Però ho un problema: nel mio file php richiamo un altro file php.
Nella pratica esso viene richiamato appena uno pigia un bottone presente nel form.
Ora io l'ho scritto per esempio così:
Codice: [Seleziona]
<form action="/modules/mod_requestVentus85/mod_requestVentus85form.php" method="post">
<table align="center">
<tr>
 <td align=right><B>Your Name:</td>
 <td><input name="name" size=30 value=""></td>
</tr>
[...]
<input type="submit" value="Vai">
[...]
</form>
Però quando clicco sul bottone Vai mi da errore 404 e dice:
Citazione
The requested URL /modules/mod_loginVentus85/mod_loginVentus85form.php was not found on this server.
Ora il problema è nella riga dove richiamo il file, cioè
Codice: [Seleziona]
<form action="/modules/mod_requestVentus85/mod_requestVentus85form.php" method="post">però ho provato varie soluzioni passandogli indirizzi diversi ma mi dà sempre l'errore 404.
Premetto che ho fatto così perchè in uno script simile in php che avevo fatto funzionava bene.
Qualcuno mi dà una dritta?
grazie
« Ultima modifica: 01 Mar 2009, 20:38:52 da ventus85 »
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #1 il: 19 Feb 2009, 16:12:05 »
Uhmmmmm...la cosa non mi torna.

Per i componenti per esempio si dovrebbe usare qualcosa del genere:
<form method="post" target="_blank" action="index.php?option=com_XXX&view=front&Itemid=YYY">

Ma il problema che il mio è un modulo e il file che voglio richiamare ha questo path:
/modules/mod_requestVentus85/mod_requestVentus85form.php
quindi non ha la stessa forma dei componenti, se fosse dovrebbe avere action="index.php?option=mod_requestVentus85 e poi?
Se gli do action="index.php?option=mod_requestVentus85/mod_requestVentus85form.php" ovviamente mi dà errore 404.

Uffa, non volevo usare vie come Joomla Mod PHP o trasformarlo in componente per una cosa così banale...
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline Acar83

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #2 il: 22 Feb 2009, 21:40:25 »
Ventus so che è banale ma hai provato a mettere il path completo rispettando le maiuscole se ci sono?

es: "http://localhost/sito/modules/mod_requestVentus85/mod_requestVentus85form.php"


Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #3 il: 22 Feb 2009, 22:28:56 »
Ventus so che è banale ma hai provato a mettere il path completo rispettando le maiuscole se ci sono?

es: "http://localhost/sito/modules/mod_requestVentus85/mod_requestVentus85form.php"



Si.
Ho provato anche a richiamare il path attraverso un metodo (poichè te a priori non sai l'indirizzo del sito remoto) ma mi da sempre errore 404.
 :(
Grazie per la risposta.  :)
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #4 il: 22 Feb 2009, 22:53:17 »
Con
<form method="post" target="_blank" action= 'modules/mod_requestVentus85/mod_requestVentus85form.php' );>
cioè senza / (che idiota sono stata, eppure uno dovrebbe imparare) non mi restituisce più errore bensì una pagina bianca al posto del messaggio di mancata compilazione del campo o di avvenuta spedizione della richiesta.
Diciamo che stiamo migliorando...  ::)
« Ultima modifica: 22 Feb 2009, 22:55:27 da ventus85 »
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline Milcon

  • Global Moderator
  • Abituale
  • ********
  • Post: 1815
  • Sesso: Maschio
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #5 il: 22 Feb 2009, 23:34:50 »
Ciao Ventus prova a dare vita al mod_requestVentus85form.php, mettendo ad esempio:

Codice: [Seleziona]
<?php
function saluto () {
if (
date("H")>=12) {
echo 
"Buonasera";
} else {
echo 
"Buongiorno";
}
}
?>

 
:)
« Ultima modifica: 22 Feb 2009, 23:44:20 da Milcon »

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #6 il: 22 Feb 2009, 23:45:55 »
Ciao Ventus prova a dare vita al mod_requestVentus85form.php, mettendo ad esempio:

<?php
function saluto () {
if (date("H")>=12) {
echo "Buonasera";
} else {
echo "Buongiorno";
}
}
?>
 :)


Grazie Milcon.
Si, avevo provato a fargli stampare un hello world per vedere se era il mio pezzo di php a non funzionare, invece nisba.
Quindi l'errore è nel primo file.
Dopo me lo riguardo.
 ;)
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline Milcon

  • Global Moderator
  • Abituale
  • ********
  • Post: 1815
  • Sesso: Maschio
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #7 il: 23 Feb 2009, 00:18:41 »
l' errore è nel secondo file che deve ricevere il metodo POST:

prova così:

primo file:

login.htm


Codice: [Seleziona]
<html>
<body>
<form method="POST" action="welcome.php">

<input type="password" name="password">
<input type="submit" value="Login">
</body>
</html>

secondo file:

welcome.php
Codice: [Seleziona]
<?php
$password 
$_POST["password"];
if (
$password <> 'roberto') {
echo 
"Non sei autorizzato ad entrare in quest'area";
} else {
echo
"Saluti sei nell'area protetta";
}
?>

lo pui vedere attivo: QUI

la pw è roberto. :)
« Ultima modifica: 23 Feb 2009, 00:24:26 da Milcon »

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #8 il: 23 Feb 2009, 11:31:12 »
Boh...
Ho riprovato con una cosa simile alla tua (un misto con un hello world passandogli un parametro inserito) e funziona.
Dopo ricontrollo il file originale e vi faccio sapere, ora devo finire un lavoro che devo consegnare stamani.
 ;)
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #9 il: 23 Feb 2009, 16:47:15 »
mod_loginVentus85.php
Codice: [Seleziona]
<html>
<body>
<form method="POST" action= "modules/mod_requestVentus85/mod_requestVentus85form.php" );>
<table align="center">
  <tr>
    <td align=left><b>Nome:</b></td>
    <td><input name="name" size=30 value=''></td>
  </tr>
  <tr>
    <td align="center"><b>Richiesta di informazioni:<br>
          <textarea name="Comments" cols=50 rows=3 wrap=soft></textarea>
    </b></td>
  </tr>
  <td align="center"><input name="submit" type="submit" value="Spedisci">
          <input name="reset" type="reset" value="Annulla">
   </td>
  </tr>
</table>
</body>
mod_requestVentus85form.php
Codice: [Seleziona]
<?php
$name 
$_POST["name"];
echo 
"grazie per averci spedito la richiesta";
}
?>

A parte che non uso $name (all'inizio avevo fatto la concatenazione con la frase successiva), ma poi non mi sembra quel codice così complicato...


« Ultima modifica: 23 Feb 2009, 16:52:04 da ventus85 »
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #10 il: 25 Feb 2009, 01:42:28 »
Non capisco come mai riscrivendo il file funziona...  ???
Vabbè, meglio così.

 :)

Ora volevo fare in modo che nel secondo file spedisse un'email all'indirizzo inserito nel back end.

Io ho fatto così:

mod_requestVentus85.xml
Codice: [Seleziona]
[...]
 <param name="email" type="text" default="my@email" label="email" description="Parametro per indirizzo e-mail" />
[...]

mod_requestVentus85.php
Codice: [Seleziona]
[...]<?
$email = $params->get( 'email' );
echo "e-mail " . $email;
$site = $params->get( 'site' );
?>[...]

mod_requestVentus85form.php

Codice: [Seleziona]
<?php
$sendTo 
"your@address.com";
$subject "Arriva email!"
$testo $_POST["Comments"];
$mailheaders "Reply-To: your@address.com \n"
mail($sendTo$subject$testo,$mailheaders );

$name $_POST["name"];
echo 
"Grazie " $name;

?>

Ora ho due problemi:
problema 1) come faccio a passare nel secondo file il parametro $email al posto di your@address.com?
Io ho messo $sendTo = $email ma non posso verificare se va bene perchè vedi problema 2).
problema 2) anche se al posto di your@address.com metto il mio indirizzo email non mi arriva nulla.

Errori non me li da, infatti richiama il file e stampa a video la frase grazie + il nome passato.
Ho controllato un po' su internet, ma le idee degli utenti sono piuttosto confuse.

Il metodo mail() di php richiede 3 argomenti obbligatori (i primi che ho messo) più altri 2 opzionali (uno per l'headers, l'altro non ricordo).
Restituisce true quando il messaggio è passato correttamente, anche nel caso che l'email non sia stata inviata.

Ho trovato che bisogna impostare correttamente il file php.ini nel quale viene specificato quale server SMTP verrà usato, ma qui non c'entra nulla.

Ho guardato un po' il codice del componente di default di Joomla (dove usa MailTo) ma non mi ha aiutato.
Boh, ci penserò ancora...

Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #11 il: 25 Feb 2009, 11:30:31 »
Non ci credo...mi sono arrivate le email, con ritardo ma sono arrivate!
Due su quattro prove, quindi dovrebbero andare bene le ultime due versioni del codice quelle con l'inserimento dell'indirizzo email nel codice e non preso come parametro (meno male in una ho messo il contenuto dell'email diverso dalle altre sennò non le riconoscevo), così:
Citazione
Da: root@admin2.byetcluster.com (root)    A: Array
Priorità: Normale  Oggetto: Array
Data: mar 24/02/09 22:25

Poi il testo, un rigo di pubblicità e la frase Spam Filtered (ID:2673352)

L'ora coincide a meno del fuso orario, il testo coincide, gli altri dati invece sono diversi da quelli da me inseriti.
L'oggetto nella casella e-mail coincide con quello da me inserito, nell'email invece c'è scritto Array.
Boh!
Però è già un passo avanti.  ;)
Ora provo con il codice giusto ad aggiungere il parametro.
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline Milcon

  • Global Moderator
  • Abituale
  • ********
  • Post: 1815
  • Sesso: Maschio
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #12 il: 26 Feb 2009, 22:27:37 »
io per l' invio mail ho risolto così:

info.htm

Codice: [Seleziona]
<form action="sendmail.php" method="post">
Nome: <input type="text" name="nome">
<br>
Email <input type="text" name="email">
<input type="submit" value="Invio">
</form>

sendmail.php

Codice: [Seleziona]
<?php
$mittente 
"From: Il tuo nome <info@tuosito.com>";
$destinatario "info@tuosito.com";
$oggetto "Prova invio email";
$nome $_POST["nome"];
$email $_POST["email"];      
$messaggio =  "Dati utente: $nome, Email: $email";    
mail ($destinatario,$oggetto,$messaggio,$mittente); 
echo 
"Grazie per aver richiesto maggiori informazioni. Entro 24 ore verrai ricontattato";    
?>

se la mail viene mandata a se stesssi, quindi come nel caso che un utente compila un form di richiesta informazioni, si compila solo il campo destinatario. La mail arriva subito con l' oggetto in questione, il nome dell' utente e la sua mail. Ovviamente dipende dai server di posta. :)

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #13 il: 26 Feb 2009, 22:36:12 »
Funziona, come scritto, anche come ho fatto io.

Ora ho solo il problema di portare dal primo file php (dove richiamo il parametro email che è l'email impostata nel backend del sito) al secondo file php che è quello che si occupa della spedizione dell'email (cioè usa la fuzione mail() ).

Avevo provato cambiano con il metodo post e passandolo $email nell'url, ma non va bene. Non ho però guardato altre soluzioni per altri impegni.
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline Milcon

  • Global Moderator
  • Abituale
  • ********
  • Post: 1815
  • Sesso: Maschio
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #14 il: 26 Feb 2009, 22:39:50 »
E' una sperimentazione ho vuoi creare qualcosa di nuovo?

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #15 il: 27 Feb 2009, 11:29:49 »
E' una sperimentazione ho vuoi creare qualcosa di nuovo?

Autodidattismo. Anzi didattica bella e buona.
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re: Creazione modulo: richiamare un altro file
« Risposta #16 il: 01 Mar 2009, 20:38:33 »
Allora, poichè ho risolto il problema iniziale, cioè bastava mettere
Codice: [Seleziona]
<form method='POST' target='_blank' action= 'modules/mod_nomemodulo/mod_secondofile.php' );>e risolto anche quello successivo, cioè
Ora ho solo il problema di portare dal primo file php (dove richiamo il parametro email che è l'email impostata nel backend del sito) al secondo file php che è quello che si occupa della spedizione dell'email (cioè usa la fuzione mail() ).
creando dentro al form degli hidden e passargli il valore rileggendo la variabile incriminata
Codice: [Seleziona]
<input type="hidden" name="dato" value="<? $email = $params->get( 'email' );?>">e inserendo con il metodo previsto dal post nel secondo file
Codice: [Seleziona]
$sendTo = $_POST["dato"];...

...insomma dopo tutto il discorso volevo dire che è tutto risolto e quindi metto il target [RISOLTO] alla discussione.
 :)
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

 



Web Design Bolzano Kreatif