J'offre une bouteille de champagne

Résolu
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009 - 3 déc. 2009 à 19:58
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009 - 10 déc. 2009 à 21:21
je suis désespéré.

celui qui m'aide à résoudre mon problème, je lui fait livrer une bouteille de champagne....

mon problème :

un serveur perso
windows vista (et oui déja sa va diminuer les possibilités).
apache.
php5

un site.
un espace membre.

une fonction envois de formulaire qui ne fonctionne pas pour les membres....

voilà...

97 réponses

manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 18:59
message d'erreur qui s'affiche:
Fatal error: Cannot redeclare class Mail in C:\php-5\PEAR\Mail.php on line 33
c'est pour l'envoie du 2 eme message ça...
*****************************************

je viens de faire une recherche et j'ai obtenu un resultat sur pear mais j'y comprends rien.

Description: ------------ When I try to create mailer instance, I always get error message Fatal error: Cannot redeclare class mail in <...>\PEAR\PEAR\Mail.php on line 33 This is because files Mail.php (base PEAR Mail class) and class mail.php used as engine to PHP mail() function have the same name under Windows. The temporary solution is to remove or comment require_once 'Mail.php'; line from mail.php (mail() engine script) Reproduce code: --------------- $MailingEngine = &Mail::factory('mail'); Expected result: ---------------- Fatal error: Cannot redeclare class mail in <...>\PEAR\PEAR\Mail.php on line 33
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 19:31
j'ai fais ça, mais sa donne rien

include("Mail.php");
print_r($row_Recordset1['mailmembre']);

$recipients = $row_Recordset1['mailmembre'];
$headers["From"] = "webmaster@domaine.com";
$headers["To"] = $row_Recordset1['mailmembre'];
$headers["Subject"] = "blabla";
$body = " '$msg' ";
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 19:33
et voila la mail.php

* @access public
* @version $Revision: 1.17 $
* @package Mail
*/
class Mail
{ ici ligne 33
/**
* Line terminator used for separating header lines.
* @var string
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 déc. 2009 à 19:33
OK, ben écoute Manu, je ne veux pas me faire désagréable hein, mais, pour t'en avoir fait part à de nombreuses reprises : j'aimerai ne pas perdre mon temps à poser des questions auxquelles je n'obtiens aucune réponse (ou au mieux des "ultra partielles") dans l'unique but de t'aider

Quelle ligne 33 (nous n'avons pas forcement le même fichier que toi) ?
Ok, mais que contient il réellement ? L'as tu vérifié ? Si oui il serait intéressant de le savoir
Qu'est ce que ça raconte ?

Où sont les réponses ?

Quant tu feras preuve du minimum de courtoisie qui consiste à répondre ("je ne comprends pas ce que tu me demandes" étant une réponse) je reprendrai le thread. Pour l'heure je ne peux rien faire pour toi.

Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 19:35
délodé j'étais partis manger un morceau
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 déc. 2009 à 19:55
OK, reprenons.

Pas facile de détecter le problème sans voir les scripts, d'autant plus que je n'ai pas la même version que toi.

Comment appelles tu le code que tu donnais ? est ce un fichier séparé que tu appelles dans ton script principal ? une fonction ? autre chose ?

Si tu remplaces :
include("Mail.php");
=>
include_once("Mail.php");

qu'est ce que ça donne ?

j'ai fais ça, mais sa donne rien

Ajoute :
include("Mail.php");
print_r($row_Recordset1['mailmembre']);
die();

Qu'est ce que ça dit ?


Kohntark -
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 20:13
voici mon form d'une page:

<form name="form1" method="post" action="envoi.php">
Envoyer un E-mail à tous vos membres ,

----

Sujet du message ,

----

,

----

LE MESSAGE ,

----

<textarea name="msg" cols="55" rows="10" id="msg"></textarea>,

----


</form>

****************************************

page envoi.php

<?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_Recordset1 = 15;
$pageNum_Recordset1 = 0;
if (isset($_GET['pageNum_Recordset1'])) {
$pageNum_Recordset1 = $_GET['pageNum_Recordset1'];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;

mysql_select_db("149224", $mysql_link);
$query_Recordset1 = "SELECT mailmembre FROM ep_test";
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $mysql_link) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);




if (isset($_GET['totalRows_Recordset1'])) {
$totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
} else {
$all_Recordset1 = mysql_query($query_Recordset1);
$totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;


$queryString_Recordset1 = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_Recordset1") == false &&
stristr($param, "totalRows_Recordset1") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_Recordset1 = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);

?>

<?php echo $row_Recordset1['mailmembre']; ?>
<?php

include("Mail.php");
print_r($row_Recordset1['mailmembre']);
die();

$recipients = $row_Recordset1['mailmembre'];

$headers["From"] = "webmaster@domaine.com";
$headers["To"] = $row_Recordset1['mailmembre'];
$headers["Subject"] = "blabla";

$body = "Message";


$params["host"] = "smtp.orange.fr";
$params["port"] = "25";
$params["auth"] = true;
$params["username"] = "identifiant@orange.fr";
$params["password"] = "*******";

$mail_object =& Mail::factory('smtp', $params);

$send_result = $mail_object->send($recipients,$headers,$body);



?>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>





<?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
">Envoyer aux 50 membres Suivant

<?php } // Show if not last page ?>
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 20:15
Ajoute :
include("Mail.php");
print_r($row_Recordset1['mailmembre']);
die();

Qu'est ce que ça dit ?


pas de message d'erreur mais j'ai pas l'impression que sa fonctionne
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 20:18
Si tu remplaces :
include("Mail.php");
=>
include_once("Mail.php");

qu'est ce que ça donne ?


j'ai fais un essai tout a l'heure sa planté et suite à un nouvel essai : no erreur

mais je dois attendre pour savoir si quelque chose a été envoyé
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 déc. 2009 à 20:31
OK, tu as bien enlevé le die() avant cet essai ?

Au passage :
Pense à indenter et utilise la balise afin de faciliter la lecture de ton code.



Kohntark -
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 20:40
de cette manière ça se met pas en erreur
<?php
include_once("Mail.php");
$recipients = $row_Recordset1['mailmembre']; 
$headers["From"]    = "webmaster@domaine.com"; 
$headers["To"]  = $row_Recordset1['mailmembre']; 



les autres solutions j'en reviens à

Fatal error: Cannot redeclare class Mail in C:\php-5\PEAR\Mail.php on line 33 

ce qui correspond à la 2eme personne à qui le mail doit etre envoyé
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 20:57
no erreur mais apparement, les mails partent pas
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 déc. 2009 à 21:10
Ce qui m'embête un peu c'est que $row_Recordset1 n'affiche rien.
Si tu mets, juste en dessous de :
$row_Recordset1 = mysql_fetch_assoc($Recordset1); 

ça :
echo '[';
print_r($row_Recordset1);
die(']');

Ca doit forcément t'afficher quelque chose, non ?

Kohntark -
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 21:14
oui il me repond ça:

[Array ( [mailmembre] => moi@msn.com ) ]
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 21:19
j'y comprends rien, j'ai rien changé, je viens de refaire un test avec un envoi simultané de 25 personnes et sa fonctionne
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 déc. 2009 à 21:21
... je me disais aussi
Refais quelques tests et tiens nous au jus ... mais ne spam pas trop ^^


Kohntark -
0
manu7930 Messages postés 191 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 14 décembre 2009
10 déc. 2009 à 21:21
je viens de tester 50 membres d'un coup et c passé ..... j'suis sure que si j'était tout et que je rallume le serveur sa fonctionnera plus
0
Rejoignez-nous