2021-02-09, 14:43
  #1
Medlem
Jag har ftt fljande att fungera: https://phppot.com/php/user-registra...code-download/

Efter registreringen vill jag skicka ett email vilka jag har gjort tidigare med med ex phpMailer. Dock vill jag frska hlla en bra struktur s frgan r var jag ska placera kod fr att skicka mail efter registreringen. Aningen bygger jag en ny funktion inne i Member.php ven om jag tycker att det inte knns som att det riktigt hr hemma dr. Eller ska jag skapa en ny phpmodell ex email.php och anropa den efter member.php i user-registration.php verst p ngot stt dr koden ser ut shr

Kod:
<?php
use Phppot\Member;
if (! empty(
$_POST["signup-btn"])) {
    require_once 
'./Model/Member.php';
    
$member = new Member();
    
$registrationResponse $member->registerMember();
}
?>
<HTML>
<HEAD>
<TITLE>User Registration</TITLE>
<link href="assets/css/phppot-style.css" type="text/css"
    rel="stylesheet" />
<link href="assets/css/user-registration.css" type="text/css"
    rel="stylesheet" />
<script src="vendor/jquery/jquery-3.3.1.js" type="text/javascript"></script>
</HEAD>
__________________
Senast redigerad av help 2021-02-09 kl. 14:46.
Citera
2021-02-09, 14:46
  #2
Medlem
Jag hade lagt den i en separat fil, och sedan anropat den som en funktion med en require_once. Hade ocks lagt in en checksumma s att ingen robot/bot eller annat skrp kan anvnda sig av filen. Kan ju t.ex. lgga med ngot hashvrde i antingen form action, alternativt i en hidden form-input. Anropet gr du lmpligen via en separat fil som fr hantera den, fr att undvika problem med page-refresh. Efter att det skickats blir man redirectad tillbaka till formulret, eller annan sida.
Citera
2021-02-10, 13:27
  #3
Medlem
Citat:
Ursprungligen postat av DJ-Emerald
Jag hade lagt den i en separat fil, och sedan anropat den som en funktion med en require_once. Hade ocks lagt in en checksumma s att ingen robot/bot eller annat skrp kan anvnda sig av filen. Kan ju t.ex. lgga med ngot hashvrde i antingen form action, alternativt i en hidden form-input. Anropet gr du lmpligen via en separat fil som fr hantera den, fr att undvika problem med page-refresh. Efter att det skickats blir man redirectad tillbaka till formulret, eller annan sida.

Tack, men var (och lite hur)? Ska jag lgga det i mappen models? Fast det r ju inte riktigt en modell (som frgorna till databasen r).

Shr ser filstrukturen ut: https://phppot.com/wp-content/upload...-structure.jpg

Var i den ska jag skapa en fil dr jag lgger koden nedan (kod nedkortad)

Kod:
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;

require 
'PHPMailer/Exception.php';
require 
'PHPMailer/PHPMailer.php';
require 
'PHPMailer/SMTP.php';

$Mail = new PHPMailer//Argument true in constructor enables exceptions

$Mail->From "noreplay@company.com";
$Mail->FromName "noreplay";
$Mail->addAddress($departmentEmail); // To address and name
$Mail->addReplyTo($senderEmail); // Address to which recipient will reply
$Mail->isHTML(true); // Send HTML or Plain Text email
$Mail->CharSet 'UTF-8'
Citera
2021-02-10, 15:25
  #4
Medlem
Citat:
Ursprungligen postat av help
Tack, men var (och lite hur)? Ska jag lgga det i mappen models? Fast det r ju inte riktigt en modell (som frgorna till databasen r).

Shr ser filstrukturen ut: https://phppot.com/wp-content/upload...-structure.jpg

Var i den ska jag skapa en fil dr jag lgger koden nedan (kod nedkortad)

Kod:
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;

require 
'PHPMailer/Exception.php';
require 
'PHPMailer/PHPMailer.php';
require 
'PHPMailer/SMTP.php';

$Mail = new PHPMailer//Argument true in constructor enables exceptions

$Mail->From "noreplay@company.com";
$Mail->FromName "noreplay";
$Mail->addAddress($departmentEmail); // To address and name
$Mail->addReplyTo($senderEmail); // Address to which recipient will reply
$Mail->isHTML(true); // Send HTML or Plain Text email
$Mail->CharSet 'UTF-8'

Jag freslr att du lgger den utanfr det publika webbtrdet. Skapa t.ex. en egen mapp under rotkatalogen. Du kan hnvisa till den precis som vanligt med vanliga relativa lnkhnvisningar. Finns ju ingen anledning till att man ska ha mjlighet att "surfa" till filen om dess enda anvndning bestr av dina interna funktioner.
__________________
Senast redigerad av DJ-Emerald 2021-02-10 kl. 15:27.
Citera
2021-02-10, 19:38
  #5
Medlem
SKetchers avatar
Baka in den i en klass eller liknande. Placera library-aktigt ngonstans separat.

Kod:
class Mailer{
    
    private 
$mail;

    public function 
__construct(){
        
$this->mail = new PHPMailer();
    }
    
    public static function 
SendRegistration(){
       
// Kod med $this->mail
    
}


Kan kallas dr du behver den.

Kod:
//require_once('../../Mailer.php')
$mailer = new Mailer();
$mailer->SendRegistration(); 
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in