» »

Spletni kontaktni obrazec

Spletni kontaktni obrazec

d0rK ::

Zdravo,


Najprej naj povem da sem noob in da bo pomoč morala biti temu primerna. Se bom pa pri vsakem odgovoru potrudil da čimveč naredim sam. Ali lahko kdo pove, kaj vse (in kje) je potrebno nastaviti da bo možno poslati sporočilo s spletne strani? Imam spletno stran in želim dodati kontaktni obrazevc. Forma je dorečena, dodal sem tudi nekaj PHP kode ki sem jo dobil na netu. SMTP server bo od GMaila, ustvaril račun samo za to. Ampak ne vem:

Kako uspešno vnesti te SMTP podatke v kodo?
Je potrebno tudi v php.ini dodati kaj?
Potrebujem kakšen dodaten modul?

<?php

	if (isset($_POST["submit"])) {
		$name = $_POST['name'];
		$email = $_POST['email'];
		$message = $_POST['message'];
		$human = intval($_POST['human']);
		$from = 'Ime'; 
		$to = 'ime@gmail.com'; 
		$subject = 'Povpraševanje s spletne strani ';
        
		
		$body ="From: $name\n E-Mail: $email\n Message:\n $message";
		// Check if name has been entered
		if (!$_POST['name']) {
			$errName = 'Prosim vnesite svoje ime';
		}
		
		// Check if email has been entered and is valid
		if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
			$errEmail = 'Prosim vnesite veljaven e-poštni naslov';
		}
		
		//Check if message has been entered
		if (!$_POST['message']) {
			$errMessage = 'Polje ne sme biti prazno';
		}
		//Check if simple anti-bot test is correct
		if ($human !== 5) {
			$errHuman = 'Vrednost ni pravilna';
		}
// If there are no errors, send the email
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
	if (mail ($to, $subject, $body, $from)) {
		$result='<div class="alert alert-success">Najlepša hvala za sporočilo!</div>';
	} else {
		$result='<div class="alert alert-danger">Se opravičujemo, nekaj je šlo narobe. Prosim poizkusite ponovno.</div>';
	}
}
	}
?>


<form class="form-horizontal" role="form" method="post" action="index2.php">
    <div class="form-group">
        <label for="name" class="col-sm-2 control-label">Ime</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="name" name="name" placeholder="Vaše ime" value="<?php echo htmlspecialchars($_POST['name']); ?>">
            <?php echo "<p class='text-danger'>$errName</p>";?>
        </div>
    </div>
    <div class="form-group">
        <label for="email" class="col-sm-2 control-label">e-Poštni naslov</label>
        <div class="col-sm-10">
            <input type="email" class="form-control" id="email" name="email" placeholder="primer@domena.com" value="<?php echo htmlspecialchars($_POST['email']); ?>">
            <?php echo "<p class='text-danger'>$errEmail</p>";?>
        </div>
    </div>
    <div class="form-group">
        <label for="message" class="col-sm-2 control-label">Sporočilo</label>
        <div class="col-sm-10">
            <textarea class="form-control" rows="4" name="message"><?php echo htmlspecialchars($_POST['message']);?></textarea>
            <?php echo "<p class='text-danger'>$errMessage</p>";?>
        </div>
    </div>
    <div class="form-group">
        <label for="human" class="col-sm-2 control-label">2 + 3 = ?</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="human" name="human" placeholder="Vaš odgovor">
            <?php echo "<p class='text-danger'>$errHuman</p>";?>
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-10 col-sm-offset-2">
            <input id="submit" name="submit" type="submit" value="Pošlji" class="btn btn-primary">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-10 col-sm-offset-2">
            <?php echo $result; ?>    
        </div>
    </div>
</form>        


Nekateri ponujajo PHPMailer dodatek, nekateri PEAR Mail knjižnjico. Obstaja metoda da samo vnesem SMTP podatke v kodo ki jo imam ali res potrebujem še kak dodatek?


Hvala vnaprej.

paco ::

It iz aj.

d0rK ::

Ne rata mi. Zanemaril sem spam preverjanje zaenkrat, hočem samo usposobit toliko da dela. Polje za preverjanje sem pustil v formu, v phpju ni pa ničesar o tem. Openssl extension sem odkomentiral v php.ini. Pa smtp_server sem nastavil na 465, in SMTP = smtp.gmail.com, oboje v php.ini.

<?php
if(isset($_POST['submit'])) 
{

$message=
'Vaše ime:	'.$_POST['name'].'<br />
Email:	'.$_POST['email'].'<br />
Message:	'.$_POST['message'].'
';
    require "phpmailer/PHPMailerAutoload.php"; //include phpmailer class
      
    // Instantiate Class  
    $mail = new PHPMailer();  
      
    // Set up SMTP  
    $mail->IsSMTP();                // Sets up a SMTP connection  
    $mail->SMTPAuth = true;         // Connection with the SMTP does require authorization    
    $mail->SMTPSecure = "ssl";      // Connect using a TLS connection  
    $mail->Host = "smtp.gmail.com";  //Gmail SMTP server address
    $mail->Port = 465;  //Gmail SMTP port
    $mail->Encoding = '7bit';
    
    // Authentication  
    $mail->Username   = "uporabniško ime"; // Your full Gmail address
    $mail->Password   = "mojegeslo"; // Your Gmail password
      
    // Compose
    $mail->SetFrom($_POST['email'], $_POST['name']);
    $mail->AddReplyTo($_POST['email'], $_POST['name']);
    $mail->Subject = "Povpraševanje s spletne strani";      // Subject (which isn't required)  
    $mail->MsgHTML($message);
 
    // Send To  
    $mail->AddAddress("naslov_kamor_hocem_da_prihaja_posta", "Janez"); // Where to send it - Recipient
    $result = $mail->Send();		// Send!  
	$message = $result ? 'Uspešno poslano!' : 'Pošiljanje ni uspelo!';      
	unset($mail);

}
?>


 <div id="obrazec" class="section footer-padding">
                  <div class="container">
        <h2>Kontaktni obrazec</h2>

        <div class="content">
<form class="form-horizontal" method="post" action="index.php">
    <div class="form-group">
        <label for="name" class="col-sm-2 control-label"></label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="name" name="name" placeholder="Vaše ime" value="<?php echo htmlspecialchars($_POST['name']); ?>">
            <?php echo "<p class='text-danger'>$errName</p>";?>
        </div>
    </div>
    <div class="form-group">
        <label for="email" class="col-sm-2 control-label"></label>
        <div class="col-sm-10">
            <input type="email" class="form-control" id="email" name="email" placeholder="Vaš e-naslov" value="<?php echo htmlspecialchars($_POST['email']); ?>">
            <?php echo "<p class='text-danger'>$errEmail</p>";?>
        </div>
    </div>
    <div class="form-group">
        <label for="message" class="col-sm-2 control-label"></label>
        <div class="col-sm-10">
            <textarea class="form-control" id="message" placeholder="Sporočilo" rows="4" name="message"><?php echo htmlspecialchars($_POST['message']);?></textarea>
            <?php echo "<p class='text-danger'>$errMessage</p>";?>
        </div>
    </div>
    <div class="form-group">
        <label for="human" class="col-sm-2 control-label"></label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="human" name="human" placeholder="Koliko znaša 2 plus 3?">
            <?php echo "<p class='text-danger'>$errHuman</p>";?>
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-10 col-sm-offset-3">
            <input id="submit" name="submit" type="submit" value="Pošlji" class="btn color">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-5 col-sm-offset-3">
            <?php echo $message; ?>    
        </div>
    </div>
</form>        
        </div>
      </div>
</div>


Dobim Pošiljanje ni uspelo!

Zgodovina sprememb…

  • spremenil: d0rK ()

d0rK ::

DELA! Less secure apps je potrebno vklopiti v Google!

d0rK ::

Še eno vprašanje.. Kaj narediti da se bodo polja v kontaktnem obrazcu izbrisala ko uporabnik pošlje obrazec?

Zdaj vse ostane noter in vsakič ko se refresha se pošlje še en email.

Zgodovina sprememb…

  • spremenil: d0rK ()

Apple ::

d0rK je izjavil:

Še eno vprašanje.. Kaj narediti da se bodo polja v kontaktnem obrazcu izbrisala ko uporabnik pošlje obrazec?

Zdaj vse ostane noter in vsakič ko se refresha se pošlje še en email.


Inicializacija polj?
LP, Apple

d0rK ::

Bo treba več povedati, sem čisti začetnik ampak se potrudim razumeti.

Apple ::

VALUE attribute can be used to initialize the text string shown in the field when the document is first loaded.

Link
LP, Apple


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Funkcija mail() v PHP

Oddelek: Izdelava spletišč
173453 (3077) 4kik4
»

Uporaba spremenjivke iz JavaScript v PHP

Oddelek: Programiranje
171435 (1074) direstrait
»

Kontakt php

Oddelek: Izdelava spletišč
61080 (941) gnomee
»

Kontaktni obrazec

Oddelek: Izdelava spletišč
81583 (1421) leonkozar
»

Joomla (mail not send)

Oddelek: Izdelava spletišč
91110 (1013) f4rr3ll

Več podobnih tem