Oldal: 2 / 2 ElsőElső 12
Eredmény: 11 - 16 (16) összesen

Téma: Űrlap érdekesség

  1. #11
    'Say Hello To My Little Friend'
    Csatlakozott
    11-09-16
    Hozzászólás
    71
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Űrlap érdekesség

    Szia!

    Itt nincs ellenőrzés. Ha nincs máshol sem, tehát, ha tényleg csak ennyi, akkor ezért kaphatod meg üresen is. (Javascript igazából nem számít most, mert ha van, ha nincs, attól függetlenül lehet post-olni ezt a form-ot egy külső script ből, és csak kapod majd a leveleket, nem fogod győzni törölni őket.)

    Meg így spam-küldésre is használhatják az űrlapodat. (pl: KB: PHP Email Injection Hack)

    Illetve nem ártana egy "képes" captcha sem. Mert képes captcha nélkül megint kaphatod a sok levelet.

    Egyszóval: Nem jó ez az egész így, ahogy most van.



  2. #12
    'Say Hello To My Little Friend'
    Csatlakozott
    10-04-13
    Hely
    Budapest
    Hozzászólás
    2.784
    Begyűjtött 863 köszönetet
    659 hozzászólásával

    Alapbeállítás re: Űrlap érdekesség

    Módosítsd a php file-t így:
    Kód:
    <?php
    
    if(!$_POST['name'] || !$_POST['email'] || !$_POST['telefon'] || !$_POST['helyszin'] || !$_POST['kezdes'] || !$_POST['munkaleiras']) {
       echo 'Nem adtál meg minden adatot!';
    } else {
       $name = $_POST['name'];
       $email = $_POST['email'];
       $telefon = $_POST['telefon'];
       $helyszin = $_POST['helyszin'];
       $kezdes = $_POST['kezdes'];
       $munkaleiras = $_POST['munkaleiras'];
    	  
       $to = 'toth-gergely@acsteto.hu';
       $subject = 'Arajanlat keres a honlaprol';
       $msg = "A megrendelo neve: $name\n" . 
    	  	"Email cime: $email\n" .
    		"Telefonszama: $telefon\n" .
    		"A munka helyszine: $helyszin\n" .
    		"A kezdes varhato idopontja: $kezdes\n" .
    		"A munka leirasa: $munkaleiras";
    	  
       mail ($to, $subject, $msg, 'From:' . $email);
    	  
       echo 'Az Ön neve: ' . $name . '<br />';
       echo 'Email címe: ' . $email . '<br />';
       echo 'Telefonszáma: ' . $telefon . '<br />';
       echo 'Az építkezés helyszíne: ' . $helyszin . '<br />';
       echo 'A kezdés várható időpontja: ' . $kezdes . '<br />';
       echo 'A munka leírása: ' . $munkaleiras;
    }
     ?>
    Ha nem tölti ki minden mezőt, akkor nem küldi e az e-mailt, és kap egy hibaüzenetet. A Te visszaellenörzésed pedig azért nem jó, mert ha nem futtat egy böngésző javascriptet vagy robot vagy akármi, akkor hiába ellenőrzöd le javascrpttel, hogy minden mező ki van-e töltve, az nála nem fog lefutni. A szerveroldali ellenőrzés viszont mindig lefut.

    És ha már, akkor deadisland által említett biztonsági rést is foltozzuk be, meg nézzük meg, hogy sikeresen elment-e Neked a mail. A módosításokkal így néz ki a php file:


    Kód:
    <?php
    
    if(!$_POST['name'] || !$_POST['email'] || !$_POST['telefon'] || !$_POST['helyszin'] || !$_POST['kezdes'] || !$_POST['munkaleiras']) {
       echo 'Nem adtál meg minden adatot!';
    } else {
       $name = $_POST['name'];
       $email = $_POST['email'];
       $email = preg_replace('/[\n|\r].*/', '', $email);
       $telefon = $_POST['telefon'];
       $helyszin = $_POST['helyszin'];
       $kezdes = $_POST['kezdes'];
       $munkaleiras = $_POST['munkaleiras'];
    	  
       $to = 'toth-gergely@acsteto.hu';
       $subject = 'Arajanlat keres a honlaprol';
       $msg = "A megrendelo neve: $name\n" . 
    	  	"Email cime: $email\n" .
    		"Telefonszama: $telefon\n" .
    		"A munka helyszine: $helyszin\n" .
    		"A kezdes varhato idopontja: $kezdes\n" .
    		"A munka leirasa: $munkaleiras";
    	  
       if(!mail ($to, $subject, $msg, 'From:' . $email)) {
          echo '<b>Technikai okokból nem sikerült elküldeni az e-mailt. Kérjük próbálja újból.</b><br />';
       }  
       
       echo 'Az Ön neve: ' . $name . '<br />';
       echo 'Email címe: ' . $email . '<br />';
       echo 'Telefonszáma: ' . $telefon . '<br />';
       echo 'Az építkezés helyszíne: ' . $helyszin . '<br />';
       echo 'A kezdés várható időpontja: ' . $kezdes . '<br />';
       echo 'A munka leírása: ' . $munkaleiras;
    }
     ?>
    Így ha bármi technikai gikszer van, a megrendelő kap egy hibaüzenet, hogy nem sikerült elküldeni az e-mailt Neked, próbálja újra.


    Utoljára módosítva: Emphus által : 2012-09-20 23:43

  3. #13
    Bölcs earnnet logója
    Csatlakozott
    12-08-15
    Hely
    Budapest
    Hozzászólás
    1.820
    Begyűjtött 812 köszönetet
    576 hozzászólásával

    Alapbeállítás re: Űrlap érdekesség

    PHP kód:
     <?php     

    if(strlen($email)==0) die();
    if(
    strlen($telefon)==0) die();
    if(
    strlen($helyszin)==0) die();
    if(
    strlen($kezdes)==0) die();
    if(
    strlen($munkaleiras)==0) die();
          
    ?>
    Ez helyett:
    PHP kód:
    if(!$_POST['name'] || !$_POST['email'] || !$_POST['telefon'] || !$_POST['helyszin'] || !$_POST['kezdes'] || !$_POST['munkaleiras']) {
       echo 
    'Nem adtál meg minden adatot!'
    Mert true-t ad vissza, ha el van küldve, de üres a string. Ezért kell a karakterlánc hosszát leellenőrizni.


    Utoljára módosítva: earnnet által : 2012-09-21 13:16

  4. #14
    'Say Hello To My Little Friend'
    Csatlakozott
    10-04-13
    Hely
    Budapest
    Hozzászólás
    2.784
    Begyűjtött 863 köszönetet
    659 hozzászólásával

    Alapbeállítás re: Űrlap érdekesség

    Idézet earnnet eredeti hozzászólása Hozzászólás megtekintése
    PHP kód:
     <?php     

    if(strlen($email)==0) die();
    if(
    strlen($telefon)==0) die();
    if(
    strlen($helyszin)==0) die();
    if(
    strlen($kezdes)==0) die();
    if(
    strlen($munkaleiras)==0) die();
          
    ?>
    Ez helyett:
    PHP kód:
    if(!$_POST['name'] || !$_POST['email'] || !$_POST['telefon'] || !$_POST['helyszin'] || !$_POST['kezdes'] || !$_POST['munkaleiras']) {
       echo 
    'Nem adtál meg minden adatot!'
    Mert true-t ad vissza, ha el van küldve, de üres a string. Ezért kell a karakterlánc hosszát leellenőrizni.
    Én ezt szoktam használni, és eddig nem fordult elő, hogy rosszul működött, nem adott vissza TRUE-t. A die()-ok pedig biztosan nem jók. Az egész oldalt nem akarjuk kilőni, hogyha ilyen van, csak egy hobaüzenetet kinyomni, és az e-mail küldést tiltani. Az oldal attól még töltődjön be szépen.
    Üres karakterláncra FALSe-ot ad vissza, azt tagadva TRUE-t kapunk. Akkor lenne igazad, ha iset-et használnánk. De ha nagyon akarod, akkor is inkább empty függvény, mint a hossz ellenőrzése...


    Utoljára módosítva: Emphus által : 2012-09-21 13:52

  5. #15
    Bölcs T.Gergely logója
    Csatlakozott
    11-05-08
    Hely
    Pest megye
    Hozzászólás
    551
    Begyűjtött 146 köszönetet
    114 hozzászólásával

    Alapbeállítás re: Űrlap érdekesség

    Köszönöm, mindenkinek a segítséget.
    Beszúrtam a kódokat, amiket írtatok. Holnap visszajelzek, hogy jönnek-e még az üres e-mailek.



  6. #16
    Bölcs T.Gergely logója
    Csatlakozott
    11-05-08
    Hely
    Pest megye
    Hozzászólás
    551
    Begyűjtött 146 köszönetet
    114 hozzászólásával

    Alapbeállítás re: Űrlap érdekesség

    Na, hát azóta nincsenek "fantom email-ek". Köszönöm, még egyszer mindenkinek.



Oldal: 2 / 2 ElsőElső 12

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •