[ angiemilney @ 24.12.2007. 11:56 ] @
Imam problem oko pravljenja kontakt forme, obzirom da sam totalni pocetnik sto se tice programiranja i mogu da kazem da nemam pojma nista molim vas da pogledate code dole i da mi objasnite sledece:
- Hocu da korisnik bude obavezan da popuni sledeca polja ime, prezime, mesto i email, a da ostalo ne mora da unese .
Meni ova skripta zahteva da mora sve da bude popunjeno! Inace skriptu sam skinula sa neta i malo "obradila" :)
Code:

<?php
$EmailFrom =Trim(stripslashes($_POST['korisnikov_mail2']));
$EmailTo = "[email protected]";
$Subject = "kontakt";
$ime = Trim(stripslashes($_POST['ime'])); 
$prezime = Trim(stripslashes($_POST['prezime'])); 
$email = Trim(stripslashes($_POST['korisnikov_mail2'])); 
$firma = Trim(stripslashes($_POST['firma'])); 
$adresa = Trim(stripslashes($_POST['adresa'])); 
$mesto = Trim(stripslashes($_POST['mesto'])); 
$telefon = Trim(stripslashes($_POST['telefon'])); 
$poruka = Trim(stripslashes($_POST['poruka'])); 


// validation
$validationOK=true;
if (Trim($telefon)=="") $validationOK=false;
if (!is_numeric($telefon)) $validationOK=false;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

// prepare email body text
$Body = "";
$Body .= "ime: ";
$Body .= $ime;
$Body .= "\n";
$Body .= "prezime: ";
$Body .= $prezime;
$Body .= "\n";
$Body .= "email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "firma: ";
$Body .= $firma;
$Body .= "\n";
$Body .= "adresa: ";
$Body .= $adresa;
$Body .= "\n";
$Body .= "mesto: ";
$Body .= $mesto;
$Body .= "\n";
$Body .= "telefon: ";
$Body .= $telefon;
$Body .= "\n";
$Body .= "poruka: ";
$Body .= $poruka;
$Body .= "\n";

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.htm\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>


Edit: Koristi code tagove

[Ovu poruku je menjao dakipro dana 24.12.2007. u 13:08 GMT+1]
[ Predrag Gajic @ 24.12.2007. 13:42 ] @
Dodas ovako nesto
Code:

if(empty($ime) || empty($email) || empty($prezime) || empty($mesto))
 {
        echo "Greska";
    }
else
{
//sve je popunjeno ides dalje sa procedurom

}
[ glavince @ 24.12.2007. 14:31 ] @
Citat:
Predrag Gajic: Dodas ovako nesto
Code:

if(empty($ime) || empty($email) || empty($prezime) || empty($mesto))
 
}


Ovako ce proci i ako se ukuca space (prazan prostor) u textfield.

Ja bi uradio ovako

Code:

(trim($_POST['ime']) != '') ? $ime = stripslashes($_POST['ime']) : $error[] = 'error ime';
(trim($_POST['prezime']) != '') ? $prezime = stripslashes($_POST['prezime']) : $error[] = 'error prezime';

if($error) {
    while (list($key,$value) = each($error)) {
    echo $value;
    }
} else {
//sve je popunjeno ides dalje sa procedurom
}
[ Inspector @ 28.12.2007. 09:19 ] @
E bas super tema taman sam i ja hteo da postavim ovo pitanje !!! Ja se sa ovim cimam vec 3 dana i nemogu da ukapiram gde mi je problem.... Ajde posto ste vi ovde iskusniji od nas pomozite nama pocetnicima ! Evo i kako sam odradio kod tacnije kopirao :) !

HTML koji sam postavio na sajt :

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Kontakt</title>
<script type="text/javascript">
   function provera() {
      if(document.mail.ime.value.length<1 || document.mail.ime.value.length>15) {
         alert("Niste uneli Vase ime ili ste uneli preko 15 karaktera za ime sto nije dozvoljeno !");
         return false;
      }
      if(document.mail.email.value.length<1) {
         alert("Niste uneli e-mail adresu !");
         return false;
      }
      if(document.mail.email.value != "") {
         var ispravanmail=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
         var promenljiva = ispravanmail.test(document.mail.email.value)
         if (promenljiva == false){
            alert("Unesite validnu e-mail adresu !")
            return false;
         }
      }
      if(document.mail.naslov.value.length<1) {
         alert ("Niste uneli naslov poruke !");
         return false;
      }
      if(document.mail.poruka.value.length<10) {
         alert("Unesite komentar duzi od 10 karaktera !");
         return false;
      }
   return true;
   }
</script>
</head>
<body>
<form name="mail" action="mail.php" method="post">
<table border="0" width="300" align="center">
   <tr>
      <td>Vase ime</td>
      <td><input type="text" name="ime"></td>
   </tr>
   <tr>
      <td>E-mail</td>
      <td><input type="text" name="email"></td>
   </tr>
   <tr>
      <td>Naslov</td>
      <td><input type="text" name="naslov"></td>
   </tr>
   <tr>
      <td colspan="2">
      <fieldset>
           <legend class="leftm">Poruka</legend>
           <textarea name="poruka" cols="30" rows="4"></textarea>
      </fieldset>
      </td>
   </tr>
   <tr>
      <td colspan="2"><input type="submit" value="Posalji" onClick="return provera();"></td>
   </tr>
</table>


</form>
</body>
</html>

MAIL.PHP koji sam postaivio takodje na sajt :

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>php mail</title> 
</head> 
<body> 
<div align="center"> 
<?php 
$to = '[email protected]';
$ime = $HTTP_POST_VARS['ime']; 
$email = $HTTP_POST_VARS['email']; 
$nasvlov = $HTTP_POST_VARS['naslov']; 
$poruka = $HTTP_POST_VARS['poruka']; 
$message = "Mail forma site http://www.balkan-maps.com\n\n" . $poruka . "\n\nIme: " . $ime . "\nKorisniku možes odgovoriti na ovaj mail: " . $email;
if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) { 
   echo "<p align='center'>Nije vam tacan mail !</p>"; 
   echo "<a  href='javascript:history.back(1);'>Back</a>"; 
}
elseif ($ime == "") { 
   echo "<p align='center'>Niste uneli ime !</p>"; 
   echo "<a href='javascript:history.back(1);'>Back</a>"; 
}
elseif ($nasvlov == "") { 
   echo "<p align='center'>Nema naslova</p>"; 
   echo "<a href='javascript:history.back(1);'>Back</a>"; 
}
elseif ($poruka == "") { 
   echo "<p align='center'>Niste uneli tekst poruke !</p>"; 
   echo "<a href='javascript:history.back(1);'>Back</a>"; 
}
elseif (mail($to,$nasvlov,$message)) { 
  echo "<p align='center'>Mail je prosledjen</p>"; 
  echo "<a href='index.html'>Pocetna</a>"; 

else { 
  echo "<p align='center'>Neka greska</p>"; 

?> 
</div> 
</body> 
</html>


E sad zasto ovo nee da sljaka ? Zamolio bi vas za pomoc posto sam i ja takodje pocetnik pa me ispravite gde sam ovde pogresio... Koliko ja znam posto sam kod beotela kod njih je omogucena mail funkcija ... U svakom slucaju ispravite me gde sam pogresio ili ako nisam da li postoji neki drugi nacin pravljenja kontakt strane a da to nije preko ove mail funkcije...

edit: Nemanja: Kod u code tagove!

[Ovu poruku je menjao Nemanja Avramović dana 28.12.2007. u 17:22 GMT+1]
[ Nemanja Avramović @ 28.12.2007. 16:24 ] @
A da napišeš koju ti grešku ispisuje u browseru?

Takođe, pametno bi bilo da odradiš nešto kao $poslato = @mail... pa posle da proveravaš da li je $poslato postavljeno na TRUE ili FALSE
[ Inspector @ 28.12.2007. 22:11 ] @
Fazon je sto mi se pojavi samo ono "Neka greska" ! Evo idite na sajt pa pogldajte sami http://www.balkan-maps.com/ ... Ako neko zna u cemu je problem neka mi pomogne ...
[ Nemanja Avramović @ 28.12.2007. 22:22 ] @
Pa ko zna koji ti od ovih silnih IFova vraća FALSE...? Zato ti i kažem da posebno odradiš proveru za mail() funkciju.
[ kelja @ 28.12.2007. 22:39 ] @
Nije problem u kodu, sad sam ga testirao. Verovatno ti na serveru nije ukljucena mail() opcija.

A mozda ima veze i sa ovim:

http://www.trap17.com/index.ph...lem-http_post_vars_t33824.html

znaci, tamo gde je http_post_vars, probaj da stavis samo $_POST['varijabla']...
[ Inspector @ 28.12.2007. 23:14 ] @
Nevredi izgleda mail funkcija nije ukljucena.... Sada me zanima jel to mogu sam da upalim ili moram da zovem ove iz beotela. Ja ih fazon zvao jutros javi se lik i kaze da imamo mail dobijes i mail kad kupis hosing ja reko ako ovi znaju sta je mail funkcija :) ... Al ajde nema veze ja mislim da to i sam mogu da podesim ili gresim ? Posto sam u FILE MANAGER-u dobio zilion foldera i u svakom mogu da dodajem nesto pa je moguce da mogu da ubacim i nesto sto ce mi pomoci za ovo... Malo sam trazio na netu i nasao sam phpmailer-1.73 ali fazon je sto ja ne znam kako to funkcionise a kazu da moze i preko toga da se podesi kontakt strana samo treba da dodam neka cuda iz njega u file menager...
[ Nemanja Avramović @ 28.12.2007. 23:19 ] @
Za mail() funkciju moraš da ih zoveš, mada možeš da koristiš i SMTP da šalješ poruke, ako si dobio od njih mejl nalog i SMTP podatke...
[ Inspector @ 29.12.2007. 00:30 ] @
Pa dobio sam mail nalog samo mi recite kako to da odradim preko SMTP-a posto to nikad nisam radio ?
[ dakipro @ 29.12.2007. 10:58 ] @
Pa to obicno ide tako sto potrazis malo po netu i tutorijalima kako, pa onda kad zapne, jelte, pitas konkretno
Mogu ti preporuciti http://www.swiftmailer.org/ , koristim ga i sasvim je ok (nisam koristio do sada neke toliko advanced stvari,ali sve sto mi je palo napamet, podrzava). Takodje je transparentan prelaz sa mail() na SMTP konekciju, ostatak koda nema potrebe da menjas.
[ Jezdimir Lončar @ 29.12.2007. 11:01 ] @
Ma brate o ovome je bilo price (sto se SMTPa tice) koliko hoces.
Pogledaj malo forum.
Google: "PHP Mailer"
SWiftMailer
[ Inspector @ 29.12.2007. 14:36 ] @
Tesko da cu i ovo da odradim zato sto kada god pokusam da napravim folder u "lib" prijavljuje mi da nece - izgleda da su mi i tu roknuli zabranu da nemogu nista da dodajem... Nego ja sam razmisljao o jednoj drugoj fori : da napravim folder kod mene na serveru i kada neko klikne na dugme posalji da mi neki php fajl napravi .txt fajl koji bi isao u taj folder (to bi mi bio kao mini mail koji ionako netreba cesto da posecujem a i izbecicu spam) ... Sta mislite jel ovo izvodljivo ?
[ kelja @ 29.12.2007. 17:27 ] @
Izvodljivo, mada bih ja bih na tvom mestu promenio hosting, ali dobro.
Ove ce ti stvari trebati:
http://www.trap17.com/index.ph...te-files-using-php_t26601.html
[ Inspector @ 29.12.2007. 19:05 ] @
Nije im toliko los host koliko su ga mnogo ogranicili... Stvarno server im dosada bar dok sam ja gledao a gledm cesto nije pao nijednom... Ali sta je tu je hvala vam svima probacu ovako pa sta bude...