[ milanzemunac @ 29.02.2012. 14:53 ] @
Pozdrav,

poceo sam da pravim kontakt formu / upitnik za sajt. Kada posetilac popuni upitnik, njegovi odgovori bi trebali da mi stignu na mail. Forma se sastoji od textfildova i checkboxova. Uspeo sam da namestim da mi u mailu stignu podaci iz textfild-ova, ali ne znam sta treba da upisem u php delu koda, pa da dobijem infromacije koji checkboxovi su bili cekirani?? Evo sta sam do sada uradio:

HTML:
<form action="http://www.sajt.com/contact.php" method="post" name="upitnik" class="upitnik">
<input name="cf_name" type="text" class="imekontakt" />
<input name="cf_email" type="text" class="e-mailkontkat" />
<textarea name="cf_message" cols="" rows="" class="porukakontakt"></textarea>
Pitanje: <br/>
Da <input name="Da" type="checkbox" value="Da" /><br/>
Ne <input name="Ne" type="checkbox" value="Ne" />
<input type="submit" class="sendkontkat" value="Send"></form>


PHP:
<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];

$mail_to = '[email protected]';
$subject = 'Upitnik '.$field_name;

$body_message .= 'Name: '.$field_email."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
.....

I sada ne znam kako dalje da nastavim da mi u telu maila stignu i podaci o tome koji checkboxovi su cekirani?

p.s. moje poznavanje php i nije neko, pa bih vas molio za malo detaljnije objasnjenje! :)

Pozz
[ PHPovac @ 29.02.2012. 18:08 ] @
Code (php):

$field_da = $_POST['Da']; //da li je cekirano Da
$field_ne = $_POST['Ne']; //da li je cekirano Ne

$body_message .= 'Da: '.$field_da."\n";
$body_message .= 'Ne: '.$field_ne."\n";
 
[ pajaja @ 29.02.2012. 18:13 ] @
Pogledaj ovaj link, tamo imas primer. U principu se svodi na to da proveris da li je setovana promenljiva sa imenom checkbox-a i njenu vrednost. Inace za ovaj tvoj slucaj bi ti vise odgovarao radio button nego checkbox.
[ milanzemunac @ 01.03.2012. 09:10 ] @
Odlicno! Probao sam ovo sto je PHPovac napisao i radi super! :)
Hvala puno na pomoci!
[ Mikrokontroleri @ 17.09.2017. 16:11 ] @
Imam dosta nejasnoća pa ako bi neko mogao da mi ih razjasni.
Koristim Apache 2.2 koji sam instalirao sa cd-a PHP i My Sql knjige razvoj aplikacija za Web.

Želim da napravim kontakt formu. Želim da kad je korisnik popuni i klikne dugme pošalji da mi ta kontakt forma stigne na mejl.
Nije mi problem html i css.
Ne želim rešenje u vidu koda već da mi neko da savet kako šta da instaliram pošto sam se totalno izgubio.
Našao sam dosta kontakt formi na internetu. Probao sam sa php mail funkcijom,imap protokol,send mail i php mailer. I opet ne mogu da se snađem.

Kod php mail funkcije ne znam šta treba da podesim u mom php.ini fajlu da bi proradila?
Kod send mail sam ukapirao da mi treba xampp.
Php mailer sam skinuo sa githuba i ne mogu da ga pokrenem.
Da li treba da instaliram i xampp?
[ Predrag Supurovic @ 17.09.2017. 20:26 ] @
Moja preporuka je da koristiš biblioteku PHPMailer.

phpmail funkcija je vrlo ograničena i nepouzdana.


A da bi testirao moraš negde imati mail server preko koga ćeš da šalješ tet poruke. Mailer podešavaš tako da šalje poruke preko tog servera.


[ Mikrokontroleri @ 18.09.2017. 10:41 ] @
Znam da PHP mailer treba da skinem sa githuba. Znam i link.
Kad ga skinem šta dalje?
Da li treba da skinem via composer?
Na koji mail server misliš?
Da li si mislio na xampp?
Nov sam u programiranju . Znam da mogu da uradim nego mi fali još malo da rešim moj problem.
[ djoka_l @ 18.09.2017. 12:22 ] @
Pretpostavljam da si sve to instalirao na Windowsu.
Na Linuxu, PHP koristi sendmail da šalje mailove (to je deo Linuxa, ne funkcija PHP-a). Na Win platformi nemaš sendmail, pa treba u php.ini da staviš SMTP=<mailhost>. Dakle, na Win mora da se koristi SMTP protokol direktno, dok na Linuxu za slanje maila PHP koristi default Linuxov mailer.
Naravno, na adresi koju si naveo u php.ini zaista treba i da bude podignut mail server koji sluša na portu 25, ili nekom drugom, kako si podesio u php.ini

Pogledaj ovo objašnjenje: https://stackoverflow.com/ques...l-with-php-from-an-smtp-server
[ Nemanja Avramović @ 18.09.2017. 14:09 ] @
Da bi poslao mejl treba ti SMTP server preko kojeg ćeš poslati mejl. Ti možeš lokalno da instaliraš SMTP server ali će verovatno svi mejlovi poslati preko tog SMTP-a završiti u spamu (u suprotnom bi svako mogao da digne SMTP server lokalno i da spamuje ljude koliko hoće). Ja za testiranje koristim www.mailtrap.io, vrlo je jednostavan, kad se registruješ tamo dobićeš smtp host, korisničko ime i password koje koristiš za PHPMailer i svaki mejl koji se pošalje će ti se pojaviti tamo na njihovom sajtu, tako da možeš biti siguran da niko neće zaista dobiti email dok testiraš. Kad završiš testiranje samo zameniš mailtrap podatke sa realnim podacima tvog smtp servera i to je to.

Što se PHPMailera tiče, nebitno je da li ćeš da kloniraš repo, skineš ZIP i raspakuješ ga u folder svog projekta, ili ćeš ga instalirati preko composera, uvek ga koristiš na isti način - jedino će ti preko composera biti automatski dostupan jer se učitava preko composerovog autoloadera. Detaljnije uputstvo za instalaciju i korišćenje PHPMailera imaš ovde: https://github.com/PHPMailer/PHPMailer
[ Mikrokontroleri @ 18.09.2017. 15:37 ] @
Ako instaliram mailtrap i koristim PHP Mailer onda mi za sada ne treba xampp.
Da li sam u pravu?
Znam da će mi Xampp trebati na kraju. Kada ceo sajt završim.
Meni samo treba da testiram moju kontakt formu da li radi ili ne.

Puno Vam hvala na dosadašnjoj pomoći i odgovorima.
[ Predrag Supurovic @ 18.09.2017. 15:38 ] @
Jel ti uopšte znaš šta je XAMPP i kako radi PHP?
[ Mikrokontroleri @ 18.09.2017. 15:48 ] @
Znam da je Xampp web server. Web server na kome je smešten moj sajt.
Php je namenjen za izradu dinamičkog veb sadržaja.
[ VladaSu @ 18.09.2017. 17:05 ] @
Xampp nije webserver.
Tebi je potrebano
1. apache webserver kako bi pokrenuo php
2. Neki mail server kako bi slao i primao emailove u lokalu
3. MySql je sever za bazu podataka i obicno svaki sajt koji ima php radi i sa bazom (mada u tvom slucaju ne treba)

XAMPP je program koji umesto tebe instalira i podesi ova tri servera (ne mora bas ova tri i moze jos neke, bilo koja kombinacija)
Znaci to nije server vec obican program koji instalira i automatski podesi ostale programe

Sve mozes da instaliras bez xampp-a ali ti je potrebno malo znanje za podesavanje koje xampp odradi umesto tebe a ako koristis xampp posle instalacije servera mozes da izbrises xampp i ostaje ti php, apache, mailer i mysql ili sta si vec instalirao.
Xampp ne smeta da ostane radi lakseg monitoringa servera. To je vrlo mali i nezahtevan program koji ne zauzima resurse.
[ Mikrokontroleri @ 18.09.2017. 18:18 ] @
Koristim apache verzije 2.2 koji sam dobio uz knjigu PHP i MySQL: razvoj aplikacija za Web,
prevod 4. izdanja Luke Welling, Laura Thomson. Napravio sam jedan sajt koji sam prethodno napravio bez kontakt forme i koristio sam apache da pokrenem php fajl.
Znam da imam dosta neznanja oko programiranja ali spreman sam da učim.

Ako mi bude trebala neka pomoć, ponovo ću vas pitati za pomoć.

Društvo hvala Vam još jednom na pomoći i odgovorima.
[ Zlatni_bg @ 18.09.2017. 19:16 ] @
Zakupi sebi web hosting. Instaliraj Notepad++ i plugin za FTP.
[ gost12 @ 19.09.2017. 15:20 ] @
Ovo je razina više vjerojatno još uvijek debelo izvan tvojeg znanja jer zahtjeva hrpu predznanja, ali ti na localhostu niti ne želiš slati mailove. Ti želiš vidjeti eventualno kako bi E-mail izgledao i da je kod za poziv uredno poslan.
Zato je potreban dependency injection, pa imaš dvije klase koje implamentiraju interfejs IMailer npr, koja ima send funkciju. Onda lokalno koristiš npr FakeMailer koji na send upiše sadržaj mail-a u fajl ili u nekim frameworcima ti ga mogu lupiti u nekav debugger bar, a na produkciji koristiš SmtpMailer implementaciju koja tvoj mail uredno šalje dalje. To je kako to profesionalci rade.
Kupnja shared hostinga i ftp je IMHO bezveze i to je bolje preskočiti, uzeti virtualku i raditi preko ssh, deploy raditi preko gita direktno composer pakete i sve ostalo...
[ Mikrokontroleri @ 19.09.2017. 16:13 ] @
Evo sta sam uradio do sada.
1.Prijavio sam se na imatrap.io I našao sam sledeće podatke: SMTP Host: smtp.mailtrap.io Port: 25 or 465 or 2525 itd.
2.Skinuo sam verziju PHP mailerv5.2-stable branch.
3.U compser fajlu sam dodao "phpmailer/phpmailer": "~6.0".
4.U mom php folderu sam napravio includes folder u koji sam smestio class.phpmailer.php , class.smtp.php i PHPMailer Autoload.php.
5.U php ini. sam podesio putanju koja sada izgleda ovako:include_path = "C:\php\includes\PHPMailer\PHPMailerAutoload.php"

Da li sam dobro popunio ovaj php fajl?

Code:
<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.mailtrap.io';  // Specify main and backup SMTP servers
$mail->SMTPAuth =  PLAIN, LOGIN and CRAM-MD5;                               // Enable SMTP authentication
$mail->Username = 'cdf0b5feb6e140';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port =  25 or 465 or 2525;                                    // TCP port to connect to

$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
$mail->addAddress('[email protected]');               // Name is optional
$mail->addReplyTo('[email protected]', 'Information');
$mail->addCC('[email protected]');
$mail->addBCC('[email protected]');



$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}


Šta treba da popunim u ovom delu?

Code:
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
$mail->addAddress('[email protected]');               // Name is optional
$mail->addReplyTo('[email protected]', 'Information');
$mail->addCC('[email protected]');
$mail->addBCC('[email protected]');



Unapred Vam hvala na pomoći i odgovorima.


[Ovu poruku je menjao Nemanja Avramović dana 20.09.2017. u 23:31 GMT+1]
[ Zlatni_bg @ 20.09.2017. 06:25 ] @
Ne radis sa razumevanjem. To ti je glavni problem i dzaba ti ucenje dalje. Samo prva 2 su ti bitna. Od koga i kome.
[ Nemanja Avramović @ 20.09.2017. 22:33 ] @
Da li ti uopšte znaš šta je composer? Ne deluje mi da znaš, tako da za početak zaobiđi composer, fokusiraj se na slanje mejla dakle, ne treba ti composer.json

mailtrap.io ti je lažni SMTP server, i koristi se samo i isključivo za razvoj/testiranje. Ni jedan mejl neće biti poslat preko mailtrapa, ali će ti se pojaviti u tvom "inboxu" na mailtrap.io, i tako ćeš znati da ti je kod za slanje mejla dobar. Kad uploaduješ fajl(ove) na sajt, onda promeniš podatke za SMTP tako da koristiš neki pravi SMTP server koji će zaista poslati poruke.

Za uspešno slanje mejla neophodno je da staviš samo od koga i kome ide mejl (pored podešavanja za smtp):

Code:
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Joe User'); // Add a recipient


Ako ti je PHPMailerAutoload.php u includes folderu, onda ga moraš odatle i učitati:

Code:
require 'includes/PHPMailerAutoload.php';


Ako tamo piše port "25 or 465 or 2525" ne znači da bukvalno tako ubaciš nego da ubaciš jedan od ta tri

I ne diraj include_path u php.ini nipošto
[ Zlatni_bg @ 21.09.2017. 02:57 ] @
Pa rekoh ja, necu da se pravim pametan, svi smo mi nekad zurili da zavrsimo posao sto pre, ali ove osnove ne mogu da se preskacu. Meni i dalje najbolje zvuci zakup web hostinga - pa ima ih i free i dalje, umesto razvoja na LAMP/XAMP itd. Koristi sendmail i resi se muka. Drugo, ovo je verovatno mesanje OOP i proceduralnog, kul je to, moze da se mesa, ali je losa praksa.

Pocni ispocetka. Ne zaleci se. Napravi formu u HTMLu. Okaci ovde i pomoci cemo ti oko PHP-a. Odradi i PHP koliko mozes.
[ gost12 @ 21.09.2017. 10:34 ] @
Može i smtp4dev koristiti isto na localhostu...
To je isto dobra fora, mail neće biti poslan, ali ćeš ga odmah vidjeti u app-u
https://smtp4dev.codeplex.com/
[ Mikrokontroleri @ 22.09.2017. 12:52 ] @
Prvo želim da Vam se izvinim tek sam juče kasno posle popodne video da ste mi odgovorili.

Citat:
Zlatni_bg: Pa rekoh ja, necu da se pravim pametan, svi smo mi nekad zurili da zavrsimo posao sto pre, ali ove osnove ne mogu da se preskacu. Meni i dalje najbolje zvuci zakup web hostinga - pa ima ih i free i dalje, umesto razvoja na LAMP/XAMP itd. Koristi sendmail i resi se muka. Drugo, ovo je verovatno mesanje OOP i proceduralnog, kul je to, moze da se mesa, ali je losa praksa.

Pocni ispocetka. Ne zaleci se. Napravi formu u HTMLu. Okaci ovde i pomoci cemo ti oko PHP-a. Odradi i PHP koliko mozes.


Evo napravio sam formu u Html-u.

Code:
                
<html>
<head>
<title>Write to us</title>
</head>
<body>
<h1>Contact</h1>
<p>Please tell us what you think.</p>
<form action="contact.php" method="post">
<p>Your Name :<br>
<input name="name" type="text" size="40"></p>
<p>Your Email :<br>
<input name="email" type="text" size="40"></p>
<p>Your Message:<br>
<textarea name="message" rows="8" cols="40" wrap="virtual">
</textarea>
</p>
 <p>
<input type="submit" value="Send">
</p>
</form>
</body>
</html>


Evo ga contact.php.

Code:

<?php

//create short variable names
$name=$_POST['name'];
$email=$_POST['email'];
$message=$_POST['message'];

require "phpmejl/PHPMailerAutoload.php";
        $mejl= new PHPMailer();
    $mejl->isSMTP();
    $mejl->SMTPDebug=0;
    $mejl->Debugoputpu='html';
    $mejl->Host= 'smtp.mailtrap.io';
    $mejl->Port= 465;
    $mejl->SMTPAuth = PLAIN;
    $mejl->SMTPSecure='tls';

    $mejl->Username = "cdf0b5feb6e140";
    $mejl->Password = "a8403b400a0d6b";
    
    $mejl->setFrom('mail posiljaoca');
    $mail->setName('ime posiljaoca');
    
    $mejl->AddAddress('adresa na koju se šalje');
    
    $mejl->Subject="subject maila";
    $mejl->Body = "tekst poruke";

    if(!$mejl->send()) {
    echo "Mejl nije poslat". $mejl->ErrorInfo;

    }

    else{

    echo "Mejl je uspesno poslat";
    }

?>
 



Citat:
Nemanja Avramović: Da li ti uopšte znaš šta je composer? Ne deluje mi da znaš, tako da za početak zaobiđi composer, fokusiraj se na slanje mejla :) dakle, ne treba ti composer.json

mailtrap.io ti je lažni SMTP server, i koristi se samo i isključivo za razvoj/testiranje. Ni jedan mejl neće biti poslat preko mailtrapa, ali će ti se pojaviti u tvom "inboxu" na mailtrap.io, i tako ćeš znati da ti je kod za slanje mejla dobar. Kad uploaduješ fajl(ove) na sajt, onda promeniš podatke za SMTP tako da koristiš neki pravi SMTP server koji će zaista poslati poruke.

Za uspešno slanje mejla neophodno je da staviš samo od koga i kome ide mejl (pored podešavanja za smtp):

Code:
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Joe User'); // Add a recipient


Ako ti je PHPMailerAutoload.php u includes folderu, onda ga moraš odatle i učitati:

Code:
require 'includes/PHPMailerAutoload.php';


Ako tamo piše port "25 or 465 or 2525" ne znači da bukvalno tako ubaciš nego da ubaciš jedan od ta tri :D

I ne diraj include_path u php.ini nipošto :)


I trudim se da se fokusiram na slanje mejla. Ovo sve što si mi naveo to sam juče probao u primeru koji sam video na jutjubu php škole.
[ Nemanja Avramović @ 24.09.2017. 18:20 ] @
I sta kaze kad probas taj poslednji kod koji si postavio?
[ Mikrokontroleri @ 29.09.2017. 14:10 ] @
Našao sam rešenje za moj problem a to je formspree.io.
Probao sam i radi.
Evo je forma.

Code:
   
<form action="https://formspree.io/[email protected]"Use our URL as form's action
      method="POST"Forms must POST>
     <input type="text" name="name">
     <input type="email" name="_replyto"Use advanced attributes>
     <input type="submit" value="Send">When user submits, we'll email data to you
 </form>

  


Da li ste koristili formspree.io.?
[ Mikrokontroleri @ 29.09.2017. 15:34 ] @
Ovo resenje je za staticki sajt. Zaboravio sam da napišem.
[ Mikrokontroleri @ 29.09.2017. 16:29 ] @
Citat:
Nemanja Avramović:
I sta kaze kad probas taj poslednji kod koji si postavio?



Evo šta kaže:

Mejl nije poslatExtension missing: openssl


Na ovom sajtu https://indy.fulgan.com/SSL/ sam našao openssl.

Koji da uzmem i kako da ga instaliram?
[ Zlatni_bg @ 30.09.2017. 00:32 ] @
Hahah, nikako lako. Iskreno, kad imas toliko problema sa obicnim mailom i ne zelis da naucis nista, zelis resenje koje ce raditi odmah, zasto se uopste i trudis? Plati nekom crvenu da ti zavrsi posao.

Ovo je forum za ljude koji su spremni da uce. A ne da kopiraju kod i pitaju sto ne radi a da ga pritom ni ne procitaju.
[ Mikrokontroleri @ 04.10.2017. 10:56 ] @
Došao sam do ovog koraka u kome mi je Nemanja objasnio.
Podesio sam sve podatke sa mailtrapa,pronašao sam gde sam grešio i mailtrap radi.
I svaki mejl koji sam poslao svaki se pojavio na mailtrap.
Skinuo sam hmailserver i ne znam kako da ga podesim?
Samo mi je to još ostalo i završio sam.
[ Nemanja Avramović @ 06.10.2017. 18:44 ] @
Ne treba ti hmailserver, trebaju ti podaci za smtp server na hostingu koji koristiš za hosting sajta (ako uopšte imaju to :D) i onda njih ubaciš umesto mailtrap.io podataka. Ostatak koda ne diraš jer ako ti stižu mejlovi na mailtrap znači da kod za slanje radi.

Instalacija i konfigurisanje email servera da radi kako treba (da mejlovi ne idu u spam) je viša matematika u ovom trenutku i to ti ne treba u životu.
[ Mikrokontroleri @ 06.10.2017. 19:12 ] @
U međuvremenu sam instalirao i xampp.
Da li bih mogao da iskoristim nekako i kako Mercury32 I FilleZilla FTP server?
Pitam zato što planiram da pravim još nekoliko sajtova i moram dobro da razmislim koji bih hosting trebao da uzmem da bih postavio sajt.
Sajtove koje pravim želim da ih dodam u moj CV da bih kada konkurišem na neki oglas da bi poslodavci mogli da vide šta znam ili ne znam.
Znam za github i tu planiram da postavim moje sajtove.

Što se tice mailtrapa. Imaju ovo recimo za CakePHp. Postoje i ostale dodatne biblioteke.


CakePHP comes with an email library that already supports SMTP:
Email::configTransport('mailtrap', [
'host' => 'smtp.mailtrap.io',
'port' => 2525,
'username' => 'cdf0b5feb6e140',
'password' => 'a8403b400a0d6b',
'className' => 'Smtp'
]);


[Ovu poruku je menjao Mikrokontroleri dana 06.10.2017. u 20:33 GMT+1]
[ Nemanja Avramović @ 06.10.2017. 19:36 ] @
Prvo pročitaj malo čemu služe Mercury32 i FileZilla server... mislim, možeš da ih iskoristiš, ako planiraš da osnivaš hosting kompaniju.

Citat:
Što se tice mailtrapa. Imaju ovo recimo za CakePHp. Postoje i ostale dodatne biblioteke.


OK. Kad počneš da koristiš CakePHP onda možeš da koristiš konfiguraciju za njega
[ Mikrokontroleri @ 06.10.2017. 19:41 ] @
Da li mogu da Mercury32 i FileZilla server iskoristim u mom slučaju?
Znam čemu služe Mercury32 a za FileZilla server sam tek danas poceo da istražujem.
Da li postoji neki free SMTP server?

[ Zlatni_bg @ 06.10.2017. 19:49 ] @
Uvek mozes da se registrujes na nekom e-mail servisu poput gmaila i koristis njihov SMTP server.

Besplatni SMTP servisi nikako nisu dobro resenje jer uglavnom sluze sa spamovanje.
[ Mikrokontroleri @ 06.10.2017. 19:55 ] @
Imam otvoren gmail nalog i pokušao sam nešto da uradim i nisam uspeo ali planiram da sutra opet pokušam.
[ Mikrokontroleri @ 09.10.2017. 10:02 ] @
Ljudi rešio sam moj problem. Jedan drugar mi je pomogao. Rekao mi je za sajt jotform.com
Nikakav PHP niti nikakav email server mi nije potreban. Pomoću jotform.com sam dobio ono što želim.

Još jednom Želim da Vam se zahvalim što ste mi pomogli i što ste me saslušali.

Puno Vam Hvala.