Ένα θέμα σε ΗΤΜL  Το θέμα επιλύθηκε

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Ένα θέμα σε ΗΤΜL

Δημοσίευσηαπό nikar » 28 Ιούλ 2012, 07:43

Qdata Θα ήθελα να έχει δύο πεδία Όνομα, Εmail και ένα κουμπί Submit και όταν πατάει ο άλλος το κουμπί και το php λάβει τα δεδομένα απλά να το τυπώνει σε ένα αρχείο (πχ txt)

Σε ευχαριστώ και πάλι
1 Γνώσεις Linux: ΝΑΙ ┃ Προγραμματισμού: ΝΑΙ ┃ Αγγλικών: ΝΑΙ
2 Ubuntu 16.04 xenial 4.4.0-34-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 Intel Core i7-3610QM CPU @ 2.30GHz ‖ RAM 7868 MiB ‖ ASUS N76VZ
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915} ⋮ nVidia GK107M [GeForce GT 650M] [10de:0fd1] {nouveau}
5 wlp3s0: Qualcomm Atheros AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ enp4s0: Qualcomm Atheros AR8161 Gigabit Ethernet [1969:1091] (rev 08)
Άβαταρ μέλους
nikar
punkTUX
punkTUX
 
Δημοσιεύσεις: 262
Εγγραφή: 08 Νοέμ 2008, 13:03
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Ένα θέμα σε ΗΤΜL  Το θέμα επιλύθηκε

Δημοσίευσηαπό Qdata » 28 Ιούλ 2012, 21:22

Ωραία. Λοιπόν:
  • Δημιούργησε ένα αρχείο με κατάληξη .txt στο site σου(πχ στο / - με ό,τι όνομα θέλεις).
  • Δημιούργησε στο site σου ένα αρχείο PHP με ό,τι όνομα θέλεις και κατάληξη .php(πχ script.php).
  • Μέσα στο αρχείο PHP που δημιούργησες βάλε αυτόν τον κώδικα:
    Κώδικας: Επιλογή όλων
    <?php

    $filename = "data.txt";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

    $name = $_POST["name"];
    $email = $_POST["email"];

    if( isset($name) && isset($email) ) {

    if( !preg_match($email_exp, $email) ) {
    $email = $email . " (Άκυρο)";
    }

    $data = "Όνομα: " . $name . "\nEmail: " . $email . "\n---------------\n";
    }

    $file = fopen($filename, "a") or die("Unable to open file.");
    fwrite($file, $data);
    fclose($file);

    header("Location: http://www.google.com/");

    exit;

    ?>
  • Φρόντισε να αλλάξεις στην 3η σειρά του παραπάνω κώδικα το "data.txt" με το όνομα του αρχείου .txt που δημιούργησες. Δηλαδή αντικατέστησε την 3η σειρά έτσι:
    Κώδικας: Επιλογή όλων
    $filename = "ΤΟ_ΟΝΟΜΑ_ΤΟΥ_ΑΡΧΕΙΟΥ.txt";
  • Αντικατέστησε επίσης την 22η σειρά με:
    Κώδικας: Επιλογή όλων
    header("Location: Εδώ_το_link_στο_οποίο_θα_ανακατευθύνετε_ο_χρήστης_μετά_την_υποβολή");

    (Καλύτερα να βάλεις τον σύνδεσμο της σελίδας)
  • Πρόσθεσε τον παρακάτω κώδικα(της φόρμας) στην σελίδα του Facebook που έβαλες και τον προηγούμενο κώδικα(με την αντίστροφη μέτρηση κτλ):
    Κώδικας: Επιλογή όλων
    <table width="300" border="0" align="center">
    <tr>
    <form name="form1" method="POST" action="script.php">
    <td>
    <table width="100%" border="0" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
    <tr>
    <td colspan="3"><strong>Φόρμα καταχώρησης </strong></td>
    </tr>
    <tr>
    <td width="78">Όνομα</td>
    <td width="6">:</td>
    <td width="294"><input name="name" type="text"></td>
    </tr>
    <tr>
    <td>Email</td>
    <td>:</td>
    <td><input name="email" type="text"></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><input type="submit" name="Submit" value="Υποβολή"></td>
    </tr>
    </table>
    </td>
    </form>
    </tr>
    </table>
  • Στην 3η σειρά του παραπάνω κώδικα άλλαξε το action="script.php" με:
    Κώδικας: Επιλογή όλων
    action="http://www.to_site_sou.com/script.php"

    Δηλαδή με το πλήρες link του αρχείου PHP που δημιούργησες.

Ήθελα να προσθέσω στον κώδικα HTML και έλεγχο για την εγκυρότητα του email αλλά με την προειδοποίηση χαλούσε η μορφοποίηση. Θα προσπαθήσω να το κάνω και θα σου στείλω. Προς το παρών σε περίπτωση που κάποιος εισάγει ένα άκυρο email εμφανίζετε στο αρχείο καταγραφής η φράση "(Άκυρο)" δίπλα από το email.

Τέλος αν στο site σου υπάρχει το αρχείο .htaccess πρόσθεσε σε αυτό τις παρακάτω γραμμές. Αν δεν υπάρχει απλώς δημιούργησέ το.
Κώδικας: Επιλογή όλων
<Files data.txt>
order allow,deny
deny from all
</Files>


^ Άλλαξε το data.txt με το όνομα του αρχείου .txt που δημιούργησες. Αυτό γίνεται ώστε το αρχείο με τις καταχωρήσεις να μην είναι ορατό από τον καθένα στο διαδίκτυο.

Off topic:
Συγγνώμη που άργησα να απαντήσω αλλά είχα ένα πρόβλημα με τον apache στον υπολογιστή μου. Πλέον είναι οκ. :)
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Ένα θέμα σε ΗΤΜL

Δημοσίευσηαπό nikar » 05 Αύγ 2012, 13:52

Qdata σε ευχαριστώ πολύ για όλα..
1 Γνώσεις Linux: ΝΑΙ ┃ Προγραμματισμού: ΝΑΙ ┃ Αγγλικών: ΝΑΙ
2 Ubuntu 16.04 xenial 4.4.0-34-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 Intel Core i7-3610QM CPU @ 2.30GHz ‖ RAM 7868 MiB ‖ ASUS N76VZ
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915} ⋮ nVidia GK107M [GeForce GT 650M] [10de:0fd1] {nouveau}
5 wlp3s0: Qualcomm Atheros AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ enp4s0: Qualcomm Atheros AR8161 Gigabit Ethernet [1969:1091] (rev 08)
Άβαταρ μέλους
nikar
punkTUX
punkTUX
 
Δημοσιεύσεις: 262
Εγγραφή: 08 Νοέμ 2008, 13:03
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Ένα θέμα σε ΗΤΜL

Δημοσίευσηαπό Qdata » 07 Αύγ 2012, 13:20

nikar έγραψε:Qdata σε ευχαριστώ πολύ για όλα..


Να 'σε καλά. Πιστεύω να τελείωσες με την σελίδα σου! :)
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Προηγούμενη

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι