THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Προγραμματισμός (C, VB, Delphi, PHP, ASP...) => Topic started by: harris on February 16, 2013, 21:37:52 pm



Title: Φόρμα επικοινωνίας σε PHP με validation
Post by: harris on February 16, 2013, 21:37:52 pm
Καλησπερα σε ολους.

Θελω να βρω μια ετοιμη φορμα "επικοινωνηστε μαζι μας" σε HTML στην οποια να γινεται validation μεσω PHP και να στελνεται e-mail μεσω localhost στο xampp, για να καταλαβω πως δουλευει το ολο πραγμα.Ψαχνω εδω και ωρες και δεν εχω βρει κατι αξιο εκτος απο σκουπιδαριο.θελω κατι απλο:να εχει μια φορμα με θεμα,ονομα,e-mail,τηλ επικοινωνιας και μερικα απο αυτα να ειναι απαραιτητα για εισαγωγη.Δε με νοιαζει να ειναι ετοιμο με στυλ

μηπως γνωριζει καποιος και εχει χρονο να με βοηθησει;


Title: Re: Φόρμα επικοινωνίας σε PHP με validation
Post by: SolidSNK on February 16, 2013, 22:56:45 pm
Καλησπερα σε ολους.

Θελω να βρω μια ετοιμη φορμα "επικοινωνηστε μαζι μας" σε HTML στην οποια να γινεται validation μεσω PHP και να στελνεται e-mail μεσω localhost στο xampp, για να καταλαβω πως δουλευει το ολο πραγμα.Ψαχνω εδω και ωρες και δεν εχω βρει κατι αξιο εκτος απο σκουπιδαριο.θελω κατι απλο:να εχει μια φορμα με θεμα,ονομα,e-mail,τηλ επικοινωνιας και μερικα απο αυτα να ειναι απαραιτητα για εισαγωγη.Δε με νοιαζει να ειναι ετοιμο με στυλ

μηπως γνωριζει καποιος και εχει χρονο να με βοηθησει;
Χάρη, τα 'χεις κάνει λίγο αχταρμά. Δε νομίζω να θες να στέλνεις e-mail "μέσω localhost στο xampp", γιατί α) o xampp δεν είναι mail server (mta) και β) η πρόταση δε βγάζει κάνενα μα κανένα νόημα. Για την απλή περίπτωση που θες η php να δρα ως client και o server της google (http://email.about.com/od/accessinggmail/f/Gmail_SMTP_Settings.htm) ως (τι άλλο) server, Googlaρε "php configure smtp". Η λογική λέει πως θα υπάρχουν επιλογές στο php.ini.


Title: Re: Φόρμα επικοινωνίας σε PHP με validation
Post by: dpa on February 16, 2013, 23:45:49 pm
Δες και το εξής:
Mercury eMail Server on XAMPP
http://www.youtube.com/watch?v=_QnfF64rA78


Title: Re: Φόρμα επικοινωνίας σε PHP με validation
Post by: harris on February 17, 2013, 04:17:42 am
Δες και το εξής:
Mercury eMail Server on XAMPP
http://www.youtube.com/watch?v=_QnfF64rA78
ευχαριστω φαινεται ενδιαφερον θα το δω το πρωι.


Χάρη, τα 'χεις κάνει λίγο αχταρμά. Δε νομίζω να θες να στέλνεις e-mail "μέσω localhost στο xampp", γιατί α) o xampp δεν είναι mail server (mta) και β) η πρόταση δε βγάζει κάνενα μα κανένα νόημα. Για την απλή περίπτωση που θες η php να δρα ως client και o server της google (http://email.about.com/od/accessinggmail/f/Gmail_SMTP_Settings.htm) ως (τι άλλο) server, Googlaρε "php configure smtp". Η λογική λέει πως θα υπάρχουν επιλογές στο php.ini.

γεια σου στελιο.δεν τα εχω κανει καθολου αχταρμα.απλα πρωτου ανεβασω το σαιτ θελω να το τεσταρω πρωτα μεσω test server του xampp.το εχω κοιταξει το php.ini βαζω τα στοιχεια του smtp server οπως και στο sendmail αλλα και παλι δε λεει να στειλει και δεν ξερω μηπως ειναι κατι αλλο που να μου εχει ξεφυγει.οσον αφορα την β προταση γτ λες οτι δε βγαινει νοημα;θελω απλα μια φορμα με

ονομα(κειμενο)-απαραιτητο
τηλεφωνο(numeric field)-απαραιτητο
εμαιλ-απαραιτητο
και ενα submit button και απλα αυτα να γινονται validate.δε νομιζω να ειναι κατι τοσο δυσκολο


καληνυχτα παιδια


Title: Re: Φόρμα επικοινωνίας σε PHP με validation
Post by: antares on February 17, 2013, 13:11:23 pm
Αυτά είναι τα κομμάτια που χρειάζεσαι (html, js, php).
Η φόρμα έχει πεδία για Όνομα, Email, Όνομα εταιρείας, Θέμα και Μύνημα. Style δεν έχει. Κάνει server-side validation στο email (pattern, κενό) και στο μύνημα (για κενό). Πολύ εύκολα βάζεις στον πίνακα $required ποιό θέλεις να είναι mandatory (θέλει και αντίστοιχα να πειράξεις το html για να "φαίνεται" κιόλας).
Υπάρχει και το σημαντικό θέμα απο ποιόν client και ποιον smtp server χρησιμοποιείς για να στείλεις email. Απ' ότι κατάλαβα είσαι σε localhost/Windows πίσω από router ή/και firewall. Ίσως να έχεις θέμα να στείλεις έξω από το domain σου. Προσοχή με τo gmail, απαιτεί secure connection για να στείλεις email. Το link σχετικά με τον Mercury email server ίσως σε βοηθήσει. Σίγουρα θα παίξει αν το ανεβάσεις σε κάποιο hosting provider (τον ίδιο κώδικα χρησιμοποιώ και παίζει ok). Καλη τύχη  :)

/*******  HTML *********/

<form action="contact.php" method="post" id="contactform">
<ol>
    <li>
        <label for="name">Name<br />
        </label>
        <input name="name" class="text" id="name" />
    </li>
    <li>
        <label for="email">Your e-mail<a href="#">*</a><br />
        </label>
        <input id="email" name="email" class="text" />
    </li>
    <li>
        <label for="company">Company Name<br />
        </label>
        <input id="company" name="company" class="text" />
    </li>
    <li>
        <label for="subject">Subject<br />
        </label>
        <input id="subject" name="subject" class="text" />
    </li>
    <li>
        <label for="message">Message<a href="#">*</a><br />
        </label>
        <textarea id="message" name="message" rows="6" cols="50"></textarea>
    </li>
    <li>
        <input type="submit"/>
    </li>
</ol>
</form>


/*******  JS (θέλει jQuery) *********/

<script type="text/javascript">
    // <![CDATA[
    jQuery(document).ready(function(){
        $(':text:visible:enabled:first').focus();

        $('#contactform').submit(function(){
            var action = $(this).attr('action');
            $.post(action, $(this).serialize(),
            function(data){
                $('.response').remove();
                $('#contactform').before('<p class="response">'+data+'</p>');
            }
        );
            return false;
        });
    });
    // ]]>
</script>


/*******  PHP (contact.php) *********/

<?php

if (!$_POST)
    exit;

$email = $_POST['email'];

if (!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" . "@" . "([a-z0-9]+([\.-][a-z0-9]+)*)+" . "\\.[a-z]{2,}" . "$", $email)) {
    $error.="Invalid email address entered";
    $errors = 1;
}

if ($errors == 1)
    echo $error;
else {
    $values = array('name', 'company', 'email', 'message');
    $required = array('email', 'message');

    $your_email = "YOUR_EMAIL_HERE";
    $email_subject = "Contact form message: " . $_POST['subject'];
    $email_content = "";

    foreach ($values as $key => $field) {
        if (in_array($field, $required)) {
            if (empty($_POST[$field])) {
                echo 'PLEASE FILL IN REQUIRED FIELDS';
                exit;
            }
        }

        $email_content .= $field . ': ' . $_POST[$field] . "\n";
    }

    if (mail($your_email, $email_subject, $email_content)) {
        echo 'Your message has been sent! <br /> Thank you for contacting us.';
    } else {
        echo 'ERROR! Failed to deliver your message. <br />
            We \'sorry for the inconvenience. Please try again shortly.';
    }
}
?>


Title: Re: Φόρμα επικοινωνίας σε PHP με validation
Post by: SolidSNK on February 17, 2013, 14:40:38 pm
Δες και το εξής:
Mercury eMail Server on XAMPP
http://www.youtube.com/watch?v=_QnfF64rA78
ευχαριστω φαινεται ενδιαφερον θα το δω το πρωι.


Χάρη, τα 'χεις κάνει λίγο αχταρμά. Δε νομίζω να θες να στέλνεις e-mail "μέσω localhost στο xampp", γιατί α) o xampp δεν είναι mail server (mta) και β) η πρόταση δε βγάζει κάνενα μα κανένα νόημα. Για την απλή περίπτωση που θες η php να δρα ως client και o server της google (http://email.about.com/od/accessinggmail/f/Gmail_SMTP_Settings.htm) ως (τι άλλο) server, Googlaρε "php configure smtp". Η λογική λέει πως θα υπάρχουν επιλογές στο php.ini.

γεια σου στελιο.δεν τα εχω κανει καθολου αχταρμα.απλα πρωτου ανεβασω το σαιτ θελω να το τεσταρω πρωτα μεσω test server του xampp.το εχω κοιταξει το php.ini βαζω τα στοιχεια του smtp server οπως και στο sendmail αλλα και παλι δε λεει να στειλει και δεν ξερω μηπως ειναι κατι αλλο που να μου εχει ξεφυγει.οσον αφορα την β προταση γτ λες οτι δε βγαινει νοημα;θελω απλα μια φορμα με

ονομα(κειμενο)-απαραιτητο
τηλεφωνο(numeric field)-απαραιτητο
εμαιλ-απαραιτητο
και ενα submit button και απλα αυτα να γινονται validate.δε νομιζω να ειναι κατι τοσο δυσκολο


καληνυχτα παιδια
Το έλεγξα με PEAR στα γρήγορα και δουλεύει κανονικά. Είσαι σίγουρος πως τα κάνεις όλα σωστά? Η mail() από μόνη της δεν μπορεί να κάνει πολλά, συγκεκριμένα δεν μπορεί να κάνει authenticate. Για το τελευταίο, το β) είναι πλεονασμός γιατί βγαίνει από το α).


Title: Re: Φόρμα επικοινωνίας σε PHP με validation
Post by: harris on February 17, 2013, 15:07:37 pm
πολυ ενδιαφεροντα ευχαριστω παιδια.εχω αρχισει να βγαζω ακρη


Title: Re: Φόρμα επικοινωνίας σε PHP με validation
Post by: Issle on February 27, 2013, 09:30:08 am
Για κάποιους smtp όπως της gmail θέλει δυο παραμέτρους να θέσεις σε true για να δουλέψει. Νομίζω useAuth και useTLS ή κάτι τέτοιο, ψάξτο. Για form validation server-side, php reggex.