Kezdőoldal » Számítástechnika » Weblapkészítés » Az alábbi hibával küzdök. Nem...

Az alábbi hibával küzdök. Nem vagyok túl erős phpban és nem találom a hibát. Az email elüldésre kerül a honlapról. Megérkezik a mail címre, de a beírt tartalom helyett az undefiened szó jelenik csak meg. Mi a gond?

Figyelt kérdés
Illetve hiába állítom be a karakterkódolást, az ékezetek nem jól jelennek meg.

#php form #mail form
2023. febr. 22. 23:21
 1/5 A kérdező kommentje:

<form action="php/form-process.php" class="form-contact" id="contactForm" data-toggle="validator">

<div class="form-group">

<input type="text" class="form-control" id="p_name" placeholder="NÉV" required="">

<div class="help-block with-errors"></div>

</div>

<div class="form-group">

<input type="email" class="form-control" id="p_email" placeholder="EMAIL CÍM" required="">

<div class="help-block with-errors"></div>

</div>

<div class="form-group">

<textarea id="p_message" class="form-control" rows="6" placeholder="FELADAT LEÍRÁSA"></textarea>

<div class="help-block with-errors"></div>

</div>

<div class="form-group">

<div id="success"></div>

<button type="submit" class="btn btn-primary">ÁRAJÁNLAT KÉRÉSE</button>

</div>

</form>

2023. febr. 22. 23:22
 2/5 A kérdező kommentje:

<?php


$headers = "Content-Type: text/html; charset=UTF-8";


$errorMSG = "";


// NAME

if (empty($_POST["name"])) {

$errorMSG = "Name is required ";

} else {

$name = $_POST["name"];

}


// EMAIL

if (empty($_POST["email"])) {

$errorMSG .= "Email is required ";

} else {

$email = $_POST["email"];

}


// MESSAGE

if (empty($_POST["message"])) {

$errorMSG .= "Message is required ";

} else {

$message = $_POST["message"];

}



$EmailTo = "a@a.hu";

$Subject = "új email érkezett a honlapról";


// prepare email body text

$Body = "";

$Body .= "Nev: ";

$Body .= $name;

$Body .= "\n";

$Body .= "Email: ";

$Body .= $email;

$Body .= "\n";

$Body .= "Üzenet: ";

$Body .= $message;

$Body .= "\n";


// send email

$success = mail($EmailTo, $Subject, $Body, "From:".$email);


// redirect to success page

if ($success && $errorMSG == ""){

echo "success";

}else{

if($errorMSG == ""){

echo "Something went wrong :(";

} else {

echo $errorMSG;

}

}


?>

2023. febr. 22. 23:23
 3/5 anonim ***** válasza:
100%

1. Az űrlap mezőinak nincsen name, email, message értékű name attribútuma, így az űrlapról nem adódik át semmi a feldolgozó PHP-szkriptnek.


2. Felhasználótól érkező adatokat tessék ellenőrizni. Például az e-mailnél ott a filter_var() függvény:

[link]

ahol a második paramétere:

[link]

legyen

FILTER_VALIDATE_EMAIL


Az üzenet szövegénél pedig szűrd a HTML-t:

[link]

nehogy HTML-kódokat csempésszenek az e-mailedbe.


3. Levél tartalmánál sortöréshez használ CRLF-et (\r\n-t), és ne legyen 70 karakternél hosszabb egy sor:

"Each line should be separated with a CRLF (\r\n). Lines should not be larger than 70 characters."

[link]


4. Levél küldésére hatékonyabb a PHPMailer:

[link]

több beállítási lehetősége van.

2023. febr. 23. 00:41
Hasznos számodra ez a válasz?
 4/5 vmg ***** válasza:
100%
A 3-as mindent leírt, annyit fűznék még hozzá, hogy azért is érdemes a PHPMailer-t használni mert sok szolgáltatónál a mail() függvény le van tiltva.
2023. febr. 23. 08:02
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
köszönöm szépen az instrukciókat, de sajnos nem tudtam megoldani, ehhez az én tudásom még nem elég jó
2023. febr. 28. 10:10

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!