Bonjour,
j'essaie de développer une extension pour Joomla 3!, mais quand j'inclue des fichier j'ai l'impression que le reste de mon code ne s'exécute pas.
Par ailleurs je galère à accéder à la base de données (il ne se passe rien) et l'envoi des mails ne fonctionne pas. Bref j'ai la totale !
Page qui appelle post.php :
post.php :
j'essaie de développer une extension pour Joomla 3!, mais quand j'inclue des fichier j'ai l'impression que le reste de mon code ne s'exécute pas.
Par ailleurs je galère à accéder à la base de données (il ne se passe rien) et l'envoi des mails ne fonctionne pas. Bref j'ai la totale !
Page qui appelle post.php :
Code PHP:
<?php defined('_JEXEC') or die;
$doc = JFactory::getDocument();
$doc->addScript(JURI::root(). 'modules/mod_mail/jquery-1.11.1.min.js' );
?>
<div class="promo-module item-image pull-left <?php echo htmlspecialchars($moduleclass_sfx); ?>">
<form method="post" action="post.php">
<p>
<label>Nom</label> : <input type="text" name="nom" id="nom" />
<label>Prénom</label> : <input type="text" name="prenom" id="prenom" />
<label>Email</label> : <input type="email" name="email" id="email" />
<input type="button" name="valider" value="S'inscrire" id="valider" />
</p>
</form>
<p id="confirmation">Votre inscription a bien été prise en compte.</p>
<script>
$(document).ready(function(){
$('#valider').click(function(){
execScript();
});
});
function execScript(){
$.post('<?php echo JURI::root();?>\\modules\\mod_mail\\tmpl\\post.php',
{
nom:$("#nom").val(),
prenom:$("#prenom").val(),
email:$("#email").val()
},
function(data,status){
if(status=="success"){
alert(data);
}
});
}
</script>
</div>
post.php :
Code PHP:
require_once('..\\..\..\\libraries\\loader.php' ); //nécessaire pour utiliser jimport
jimport( 'joomla.factory'); //nécessaire pour utiliser JFactory
$doc = JFactory::getDocument();
$doc->addScript(JURI::root(). 'modules/mod_mail/jquery-1.11.1.min.js' );
require('PHPMailer\\_lib\\phpmailer-fe.php');
require('PHPMailer\\_lib\\class.phpmailer.php');
function nofaille($post){
$post=stripslashes($post);
$post=mysql_real_escape_string($post);
return $post;
}
$nom = nofaille($_POST['nom']);
$prenom = nofaille($_POST['prenom']);
$email = nofaille($_POST['email']);
// Get a db connection.
$db = JFactory::getDbo();
echo "database : ".$db;
// Create a new query object.
$query = $db->getQuery(true);
// Insert columns.
$columns = array('nom', 'prenom', 'email');
// Insert values.
$values = array($nom, $prenom, $email);
// Prepare the insert query.
$query
->insert($db->quoteName('dnmjz_mail'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
// Set the query using our newly populated query object and execute it.
echo $query;
$db->setQuery($query);
$db->execute();
// Récupération des variables nécessaires au mail de confirmation
$email = $_POST['email'];
// Préparation du mail contenant le lien d'activation
$destinataire = $email;
$sujet = "Ecoslops - Inscription à la liste de diffusion" ;
$entete = "From: inscription@ecoslops.com" ;
// Le lien d'activation est composé du login(log) et de la clé(cle)
$message = 'Bonjour '.$_POST['prenom'].' '.$_POST['nom'].',
Votre inscription a bien été prise en compte. Vous recevrez les communiqués de presse d\'Ecoslops, et serez tenu au courant de l\'actualité. Pour vous désinscrire, vous pouvez envoyer un mail à l\'adresse ecoslops.citigate.fr
---------------
Ceci est un mail automatique, Merci de ne pas y répondre.';
function email($destinataire, $sujet, $message, $from='elzbiekta0509@gmail.com'){
$mail = new PHPmailer();
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='smtp.gmail.com';
// Serveur SMTP
$mail->From=$from;
$mail->FromName='Ecoslops Test';
$mail->SMTPAuth=true;
// Si il y a une connexion email/password requise alors = true sinon = false
$mail->Username='elzbietka0509@gmail.com';
// Username, l'émail de connexion au serveur SMTP
$mail->Password='F3rdYdurk3G0mbr0w1cz4';
// Password, le mot de passe de connexion au serveur SMTP
$mail->SMTPDebug=false;
// Si tu a des soucis d’envoi met sur TRUE pour activé le mode débug
$mail->AddAddress($destinataire);
$mail->AddReplyTo($from);
$mail->Subject=$sujet;
$mail->Body=$message;
if(!$mail->Send()){
return false;
// Erreur
}
else{
return true;
// Bien envoyé
}
$mail->SmtpClose();
unset($mail);
}
email("elisabeth.abbaszadeh@ecoslops.com", "teeeeest", "????", "bla");
Commentaire