Autor Zpráva
Jan22
Profil
Dobrý den, prosím o radu.
Mám kontaktní formulář od Bootstrap a nevím jak a jaký tam přidat PHP kód, tak aby byl formulář plně funkční.
Zde je kód formuláře:
 <form  action="druhy.php" role="form" id="feedbackForm" class="text-center">
              <div class="form-group">
                <label for="name" input name="name" >Jméno</label>
                <input type="text" class="form-control" id="name" name="name" placeholder="Vaše celé jméno">
                <span class="help-block" style="display: none;">Please enter your name.</span></div>
                <div class="form-group">
                <label for="subject" input name="subject" >Předmět</label>
                <input type="text" class="form-control" id="name" name="name" placeholder="Předmět">
                <span class="help-block" style="display: none;">Přeedmět</span></div>
              <div class="form-group">
                              <label for="byt" input name="byt">Počet bytových jednotek ve Vašem domě</label>
                <input type="text" class="form-control" id="byt" name="byt" placeholder="Kolik je u Vás bytových jednotek?">
                <span class="help-block" style="display: none;">Please enter your name.</span></div>
              <div class="form-group">
                <label for="email" input name="email">Kontaktní email</label>
                <input type="email" class="form-control" id="email" name="email" placeholder="moje@adresa.cz">
                <span class="help-block" style="display: none;">Prosím, vložte Vaši emailovou adresu</span></div>
              <div class="form-group">
                <label for="message" input name="message">Zpráva</label>
                <textarea rows="10" cols="100" class="form-control" id="message" name="message" placeholder="O co žádáte, ...prosím, popište zde."></textarea>
                <span class="help-block" style="display: none;">Prosím, zde napište Váš dotaz</span></div>
              <button type="submit" id="feedbackSubmit" class="btn btn-primary btn-lg" style=" margin-top: 10px;"> Odeslat</button></br>
    
            </form>

Předem děkuji za pomoc.
Martin Joneš
Profil
Jan22:
A kam chceš data z formuláře zapsat? Máš nějakou databázi, nebo je chceš zapisovat do souboru? Zároveň: Bootstrap s funkčností nesouvisí. Bootstrap je jen framework (zda se to tak vůbec nazývá), na kterém styluješ HTML. Aby jsi nemusel psát sám CSS, tak si jen linkneš Bootstrap knihovnu v hlavičce a tabulce dáš class dle dokumentace Bootstrapu. Nemusíš pak umět CSS, ale jen si stačí pamatovat ty třídy. To stejný má třeba W3.css
Take máš chyby v samotném HTML. Nemůžeš mít 2 kolonky (jméno a předmět) pojmenované name="name" případný PHP script nebude vědět, které z těchto dvou má tedy vypsat do souboru, nebo tabulky. Až napíšeš přesněji tvou představu, pokusím se ti poskládat kód.
Keeehi
Profil
Martin Joneš:
No jelikož se to jmenuje kontaktní formulář, tak můžeš předpokládat, že hi chce poslat na email.
Martin Joneš
Profil
Keeehi:
Kontaktní formulář může být cokoli. Já si pod tím představují subscriptivni formulář, kde budu osobu, která vyplnila formulář spammovat novinkama.
Jan22
Profil
Jedná se vlastně o poptávkový formulář, kde klient vyplní všechna pole a ta se odešlou na email.
Nejedná se o žádné spamování.
Martin Joneš
Profil
Tady je podobná diskuse. Možná, že základní PHP by jsi mohl zkopírovat a dle sebe upravit. Klikni zde
Keeehi
Profil
Martin Joneš:
Kontaktní formulář může být cokoli. Já si pod tím představují subscriptivni formulář, kde budu osobu, která vyplnila formulář spammovat novinkama.
Ano, ale když se podíváš na pole formuláře a co se do nich má zadávat, tak ti snad bude jasné že o takový formulář se jednat nebude. Podle úrovně znalostí tazatele se dá s klidným svědomím předpokládat, že mu půjde o řešení, které chce většina tazatelů s touto úrovní a tedy o odeslání formuláře na mail. Což se i nakonec ukázalo jako platný předpoklad.
Jan22
Profil
Martin Joneš:
Děkuji za odlaz, ale popravdě jsem ten kód moc nepochopil.

<?php
 
 
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));
 
header('Content-type: application/json');
 
require_once('php-mailer/PHPMailerAutoload.php');
 
// Step 1 - Enter your email address below.
$email = 'janule***@seznam.cz';
 
// If the e-mail is not working, change the debug option to 2 | $debug = 2;
$debug = 0;
 
$subject = $_POST['subject'];
 
$fields = array(
    0 => array(
        'text' => 'Name',
        'val' => $_POST['name']
    ),
    1 => array(
        'text' => 'Email address',
        'val' => $_POST['email']
    ),
    2 => array(
        'text' => 'Phone',
        'val' => $_POST['phone']
    ),
    3 => array(
        'text' => 'Message',
        'val' => $_POST['message']
    )
);
 
$message = '';
 
foreach($fields as $field) {
    $message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
}
 
$mail = new PHPMailer(true);
 
try {
 
    $mail->SMTPDebug = $debug;                                 // Debug Mode
 
    // Step 2 (Optional) - If you don't receive the email, try to configure the parameters below:
 
    //$mail->IsSMTP();                                         // Set mailer to use SMTP
    //$mail->Host = 'mail.yourserver.com';                       // Specify main and backup server
    //$mail->SMTPAuth = true;                                  // Enable SMTP authentication
    //$mail->Username = 'user@example.com';                    // SMTP username
    //$mail->Password = 'secret';                              // SMTP password
    //$mail->SMTPSecure = 'tls';                               // Enable encryption, 'ssl' also accepted
    //$mail->Port = 587;                                          // TCP port to connect to
 
    $mail->AddAddress($email);                                    // Add another recipient
 
    //$mail->AddAddress('person2@domain.com', 'Person 2');     // Add a secondary recipient
    //$mail->AddCC('person3@domain.com', 'Person 3');          // Add a "Cc" address. 
    //$mail->AddBCC('person4@domain.com', 'Person 4');         // Add a "Bcc" address. 
 
    $mail->SetFrom($email, $_POST['name']);
    $mail->AddReplyTo($_POST['email'], $_POST['name']);
 
    $mail->IsHTML(true);                                  // Set email format to HTML
 
    $mail->CharSet = 'UTF-8';
 
    $mail->Subject = $subject;
    $mail->Body    = $message ;
 
    $mail->Send();
    $arrResult = array ('response'=>'success');
 
} catch (phpmailerException $e) {
    $arrResult = array ('response'=>'error','errorMessage'=>$e->errorMessage());
} catch (Exception $e) {
    $arrResult = array ('response'=>'error','errorMessage'=>$e->getMessage());
}

V php se vůbec nevyznám, můžu Vás poprosit o pomoc s jeho úpravou (aspoň navedením jak postupovat),
děkuji.
Martin Joneš
Profil
Jan22:
Snad nepíšu pozdě. Kouknul jsem se chvilku na to a něco napsal. Nezkoušel jsem to, ale doufám, že to bude fungovat. Tedy, mělo by. Nezapoměň si přepsat jméno, heslo a Předmět emailu.
Stáhni zde
Jan22
Profil
Martin Joneš:
Ano, je to stále aktuální.

...Děkuji, podívám se na to.
Martin Joneš
Profil
Jan22:
Upravuj pouze index.php, který obsahuje ty údaje! Máš tam nadepsano "předmět, tvůj email..." Nic jiného neměň! Složka PHPmailer musí být v rootové složce! Kdyby byl problém, stačí napsat. Jak psát web ti pomůže.
Martin Joneš
Profil
Jan22:
ASI jsem tam našel chybičku.. pokud to nefunguje, tak stačí k submit buttonu přidat name="submit" a množinovou závorku odstranit za tím $message=... a DAT jí úplně na konec PHP scriptu, před ukončující tag ?>
_es
Profil
Martin Joneš:
tak stačí k submit buttonu přidat name="submit"
To nie je dobrý nápad, taký formulár nepôjde odoslať cez JS. Ak to zdanlivo niečo „opravilo“, tak tým, že to znefunkčnilo odoslanie cez JS - v chybovej konzole možno o tom bude nejaká správa.
Martin Joneš
Profil
_es:
Kdo mluví o JS? Je tam PHPMailer. Nic s javascriptem tam není.
Keeehi
Profil
Martin Joneš:
_es psal o odeslání formuláře ne o odeslání emailu. Na druhou stranu, pokud ty bootstrap nebo jiná knihovna nepotřebuje k odeslání formuláře javascript, pak to může být skoro jedno.
_es
Profil
Keeehi:
Na druhou stranu, pokud ty bootstrap nebo jiná knihovna nepotřebuje k odeslání formuláře javascript, pak to může být skoro jedno.
Obávam sa skôr toho, že tam nejaký JS odosielajúci formulár je. Ak aj nie je, je dosť pravdepodobné, že tam nejaký JS, napríklad na kontrolu obsahu formulára, neskôr pribudne a Jan22 sa bude čudovať, prečo mu to nefunguje.

Martin Joneš:
Ak dáš namiesto na name="submit" trebárs name="tlacitko1" zmení sa nejako funkčnosť?
Z podobných príčin nie je dobrý nápad dávať prvkom formulára id="name" (dokonca viacerým elementom) či name="name" (ako je v [#9]).
Martin Joneš
Profil
_es:
No.. to smysl dává. Já mám ale pocit, že Bootstrap má js knihovnu jen pro responsivní uspořádání a nějaké další vychytávky. To bychom si museli přečíst dokumentaci. Každopádně ano, pokud by to nešlo, mohl by Jan22 zkusit třeba změnit hodnoty name="" na něco méně používaného, aby se to nehádalo. Jinak díky za ten příspěvek. Tohle mě ani nenapadlo..

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0