Am gasit Elemente formular HTML, care mi s-au parut foarte interesante si ma ajuta mult pentru ca nu mai depind de un script aflat pe alt forum.
Pot crea un formular pe care sa il implementez direct la mine pe site.
Cum fac ca sa specific o adresa de e-mail la care sa ajunga acele date ce urmeaza a fi completate pe forumular?
Cum trimit datele din formular la e-mail
-
- Mesaje:36
Cum trimit datele din formular la e-mail
MarPlo
Mesaje:4343
Salut
Ca sa trimiti datele dintr-un formular la o adresa de email, trebuie sa folosesti si un script de pe server, cum ar fi PHP.
Browser-ul trimite datele din formular la un script pe server, care apoi le preia si trimite mai departe.
Deci, pe langa HTML, trebue sa cunosti sa lucrezi si cu un limbaj de program pe server, in cazul de aici, PHP.
Pe site sunt lectii la Cursul PHP, printre care si acestea (dar e necesar sa stii si lucruri mai de inceput):
- Utilizare formulare HTML cu PHP, $_GET si $_POST.
- Trimitere date la o adresa de e-mail, cu PHP .
Ca sa trimiti datele dintr-un formular la o adresa de email, trebuie sa folosesti si un script de pe server, cum ar fi PHP.
Browser-ul trimite datele din formular la un script pe server, care apoi le preia si trimite mai departe.
Deci, pe langa HTML, trebue sa cunosti sa lucrezi si cu un limbaj de program pe server, in cazul de aici, PHP.
Pe site sunt lectii la Cursul PHP, printre care si acestea (dar e necesar sa stii si lucruri mai de inceput):
- Utilizare formulare HTML cu PHP, $_GET si $_POST.
- Trimitere date la o adresa de e-mail, cu PHP .
Liaf
Mesaje:36
Ok, mersi. Cred ca ma descurd cu asta. Daca nu o sa revin pe parcurs ce intampin probleme. Momentan am doua nelamuriri:
---
1. Am asa:
Cum pot face ca atunci cand se merge pe lista de optiuni sau pe "Proprietati-pretul" sa apara informatii undeva in dreapta, gen alegeti proprietatea. alaturi este afisat pretul.
---
2. Am asa:
Aici daca apuci sa bifezi una nu se mai poate sterge, daca o bifezi pe cealalta nu se debifeaza ce ai bifat inainte. Cum pot face sa se poata bifa decat Da, sau decat Nu?
---
1. Am asa:
Cod: Selectaţi tot
<strong>Proprietati :</strong><select name="select"><option>proprietate 1 - 9,5 €</option><option>proprietate 2 - 10,5 €</option></p>
---
2. Am asa:
Cod: Selectaţi tot
<p><strong>Dorinta : </strong><input type="radio" />Da<input type="radio" />Nu</p>
steell
Mesaje:190
1. Uitete aici:
https://marplo.net/ajax/multiple-sel ... -ajax.html
Poti face ca aici numai ca scoti primele de selecturi, sa ramana numai unu si cand se selecteaza ceva anume se apara ceea ce vrei tu
2.
Butoanele radio trebuie sa contina acelasi nume la "name", daca vrei sa poata fi selectat doar unul, iar la "value" pui ce vrei sa sa trimita spre scriptul php.
Acel "Da" si acel "Nu" de dupa butoane sunt doar informatii ca sa vezi ce reprezinta fiecare buton, deci nu acestea se trimit la php, ci doar ce este la "value".
https://marplo.net/ajax/multiple-sel ... -ajax.html
Poti face ca aici numai ca scoti primele de selecturi, sa ramana numai unu si cand se selecteaza ceva anume se apara ceea ce vrei tu
2.
Cod: Selectaţi tot
<strong>Dorinta : </strong>
<input type="radio" name="nume" value="da" />Da
<input type="radio" name="nume" value="nu" />Nu
Acel "Da" si acel "Nu" de dupa butoane sunt doar informatii ca sa vezi ce reprezinta fiecare buton, deci nu acestea se trimit la php, ci doar ce este la "value".
Liaf
Mesaje:36
Mersi. Am rezolvat aceste aspecte insa am mai intapinat ceva probleme.
Am pus php-ul in public_html/website/comenzi si are numele "comandadomeniu.php".
Arata asa:
Am pus pe site asa in pagina de comanda la e-mail:
Nu vad care este problema. De ce atunci cand dau pe trimite, comanda ma duce pe ro-mixers.eu/website/comenzi/comandadomeniu.php , si de ce atunci cand dau Trimite comanda nu ajunge un e-mail la mail-ul pus de mine in php ?
Am pus php-ul in public_html/website/comenzi si are numele "comandadomeniu.php".
Arata asa:
Cod: Selectaţi tot
<?php
// Verifica daca au fost trimise datele de la formular
if (isset($_POST['Email']) && isset($_POST['mesaj'])) {
$to = 'comandadomeniu@ro-mixers.eu'; // Adresa unde va fi trimis mesajul
$subiect = 'Comanda domeniu';
$mesaj = $_POST['mesaj'];
$from = 'From: '. $_POST['Email'];
// PHP trimite datele la serverul de e-mail
if (mail($to, $subiect, $mesaj, $from)) {
echo 'Comanda dumneavoastra a fost trimisa. Verificati folderul Spam sau Inbox pentru a afla mai multe despre cum efectuati plata.';
}
else {
echo 'Comanda nu a fost trimisa. Unul dintre campuri nu este completat corect.';
}
}
?>
Cod: Selectaţi tot
<form action="http://www.ro-mixers.eu/website/comenzi/comandadomeniu.php" method="post">
<p><label><strong><span style="color: #ff4500;">Adresa de e-mail : </span></strong></label><input name="Email:" size="30" type="text" /></p></form>
MarPlo
Mesaje:4343
In <form> nu e nici un buton "submit" cu Trimite.
In scriptul php se verifica daca sunt date de la casuta 'mesaj' (acel ... && isset($_POST['mesaj'])), dar nu ai un camp cu name="mesaj" in formular.
De asemenea, serverul trebuie sa aibe instalat si un server de email, cauta pe forum ca subiectul mai e discutat.
In scriptul php se verifica daca sunt date de la casuta 'mesaj' (acel ... && isset($_POST['mesaj'])), dar nu ai un camp cu name="mesaj" in formular.
De asemenea, serverul trebuie sa aibe instalat si un server de email, cauta pe forum ca subiectul mai e discutat.
Liaf
Mesaje:36
Nu am pus intregul continut dintre form insa am buton si pentru submit si pentru reset. Nu am postat aici. Il voi posta acum.
Am modificat partea cu mesaj si tot nu se trimite.
Php-ul este asa in "public_html/website/comenzi/comandadomeniu.php":
Si in pagina html arata asa ceea ce am creat eu:
Am modificat partea cu mesaj si tot nu se trimite.
Php-ul este asa in "public_html/website/comenzi/comandadomeniu.php":
Cod: Selectaţi tot
<?php
// Verifica daca au fost trimise datele de la formular
if (isset($_POST['Email']) && isset($_POST['Nume Prenume'])) {
$to = 'comandadomeniu@ro-mixers.eu'; // Adresa unde va fi trimis mesajul
$subiect = 'Comanda domeniu';
$mesaj = $_POST['Nume Prenume'];
$from = 'From: '. $_POST['Email'];
// PHP trimite datele la serverul de e-mail
if (mail($to, $subiect, $mesaj, $from)) {
echo 'Comanda dumneavoastra a fost trimisa. Verificati folderul Spam sau Inbox pentru a afla mai multe despre cum efectuati plata.';
}
else {
echo 'Comanda nu a fost trimisa. Unul dintre campuri nu este completat corect.';
}
}
?>
Cod: Selectaţi tot
<h4><span style="text-decoration: underline;">Formular comanda domeniu</span></h4>
<p>Campurile obligatorii sunt marcate astfel : <strong><span style="color: #ff4500;">Obligatoriu</span></strong>, iar cele neobligatorii astfel : <span style="color: #ff4500;">Neobligatoriu</span></p>
<form action="http://www.ro-mixers.eu/website/comenzi/comandadomeniu.php" method="post">
<pre><strong><em>Informatii despre domeniu</em></strong></pre>
<p><label><strong><span style="color: #ff4500;">Terminatia domeniului</span> - alaturi este afisat pretul <span style="color: #ff4500;">: </span></strong></label><select name="Terminatia Domeniului:"><option>eu - 9,5 €</option><option>com - 10,5 €</option><option>net - 9,0 €</option><option>org - 10,0 €</option><option>info - 10,0 €</option><option>biz - 10,0 €</option><option>us - 9,0 €</option><option>de - 10,5 €</option><option>es - 11,0 €</option><option>ws - 11,0 €</option><option>name - 10,5 €</option><option>co - 25,0 €</option><option>me - 25,0 €</option><option>xxx - 100,0 €</option></select></p>
<p><label><strong><span style="color: #ff4500;">Modalitatea de achizitionare : </span></strong></label><input name="Modalitatea de achizitionare:" type="radio" value="Inregistrare" />Inregistrare<input name="Modalitatea de achizitionare:" type="radio" value="Transfer" />Transfer<input name="Modalitatea de achizitionare:" type="radio" value="Reinnoire" />Reinnoire</p>
<p><label><strong><span style="color: #ff4500;">Numele domeniului dorit : </span></strong></label><input name="Numele domeniului dorit:" size="32" type="text" value="www.ACESTA.abc" /></p>
<p><label><strong><span style="color: #ff4500;">NS-urile (nameserverele) : </span></strong></label><input name="NS-urile (nameserverele):" type="checkbox" />Doresc nameservere<input name="NS-urile (nameserverele):" type="checkbox" />Nu doresc nameservere</p>
<p><label><span style="color: #ff4500;">Introduceti NS-urile</span> - pentru bifa la Nu doresc nameservere <span style="color: #ff4500;">: </span></label><input name="Introduceti NS-urile:" size="10" type="file" /></p>
<pre><strong><em>Datele de logare la cPanel-ul domeniului</em></strong></pre>
<p><label><strong><span style="color: #ff4500;">Username : </span></strong></label><input name="Username cPanel:" size="29" type="text" /></p>
<p><label><strong><span style="color: #ff4500;">Parola asociata : </span></strong></label><input name="Parola asociata username-ului cPanel:" size="25" type="password" /></p>
<pre><strong><em>Informatii despre efectuarea platii</em></strong></pre>
<p><label><strong><span style="color: #ff4500;">Modalitatea de plata : </span></strong></label><select name="Modalitatea de plata:"><option>Plata prin SMS</option><option>Mandat postal (posta)</option><option>Transfer bancar (virament)</option></select></p>
<pre><strong><em>Datele de contact ale detinatorului</em></strong></pre>
<p><label><strong><span style="color: #ff4500;">Nume Prenume : </span></strong></label><input name="Nume Prenume:" size="31" type="text" /></p>
<p><label><strong><span style="color: #ff4500;">CNP : </span></strong></label><input name="CNP:" size="40" type="text" /></p>
<p><label><strong><span style="color: #ff4500;">Numarul de telefon : </span></strong></label><input maxlength="3" name="Numarul de telefon (A):" size="3" type="text" /> <input maxlength="3" name="Numarul de telefon (B):" size="3" type="text" /> <input maxlength="4" name="Numarul de telefon (C):" size="4" type="text" /></p>
<p><label><strong><span style="color: #ff4500;">Adresa de e-mail : </span></strong></label><input name="Email:" size="30" type="text" /></p>
<pre><strong><em>Datele de contact ale detinatorului in Ro-Mixers</em></strong></pre>
<p><label><strong><span style="color: #ff4500;">Username-ul de pe site : </span></strong></label><input name="Username-ul de pe site:" size="25" type="text" /></p>
<p><label><strong><span style="color: #ff4500;">Username-ul de pe forum : </span></strong></label><input name="Username-ul de pe forum:" size="23" type="text" /></p>
<pre><strong><em>Informatii aditionale</em></strong></pre>
<p><label><span style="color: #ff4500;">Modalitatea prin care ati aflat ca Ro-Mixers vinde domenii internationale : </span></label><textarea cols="81" rows="1" name="Modalitatea prin care ati aflat ca Ro-Mixers vinde domenii internationale:"></textarea></p>
<p style="text-align: center;"><input type="submit" value="Trimite comanda" /> <input type="reset" value="Reseteaza campurile" /></p>
</form>
MarPlo
Mesaje:4343
Valoarea de la atributul "name" (respectiv la preluare cu $_POST in PHP) ar trebui fara spatiu, eventual inlocuit cu liniuta de jos (nume_prenume).
Iin plus, ai adaugat si doua puncte la name="Nume Prenume:".
Trebuie tinut cont de litere mari si mici, de aceea, pt a evita eventuale erori, se obisnueste sa se scrie aceste valori de atribute doar cu litera mica.
- Daca or mai fi alte mici erori de sintaxa, le poti cauta. Ca ajutor, poti folosi in scriptul PHP aceast cod ca sa vezi ce date primeste de la formular, si in functie de acestea poti rezola cum sa faci scriptul.
Iin plus, ai adaugat si doua puncte la name="Nume Prenume:".
Trebuie tinut cont de litere mari si mici, de aceea, pt a evita eventuale erori, se obisnueste sa se scrie aceste valori de atribute doar cu litera mica.
- Daca or mai fi alte mici erori de sintaxa, le poti cauta. Ca ajutor, poti folosi in scriptul PHP aceast cod ca sa vezi ce date primeste de la formular, si in functie de acestea poti rezola cum sa faci scriptul.
Cod: Selectaţi tot
var_export($_POST);
Liaf
Mesaje:36
Am modificat:
Am pus asa in php:
Insa acum apar alte probleme. Fisierele txt care se urca pe site nu ajung pe e-mail corect (au 0 kb si nu se pot deschide).
In Mesaj nu mai apare nimic dupa ce am modificat in php
cu
Am pus asa in php:
Cod: Selectaţi tot
<?php
// Verifica daca au fost trimise datele de la formular
if (isset($_POST['email_']) && isset($_POST['nume_prenume_'])) {
$to = 'comandadomeniu@ro-mixers.eu'; // Adresa unde va fi trimis mesajul
$subiect = 'Comanda domeniu';
$mesaj = $_POST['terminatia_domeniului_<br />modalitatea_de_achizitionare_<br />numele_domeniului_dorit_<br />nameserverele_<br />introduceti_nameserverele_<br />usernameul_cpanel_<br />parola_asociata_usernameului_cpanel_<br />modalitatea_de_plata_<br />nume_prenume_<br />cnp_<br />numarul_de_telefon_a_-numarul_de_telefon_b_-numarul_de_telefon_c_<br />email_<br />usernameul_de_pe_site_<br />usernameul_de_pe_forum_<br />modalitatea_prin_care_ati_aflat_ca_romixers_vinde_domenii_internationale_'];
$from = 'From: '. $_POST['email_'];
// PHP trimite datele la serverul de e-mail
if (mail($to, $subiect, $mesaj, $from)) {
echo 'Comanda dumneavoastra a fost trimisa. Verificati folderul Spam sau Inbox pentru a afla mai multe despre cum efectuati plata.';
}
else {
echo 'Comanda nu a fost trimisa. Unul dintre campuri nu este completat corect.';
}
}
?>
In Mesaj nu mai apare nimic dupa ce am modificat in php
Cod: Selectaţi tot
$mesaj = $_POST['nume_prenume_'];
Cod: Selectaţi tot
$mesaj = $_POST['terminatia_domeniului_<br />modalitatea_de_achizitionare_<br />numele_domeniului_dorit_<br />nameserverele_<br />introduceti_nameserverele_<br />usernameul_cpanel_<br />parola_asociata_usernameului_cpanel_<br />modalitatea_de_plata_<br />nume_prenume_<br />cnp_<br />numarul_de_telefon_a_-numarul_de_telefon_b_-numarul_de_telefon_c_<br />email_<br />usernameul_de_pe_site_<br />usernameul_de_pe_forum_<br />modalitatea_prin_care_ati_aflat_ca_romixers_vinde_domenii_internationale_'];
MarPlo
Mesaje:4343
Trebuie doar un nume simplu la "name" si acelasi la $_POST, fara spatiu, taguri sau alte caractere.
E gresit ghiveciul asta:
Problema nu e de eroare in cod, ci de necunoastere a elementelor de baza si sintaxa PHP.
Poti sa inveti din codul prezentat in link-urile date la primul raspuns, daca ai rabdare sa le studiezi si sa le testezi.
E gresit ghiveciul asta:
Cod: Selectaţi tot
$_POST['terminatia_domeniului_<br />...']
Poti sa inveti din codul prezentat in link-urile date la primul raspuns, daca ai rabdare sa le studiezi si sa le testezi.
Liaf
Mesaje:36
Pai si eu daca am nevoie ca in mail-ul care se trimite, mesajul sa cuprinda toate acele identitati cum fac?
MarPlo
Mesaje:4343
Vezi scriptul din acest tutorial: Trimitere e-mail cu tag-uri HTML si atasament.
Testeaza-l intai asa cum e, fara modificari in cod, sa vezi daca functioneaza; apoi il adaptezi cum stii la formularul pe care-l ai.
Testeaza-l intai asa cum e, fara modificari in cod, sa vezi daca functioneaza; apoi il adaptezi cum stii la formularul pe care-l ai.
Subiecte similare
- Eroare la un formular cu PHP
PHP - MySQL - XML Primul mesaj
Salut. Am si eu o problema. In primul rand nu stiu daca am postat unde trebuie si am cautat pe forum ceva asemanator cu problema mea insa nu am...Ultimul mesaj
Am rezolvat. Multumesc oricum pentru timpul acordat. Am folosit phpmailer pt ca cei de unde am webhostul asa lucreaza. Multumesc inca o data ! - Formular de contact cu upload imagini
Scripturi de pe site Primul mesaj
Salutare si la multi ani!Ultimul mesaj
Revin cu o intrebare pentru scriptul formular de contact, de la pagina: marplo.net/php-mysql/formular_contact
Este...
M-am uitat pe codul din formularul de contact.
Am decis sa nu ma complic cu asa multe adaugari si verificari in acel script.