Rpanagos Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 Εχοντας φτιαξει σε html μια φορμα επικοινωνιας για το σιτε μου μου παρουσιαστηκε το εξης προβλημα.Πως θα μπορεσω να περασω μεταβλητες με php για να ορισω που θα ερχεται το mail κλπ κλπ.Δηλαδη θελω να συνδεσω τον html κωδικα με ενα αρχειο php απο οτι καταλαβα.Αυτο μπορω να το κανω μεσα στο html (να βαλω και php στο .html?)
SpirosLouis Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 http://el.lmgtfy.com/?q=php+mail+form
Rpanagos Δημοσ. 7 Φεβρουαρίου 2017 Μέλος Δημοσ. 7 Φεβρουαρίου 2017 Βασικα αυτο θελω να καταλαβω πως λειτουργει https://bootstrapbay.com/blog/working-bootstrap-contact-form/Στο τελος λεει για το πως πρεπει να ειναι ο κωδικας.στον html ομως εχει και php μεσα..πως γινετε να δουλεψει αυτο? Εγω εχω βαλει τον html που δινει στην αρχη για να δημιουργηθει η φορμα.Και την εχω συβδεσει με τον php που λεει στο τελος.Αλλα δεν νομιζω να εχει γινει σωστα γιατι οταν παω στην σελιδα μου και παταω send με πεταει σε μια σελιδα με τον php κωδικα..Ειναι σωστο αυτο?
SpirosLouis Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 Έχεις εγκαταστήσει την PHP; Έχουνε τα αρχεία που εκτελούνται κατάληξη PHP; Ρίξε και μια ματιά στο youtube. Με λίγο ψάξιμο θα βρεις αυτό που θες.
Rpanagos Δημοσ. 7 Φεβρουαρίου 2017 Μέλος Δημοσ. 7 Φεβρουαρίου 2017 Έχεις εγκαταστήσει την PHP; Έχουνε τα αρχεία που εκτελούνται κατάληξη PHP; Ρίξε και μια ματιά στο youtube. Με λίγο ψάξιμο θα βρεις αυτό που θες. Τι εννοεις να εχω εγκαταστησει την Php?
isay Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 H php ειναι server side δηλαδή στο server πρεπει να τρεχει ειδικό προγραμμα που να εκτελεί τον κώδικά και σερβίσει το αποτελεσμα. Δεν ειναι απλή html που "τρεχει" σε οποιοδήποτε browser, είτε η σελίδα ειναι local ή σε κάποιο server. Με λίγα λογια, είτε εγκατέστησε xamp στον υπολογιστή σου ή ρίχνε/βλέπε τις σελίδες σου σε web server που τρεχει php. Επισης ειναι πολύ πιθανό τα αρχεία να πρεπει να εχουν επεκταση php (π.χ panagos.php και οχι panagos.html )
Rpanagos Δημοσ. 7 Φεβρουαρίου 2017 Μέλος Δημοσ. 7 Φεβρουαρίου 2017 H php ειναι server side δηλαδή στο server πρεπει να τρεχει ειδικό προγραμμα που να εκτελεί τον κώδικά και σερβίσει το αποτελεσμα. Δεν ειναι απλή html που "τρεχει" σε οποιοδήποτε browser, είτε η σελίδα ειναι local ή σε κάποιο server. Με λίγα λογια, είτε εγκατέστησε xamp στον υπολογιστή σου ή ρίχνε/βλέπε τις σελίδες σου σε web server που τρεχει php. Επισης ειναι πολύ πιθανό τα αρχεία να πρεπει να εχουν επεκταση php (π.χ panagos.php και οχι panagos.html ) Αυτο <form class="form-horizontal" role="form" method="post" action="conj.php"> <div class="form-group"> <label for="name" class="col-sm-2 control-label">Name</label> <div class="col-sm-10"> <input type="text" class="form-control" id="name" name="name" placeholder="First & Last Name" value=""> </div> </div> <div class="form-group"> <label for="email" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="email" class="form-control" id="email" name="email" placeholder="[email protected]" value=""> </div> </div> <div class="form-group"> <label for="message" class="col-sm-2 control-label">Message</label> <div class="col-sm-10"> <textarea class="form-control" rows="4" name="message"></textarea> </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="Your Answer"> </div> </div> <div class="form-group"> <div class="col-sm-10 col-sm-offset-2"> <input id="submit" name="submit" type="submit" value="Send" class="btn btn-primary"> </div> </div> <div class="form-group"> <div class="col-sm-10 col-sm-offset-2"> <! Will be used to display an alert to the user> </div> </div> </form> Σαν κωδικας μεσα στην html για να εμφανισει το εικαστικο κομματι στην σελιδα. Και αυτο <?php if (isset($_POST["submit"])) { $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $human = intval($_POST['human']); $from = 'Demo Contact Form'; $to = '[email protected]'; $subject = 'Message from Contact Demo '; $body = "From: $name\n E-Mail: $email\n Message:\n $message"; // Check if name has been entered if (!$_POST['name']) { $errName = 'Please enter your name'; } // Check if email has been entered and is valid if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $errEmail = 'Please enter a valid email address'; } //Check if message has been entered if (!$_POST['message']) { $errMessage = 'Please enter your message'; } //Check if simple anti-bot test is correct if ($human !== 5) { $errHuman = 'Your anti-spam is incorrect'; } // 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">Thank You! I will be in touch</div>'; } else { $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>'; } } } ?> Σαν κωδικας php ειναι σωστα? Τον php το εχω σε αρχειο με ονομα conj.php και το τραβαει η html με <form class="form-horizontal" role="form" method="post" action="conj.php"> Θα δουλεψει αυτο?
tzotzosgr Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 Καλησπέρα, αναλυτικά contact.html <html> <head> <title>Contact Form</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container"> <div class="row"> <div class="col-lg-8 col-lg-offset-2"> <h1>Contact form</h1> <form id="contact-form" method="post" action="send.php" role="form"> <div class="messages"></div> <div class="controls"> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label for="form_name">Name *</label> <input id="form_name" type="text" name="name" class="form-control" placeholder="Please enter your firstname *" required="required" data-error="Name is required."> <div class="help-block with-errors"></div> </div> </div> <div class="col-md-6"> <div class="form-group"> <label for="form_email">Email *</label> <input id="form_email" type="email" name="email" class="form-control" placeholder="Please enter your email *" required="required" data-error="Valid email is required."> <div class="help-block with-errors"></div> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> <label for="form_message">Message *</label> <textarea id="form_message" name="message" class="form-control" placeholder="Message for me *" rows="4" required="required" data-error="Please,leave us a message."></textarea> <div class="help-block with-errors"></div> </div> </div> <div class="col-md-12"> <input type="submit" class="btn btn-success btn-send" value="Send message"> </div> </div> </div> </form> </div><!-- /.8 --> </div> <!-- /.row--> </div> <!-- /.container--> <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script src="validator.js"></script> <script src="contact.js"></script> </body> </html> send.php <?php // configure $from = 'Demo contact form <[email protected]>'; $sendTo = 'Demo contact form <[email protected]>'; $subject = 'New message from contact form'; $fields = array('name' => 'Name', 'email' => 'Email', 'message' => 'Message'); // array variable name => Text to appear in the email $okMessage = 'Contact form successfully submitted. Thank you, I will get back to you soon!'; $errorMessage = 'There was an error while submitting the form. Please try again later'; // let's do the sending try { $emailText = "You have new message from contact form\n=============================\n"; foreach ($_POST as $key => $value) { if (isset($fields[$key])) { $emailText .= "$fields[$key]: $value\n"; } } $headers = array('Content-Type: text/html; charset="UTF-8";', 'From: ' . $from, 'Reply-To: ' . $from, 'Return-Path: ' . $from, ); mail($sendTo, $subject, $emailText, implode("\n", $headers)); $responseArray = array('type' => 'success', 'message' => $okMessage); } catch (\Exception $e) { $responseArray = array('type' => 'danger', 'message' => $errorMessage); } if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { $encoded = json_encode($responseArray); header('Content-Type: application/json'); echo $encoded; } else { echo $responseArray['message']; } contact.js $(function () { $('#contact-form').validator(); $('#contact-form').on('submit', function (e) { if (!e.isDefaultPrevented()) { var url = "send.php"; $.ajax({ type: "POST", url: url, data: $(this).serialize(), success: function (data) { var messageAlert = 'alert-' + data.type; var messageText = data.message; var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + messageText + '</div>'; if (messageAlert && messageText) { $('#contact-form').find('.messages').html(alertBox); $('#contact-form')[0].reset(); } } }); return false; } }) }); validator.js /*! * Validator v0.11.5 for Bootstrap 3, by @1000hz * Copyright 2016 Cina Saffary * Licensed under http://opensource.org/licenses/MIT * * https://github.com/1000hz/bootstrap-validator */ +function ($) { 'use strict'; // VALIDATOR CLASS DEFINITION // ========================== function getValue($el) { return $el.is('[type="checkbox"]') ? $el.prop('checked') : $el.is('[type="radio"]') ? !!$('[name="' + $el.attr('name') + '"]:checked').length : $el.val() } var Validator = function (element, options) { this.options = options this.validators = $.extend({}, Validator.VALIDATORS, options.custom) this.$element = $(element) this.$btn = $('button[type="submit"], input[type="submit"]') .filter('[form="' + this.$element.attr('id') + '"]') .add(this.$element.find('input[type="submit"], button[type="submit"]')) this.update() this.$element.on('input.bs.validator change.bs.validator focusout.bs.validator', $.proxy(this.onInput, this)) this.$element.on('submit.bs.validator', $.proxy(this.onSubmit, this)) this.$element.on('reset.bs.validator', $.proxy(this.reset, this)) this.$element.find('[data-match]').each(function () { var $this = $(this) var target = $this.data('match') $(target).on('input.bs.validator', function (e) { getValue($this) && $this.trigger('input.bs.validator') }) }) this.$inputs.filter(function () { return getValue($(this)) }).trigger('focusout') this.$element.attr('novalidate', true) // disable automatic native validation this.toggleSubmit() } Validator.VERSION = '0.11.5' Validator.INPUT_SELECTOR = ':input:not([type="hidden"], [type="submit"], [type="reset"], button)' Validator.FOCUS_OFFSET = 20 Validator.DEFAULTS = { delay: 500, html: false, disable: true, focus: true, custom: {}, errors: { match: 'Does not match', minlength: 'Not long enough' }, feedback: { success: 'glyphicon-ok', error: 'glyphicon-remove' } } Validator.VALIDATORS = { 'native': function ($el) { var el = $el[0] if (el.checkValidity) { return !el.checkValidity() && !el.validity.valid && (el.validationMessage || "error!") } }, 'match': function ($el) { var target = $el.data('match') return $el.val() !== $(target).val() && Validator.DEFAULTS.errors.match }, 'minlength': function ($el) { var minlength = $el.data('minlength') return $el.val().length < minlength && Validator.DEFAULTS.errors.minlength } } Validator.prototype.update = function () { this.$inputs = this.$element.find(Validator.INPUT_SELECTOR) .add(this.$element.find('[data-validate="true"]')) .not(this.$element.find('[data-validate="false"]')) return this } Validator.prototype.onInput = function (e) { var self = this var $el = $(e.target) var deferErrors = e.type !== 'focusout' if (!this.$inputs.is($el)) return this.validateInput($el, deferErrors).done(function () { self.toggleSubmit() }) } Validator.prototype.validateInput = function ($el, deferErrors) { var value = getValue($el) var prevErrors = $el.data('bs.validator.errors') var errors if ($el.is('[type="radio"]')) $el = this.$element.find('input[name="' + $el.attr('name') + '"]') var e = $.Event('validate.bs.validator', {relatedTarget: $el[0]}) this.$element.trigger(e) if (e.isDefaultPrevented()) return var self = this return this.runValidators($el).done(function (errors) { $el.data('bs.validator.errors', errors) errors.length ? deferErrors ? self.defer($el, self.showErrors) : self.showErrors($el) : self.clearErrors($el) if (!prevErrors || errors.toString() !== prevErrors.toString()) { e = errors.length ? $.Event('invalid.bs.validator', {relatedTarget: $el[0], detail: errors}) : $.Event('valid.bs.validator', {relatedTarget: $el[0], detail: prevErrors}) self.$element.trigger(e) } self.toggleSubmit() self.$element.trigger($.Event('validated.bs.validator', {relatedTarget: $el[0]})) }) } Validator.prototype.runValidators = function ($el) { var errors = [] var deferred = $.Deferred() $el.data('bs.validator.deferred') && $el.data('bs.validator.deferred').reject() $el.data('bs.validator.deferred', deferred) function getValidatorSpecificError(key) { return $el.data(key + '-error') } function getValidityStateError() { var validity = $el[0].validity return validity.typeMismatch ? $el.data('type-error') : validity.patternMismatch ? $el.data('pattern-error') : validity.stepMismatch ? $el.data('step-error') : validity.rangeOverflow ? $el.data('max-error') : validity.rangeUnderflow ? $el.data('min-error') : validity.valueMissing ? $el.data('required-error') : null } function getGenericError() { return $el.data('error') } function getErrorMessage(key) { return getValidatorSpecificError(key) || getValidityStateError() || getGenericError() } $.each(this.validators, $.proxy(function (key, validator) { var error = null if ((getValue($el) || $el.attr('required')) && ($el.data(key) || key == 'native') && (error = validator.call(this, $el))) { error = getErrorMessage(key) || error !~errors.indexOf(error) && errors.push(error) } }, this)) if (!errors.length && getValue($el) && $el.data('remote')) { this.defer($el, function () { var data = {} data[$el.attr('name')] = getValue($el) $.get($el.data('remote'), data) .fail(function (jqXHR, textStatus, error) { errors.push(getErrorMessage('remote') || error) }) .always(function () { deferred.resolve(errors)}) }) } else deferred.resolve(errors) return deferred.promise() } Validator.prototype.validate = function () { var self = this $.when(this.$inputs.map(function (el) { return self.validateInput($(this), false) })).then(function () { self.toggleSubmit() self.focusError() }) return this } Validator.prototype.focusError = function () { if (!this.options.focus) return var $input = this.$element.find(".has-error:first :input") if ($input.length === 0) return $('html, body').animate({scrollTop: $input.offset().top - Validator.FOCUS_OFFSET}, 250) $input.focus() } Validator.prototype.showErrors = function ($el) { var method = this.options.html ? 'html' : 'text' var errors = $el.data('bs.validator.errors') var $group = $el.closest('.form-group') var $block = $group.find('.help-block.with-errors') var $feedback = $group.find('.form-control-feedback') if (!errors.length) return errors = $('<ul/>') .addClass('list-unstyled') .append($.map(errors, function (error) { return $('<li/>')[method](error) })) $block.data('bs.validator.originalContent') === undefined && $block.data('bs.validator.originalContent', $block.html()) $block.empty().append(errors) $group.addClass('has-error has-danger') $group.hasClass('has-feedback') && $feedback.removeClass(this.options.feedback.success) && $feedback.addClass(this.options.feedback.error) && $group.removeClass('has-success') } Validator.prototype.clearErrors = function ($el) { var $group = $el.closest('.form-group') var $block = $group.find('.help-block.with-errors') var $feedback = $group.find('.form-control-feedback') $block.html($block.data('bs.validator.originalContent')) $group.removeClass('has-error has-danger has-success') $group.hasClass('has-feedback') && $feedback.removeClass(this.options.feedback.error) && $feedback.removeClass(this.options.feedback.success) && getValue($el) && $feedback.addClass(this.options.feedback.success) && $group.addClass('has-success') } Validator.prototype.hasErrors = function () { function fieldErrors() { return !!($(this).data('bs.validator.errors') || []).length } return !!this.$inputs.filter(fieldErrors).length } Validator.prototype.isIncomplete = function () { function fieldIncomplete() { var value = getValue($(this)) return !(typeof value == "string" ? $.trim(value) : value) } return !!this.$inputs.filter('[required]').filter(fieldIncomplete).length } Validator.prototype.onSubmit = function (e) { this.validate() if (this.isIncomplete() || this.hasErrors()) e.preventDefault() } Validator.prototype.toggleSubmit = function () { if (!this.options.disable) return this.$btn.toggleClass('disabled', this.isIncomplete() || this.hasErrors()) } Validator.prototype.defer = function ($el, callback) { callback = $.proxy(callback, this, $el) if (!this.options.delay) return callback() window.clearTimeout($el.data('bs.validator.timeout')) $el.data('bs.validator.timeout', window.setTimeout(callback, this.options.delay)) } Validator.prototype.reset = function () { this.$element.find('.form-control-feedback') .removeClass(this.options.feedback.error) .removeClass(this.options.feedback.success) this.$inputs .removeData(['bs.validator.errors', 'bs.validator.deferred']) .each(function () { var $this = $(this) var timeout = $this.data('bs.validator.timeout') window.clearTimeout(timeout) && $this.removeData('bs.validator.timeout') }) this.$element.find('.help-block.with-errors') .each(function () { var $this = $(this) var originalContent = $this.data('bs.validator.originalContent') $this .removeData('bs.validator.originalContent') .html(originalContent) }) this.$btn.removeClass('disabled') this.$element.find('.has-error, .has-danger, .has-success').removeClass('has-error has-danger has-success') return this } Validator.prototype.destroy = function () { this.reset() this.$element .removeAttr('novalidate') .removeData('bs.validator') .off('.bs.validator') this.$inputs .off('.bs.validator') this.options = null this.validators = null this.$element = null this.$btn = null return this } // VALIDATOR PLUGIN DEFINITION // =========================== function Plugin(option) { return this.each(function () { var $this = $(this) var options = $.extend({}, Validator.DEFAULTS, $this.data(), typeof option == 'object' && option) var data = $this.data('bs.validator') if (!data && option == 'destroy') return if (!data) $this.data('bs.validator', (data = new Validator(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.validator $.fn.validator = Plugin $.fn.validator.Constructor = Validator // VALIDATOR NO CONFLICT // ===================== $.fn.validator.noConflict = function () { $.fn.validator = old return this } // VALIDATOR DATA-API // ================== $(window).on('load', function () { $('form[data-toggle="validator"]').each(function () { var $form = $(this) Plugin.call($form, $form.data()) }) }) }(jQuery); 1
Rpanagos Δημοσ. 7 Φεβρουαρίου 2017 Μέλος Δημοσ. 7 Φεβρουαρίου 2017 Αυτα απλα να τα βαλω στον φακελο με τις αλλες σελιδες html Που εχω?οπως ειναι?Δεν θελουν καποια συνδεση μεταξυ τους?
tzotzosgr Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 Αυτα απλα να τα βαλω στον φακελο με τις αλλες σελιδες html Που εχω?οπως ειναι? Δεν θελουν καποια συνδεση μεταξυ τους? ωραίο troll συγνώμη, αφού δεν ξέρεις τα βασικά τι κανείς... ερώτηση το site τι είναι απλά αρχεία html η wordpress?
Rpanagos Δημοσ. 7 Φεβρουαρίου 2017 Μέλος Δημοσ. 7 Φεβρουαρίου 2017 Κατι αλλο τωρα,τι παιζει με την Php Που ειπε ο φιλος ποιο πανω και το host?
tzotzosgr Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 Κατι αλλο τωρα, τι παιζει με την Php Που ειπε ο φιλος ποιο πανω και το host? συγνώμη φίλε μου αλλά εγώ δεν κάνω μαθήματα... αν κανείς μια αναζήτηση θα δεις τι είναι! αλλά αυτά για σένα δεν έχουν καμία σημασία, μάθε πρώτα τα βασικά και άσε τη είναι η php
SpirosLouis Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 συγνώμη φίλε μου αλλά εγώ δεν κάνω μαθήματα... αν κανείς μια αναζήτηση θα δεις τι είναι! αλλά αυτά για σένα δεν έχουν καμία σημασία, μάθε πρώτα τα βασικά και άσε τη είναι η php Project για σχολή μου μυρίζει που πάει να γίνει σε λίγες ώρες..γι' αυτό σταμάτησα να απαντάω.. μην τα περιμένουμε όλα σερβιρισμενα(καλή ώρα) στο πιάτο..
tzotzosgr Δημοσ. 7 Φεβρουαρίου 2017 Δημοσ. 7 Φεβρουαρίου 2017 Project για σχολή μου μυρίζει που πάει να γίνει σε λίγες ώρες..γι' αυτό σταμάτησα να απαντάω.. μην τα περιμένουμε όλα σερβιρισμενα(καλή ώρα) στο πιάτο.. αν και να του τα σέρβιρα όλα στο πιάτο, είμαι σίγουρος πως δεν τα κατάλαβε! αλλά... ούτε ένα ευχαριστώ δεν έδωσε στο πιατο anyway Αυτα απλα να τα βαλω στον φακελο με τις αλλες σελιδες html Που εχω?οπως ειναι? Δεν θελουν καποια συνδεση μεταξυ τους?
Rpanagos Δημοσ. 8 Φεβρουαρίου 2017 Μέλος Δημοσ. 8 Φεβρουαρίου 2017 ωραίο troll συγνώμη, αφού δεν ξέρεις τα βασικά τι κανείς... ερώτηση το site τι είναι απλά αρχεία html η wordpress? Βρε εγω οσα ευχαριστω θες να σου πω, αλλα η απαντηση δεν κανω μαθηματα,τοτε γιατι σχολιασες στο ποστ?για να διαφημιστεις? Τελος παντον. Το οτι γραφω εδω δεν σημαινει αυτοματα οτι παραλληλα δεν το ψαχνω και αλλου.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα