|
Poslao: 04 Sep 2012 14:27
|
offline
- Tamtitam
- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
Da, videla sam i ja to za localhost - mozda su onda potrebni neki drugi user i pass, ali to nemam.
Vidi, meni radi forma (vidi prethodni post) ali mi Rastina zavrsava u spam kanti. Samo mi je jos to preostalo da resim.
|
|
|
|
Poslao: 04 Sep 2012 15:02
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
to moras resiti preko DNS-a, preko SPF recorda.
sa kog servera saljes email?
koji domen koristis u From: polju?
|
|
|
|
Poslao: 04 Sep 2012 15:30
|
offline
- Tamtitam
- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
Server je jedan mnogo jak norveski provajder, definitivno na beloj listi.
Inace, za from uzima adresu koju korisnik upise. Moze biti bilo sta sto "lici" na email.
Samo da nadjem sta to Rasta ima, sto drugi nemaju... ili obrnuto
|
|
|
|
|
Poslao: 06 Okt 2012 23:35
|
offline
- Tamtitam
- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
^ Uopste nema veze, posto radi Nasla sam neku noviju verziju tog Mailera, i radi ko sat!
Nego, PHPa nije bilo na serveru, pa su to morali da instaliraju.
|
|
|
|
|
Poslao: 12 Sep 2013 14:52
|
offline
- Lackeeee
- Građanin
- Pridružio: 23 Okt 2011
- Poruke: 163
|
Kod mene uspesno radi skripta, na localhost-u, ali samo kada dodam polje $mail->Port = 465;, tako da kompletna skripta izgleda:
<?php
session_start(); //startujemo sesiju
function IsValid($mail) {
$et = strpos($mail,"@"); //provera na kojoj se poziciji nalazi znak @
if ($et >= 1) { //ako ima neceg ispred @
$rest = substr($mail,$et + 1,strlen($mail) - $et); //uzimamo ostatak adrese, iza @
$dot = strpos($rest,"."); // trazimo prvo pojavljivanje tacke iza @
if ($dot >= 2) { //ako ima bar 2 slova ispred tacke
$dotrest = strlen(substr($rest,$dot + 1,strlen($rest) - $dot)); //koliko slova ima iza tacke
if ($dotrest >= 2) { //ako ima vise od ili jednako 2
return true; //mail je validan
}
else {
return false; //ima manje od 2, nije validan
}
}
else {
return false; //manje od 2 slova ispred tacke, nije validan
}
}
else {
return false; //nema niceg ispred @, nije validan
}
}
$value = array("","","","");
$allset = false; //forma nije spremna za slanje
$error = ""; //nema gresaka u popunjavanju forme
$poslato = false;// forma nije poslata (jos uvek)
if (isset($_POST['posalji'])) { //provera da li je forma popunjena
$allset = true; //pretpostavljamo da su svi uneti podaci tacni
for ($i=0;$i<=3;$i++) { //broj 3 oznacava koliko polja imamo
$label = "value" . $i; //pripremamo "ime" polja
if (isset($_POST[$label]) and !empty($_POST[$label])) { //provera da li je polje popunjeno
$value[$i] = $_POST[$label]; //ako jeste, prihvatamo podatke
}
else {
$value[$i] = ""; //ako nije, dodeljujemo "praznu" vrednost promenljivoj
}
}
if (!IsValid($value[1])) { //provera da li je adresa validna
$allset = false; //forma nije spremne za slanje
$error = "Uneta e-mail adresa nije validna."; // objasnjenje greske
}
$obavezna = array("0","1","3"); //brojevi obaveznih polja
$o = count($obavezna) - 1; //brojanje obaveznih polja
for ($i=0;$i<=$o;$i++) {
$op = $obavezna[$i]; //uzimamo broj obaveznog polja
if ($value[$op] == "") { //provera da li je polje prazno
$allset = false; //forma nije spremna za slanje
$error = "Niste popunili sva obavezna polja."; //objasnjenje greske
}
}
if ($allset) { //ako je forma spremna za slanje
if (isset($_SESSION['floodstop'])) { //provera da li je poruka poslata u toku sesije
$slanje = $_SESSION['floodstop']; //"uzimamo" vreme kad je poslata
$sada = time(); //"uzimamo" trenutno vreme
$vreme = $sada - $slanje; //razlika u vremenu
}
else {
$vreme = 300; //ako nije, neka razlika bude 5 minuta
}
if ($vreme >= 300) { //ako poruka nije poslata u zadnjih 5 minuta
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "mail.server.com"; //podesavanje servera
$mail->SMTPAuth = true; //server zahteva password
$mail->Username = "username@server.com"; //korisnicko ime
$mail->Port = 465;
$mail->Password = "123456"; //password
$mail->From = $value[1]; //mail posiljaoca
$mail->FromName = $value[0]; //ime posiljaoca
$mail->AddAddress("kontakt@server.com"); //adresa na koju se salje
$mail->Subject = $value[2]; //subject maila
$mail->Body = stripslashes($value[3]); //tekst poruke
$mail->CharSet = "utf-8"; //"ukljucuje" cirlicna slova, kao i latinicna sa kvacicama
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->AltBody="Ova poruka koristi HTML enkoding, da bi ste je videli morate da ukljucite HTML podrsku u Vasem mail klijentu!";
if ($mail->Send()) {
$poslato = true; //poruka je poslata
$_SESSION['floodstop'] = time(); //belezimo vreme slanja
}
else {
$error = "Mail nije poslat. Pokusajte ponovo."; //objasnjenje greske
}
}
else { //ako jeste poslata u zadnjih 5 minuta
$error = "Nije moguce poslati poruku u razmaku manjem od 5 minuta."; //objasnjenje greske
}
}
}
?>
<html>
<head>
<title>PHP Tutorijal: Kontakt forma</title>
</head>
<body>
<?php
if ($poslato) { //ako je poruka poslata
?>
Vasa poruka je uspesno poslata.
<?php
}
else { //ako nije poslata, prikazacemo formu
if (!empty($error)) { //ako postoji greska
echo "<div>$error</div>"; //prikazacemo je
}
?>
<form action="kontakt.php" method="post">
Ime i prezime: <input type="text" name="value0" value="<?php echo $value[0]; ?>"><br>
E - mail adresa: <input type="text" name="value1" value="<?php echo $value[1]; ?>"><br>
Naslov poruke: <input type="text" name="value2" value="<?php echo $value[2]; ?>"><br>
Tekst poruke: <textarea name="value3" cols="10" rows="3"><?php echo $value[3]; ?></textarea><br><br>
<input type="submit" value="Posalji" name="posalji">
</form>
<?php
} //kraj prikazivanja forme
?>
</body>
</html>
|
|
|
|
Poslao: 23 Okt 2013 16:57
|
offline
- m4rk0
- Administrator
- Administrator tech foruma
- Marko Vasić
- Gladijator - Maximus Decimus Meridius
- Pridružio: 14 Jan 2005
- Poruke: 15766
- Gde živiš: Majur (Colosseum)
|
if (isset($_POST[$label]) and !empty($_POST[$label]))
Zasto moraju da se koriste i isset i !empty kod provere popunjenosti ?
|
|
|
|
|