Avatar billede vix-mix Nybegynder
06. december 2006 - 13:13 Der er 14 kommentarer og
2 løsninger

Objekt og php

Hej.

Jeg har en mail sender som er objektorinteret som jeg har fået for lang tid siden, men den virker rigtig godt.

der hvor jeg har min mail til at stå plejer gerne at se sådan ud når det er en bestemt mail den skal sende til:

    $mail->AddAddress("test@test.dk");

Men fordi jeg skal bruge den til et andet system skal jeg have den til at se sådan herud på en eller anden måde:

    $mail->AddAddress($email);

Hvor den får $email fra en DB.

Men det virker ikke som det skal, nogle som har en idé?
Avatar billede mcardle Nybegynder
06. december 2006 - 14:18 #1
Hvordan ser dit script ud?
Avatar billede vix-mix Nybegynder
06. december 2006 - 14:33 #2
Stort set sådan her:

    require "db.php";
    $xx= $_POST[xx];
    $xx= $_POST[xx];
    $xxx = "$xx$xx";
    $sql2 = mysql_query("SELECT * FROM vlog WHERE xx= $xx");
    $row2 = mysql_fetch_array($sql2);
    $navn = $row2['navn'];
    $email = $row2['email'];
    $password = md5("xxxx" . $_POST['fire']);
    mysql_query("UPDATE xxxxx SET password='$password' WHERE xx= $xx") or die(mysql_error());
   
    $mail = new PHPMailer();

    $mail->From    = "robot@xxxxxxxxx";
    $mail->FromName = "xxxxxxxxxxxx";
    $mail->Subject = "Ændring af kodeord - $navn" . "\n\n";

    // HTML body
    $body .= "Hej $navn" . "<br /><br />";
    $body .= "Vi har ændret dit kodeord på xxxxxxxxxx til: <b>xxxxx$nr</b>" . "<br /><br />";
    $body .= "Er der yderligere problemer kontakt os på xxxxxxxxxxxxx" . "<br /><br /><br />";
    $body .= "Med Venlig Hilsen<br /> xxxxxxxxxxxxxx";
   
    // Plain text body (for mail clients that cannot read HTML)
    $text_body .= "Hej $navn" . "\n\n";
    $text_body .= "Vi har ændret dit kodeord på xxxxxxx til: <b>xxxx$nr</b>" . "\n\n";
    $text_body .= "Er der yderligere problemer kontakt os på xxxxxxxxxxx" . "\n\n\n";
    $text_body .= "Med Venlig Hilsen\n xxxxxxxxxx";   
   
    $mail->Body    = $body;
    $mail->AltBody = $text_body;
    $mail->AddAddress("test@test.dk");

det er så sidste linje som skal kunne skiftes alt efter hvilken værdi den får fra $email
Avatar billede mcardle Nybegynder
06. december 2006 - 14:43 #3
Med mindre der ikke står det her og du har lavet det om, så kan du ikke gøre sådan:

require "db.php";
    $xx= $_POST[xx];
    $xx= $_POST[xx];
    $xxx = "$xx$xx";

Det skal være:

require("db.php");
    $xx= $_POST[xx];
    $xxx = $xx.$xx;

Desuden, hvis du ikke laver en while($row2 = mysql_fetch_array($sql2);
), vil $row2 kun indholde den første celle i din tabel.

Jeg har lidt svært ved at se hoved og hale i alle dine x'er. Det er lidt svært at hjælpe, hvis man ikke har de rigtige navne...
Avatar billede vix-mix Nybegynder
06. december 2006 - 14:58 #4
jamen det virker egentlig meget fint det hele, den henter mail adressen i fra min db jeg kan bare ikke få den til at bruge den i denne linje:  $mail->AddAddress($email);

har prøvet med 

$mail->AddAddress(echo "$email";);
$mail->AddAddress(echo $email;);
$mail->AddAddress(echo $email);
$mail->AddAddress($email);
$mail->AddAddress("$email");
$mail->AddAddress(. "$email" .);
osv men igen af dem får mailen til at blive sendt til den adr. der kommer ind i..
Avatar billede coderdk Praktikant
06. december 2006 - 15:27 #5
mcardle, require/include er også language constructs, så det er ikke nødvendigt at bruge parenteser ;)

vix-mix, Det burde virke med ->AddAddress($email) - prøv at echo'e $email ud og se om den overhovedet indeholder noget ;)
Avatar billede mcardle Nybegynder
06. december 2006 - 15:33 #6
coderdk << Okay ;o)

Hedder din række i databasen email og er den sat til nok tegn. Jeg havde et problem engang med at hele min email ikke ville vise sig, så så jeg at jeg havde sat den til 11 antal tegn, så den fik ikke det hele med...
Avatar billede vix-mix Nybegynder
06. december 2006 - 16:00 #7
Jeg kan gøre sådan her:

    $mail->Body    = $body;
    $mail->AltBody = $text_body;
    $mail->AddAddress($email);
   
    echo "$email";
    echo $mail->AddAddress($email);

og så ud skriver den fint echo "$email"; men ikke echo $mail->AddAddress($email);

men den sender stadig intet :(?
Avatar billede coderdk Praktikant
06. december 2006 - 16:03 #8
Altså hvis den skriver en gyldig emailadresse ud, burde det virke. Hvis du direkte i samme script skriver "din@mailadresse.dk" ind får du så mail? Husker du $mail->Send()?
Selv eksemplet på deres side er med en mail fra en database: http://phpmailer.sourceforge.net/extending.html ;)
Avatar billede vix-mix Nybegynder
06. december 2006 - 16:10 #9
ja den er her:

   
    $mail->Body    = $body;
    $mail->AltBody = $text_body;
    $mail->AddAddress($email);
   
    echo "$email";
    echo $mail->AddAddress($email);
   
    if(!$mail->Send())

Ja den sender hvis der står
$mail->AddAddress("test@test.dk");
Avatar billede vix-mix Nybegynder
06. december 2006 - 16:16 #10
Haha ved ikke hvad der er sket men nu virker det :-O

Tak for hjælpen drenge, smid et svar begge
Avatar billede coderdk Praktikant
06. december 2006 - 16:20 #11
:)
Avatar billede vix-mix Nybegynder
06. december 2006 - 16:25 #12
lige en hurtig ting, det er ok hvis du ik vil svarer på det, men hvorfor gider den ikke gå ind og tjekke i brugeren på denne måde:

for at få tilsendt den nye kode skal de oplyse deres brugernavn og email, og de to skal passe sammen ellers vil den ikke blive sendt..

$bruger= $_POST[bruger];
$getemail = $_POST['getemail'];
$sql2 = mysql_query("SELECT * FROM vlog WHERE bruger=$bruger AND email=$getmail");

men der sker ikke noget når jeg tilføjer "AND email=....."
Avatar billede coderdk Praktikant
06. december 2006 - 18:32 #13
$bruger= mysql_real_escape_string($_POST['bruger']);
$getemail = mysql_real_escape_string($_POST['getemail']);
$sql2 = mysql_query("SELECT * FROM vlog WHERE bruger='$bruger' AND email='$getmail'");
Avatar billede vix-mix Nybegynder
06. december 2006 - 19:22 #14
takker for hjælpen, du får point så snart ham den anden svare
Avatar billede mcardle Nybegynder
06. december 2006 - 22:59 #15
Er det mig? Hehe...
Avatar billede vix-mix Nybegynder
07. december 2006 - 11:18 #16
Jeps det var dig. :-)

30 til hver. Jeg takker jer begge for hjælpen !

-lukket-
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester