Topic: Emailas @

Sveiki!


As cia naujokas ir pradejau mokintis PHP MYSQL, tai dabar iskilo klausimas, kaip padaryti paprasciausia apsauga, kad butu parasytas formoje emailas, o ne kazkokia nesamone?

Pvz.: Geras email: "example@email.lt"
        O ne : "kazkas.bla.blaasdasdf" ?

Cia nukopijavau savo registracijos turini ir noreciau, kad kazka patartumete ar kazka pan., buciau labai dekingas :) :

<?php
include("DuomenysPOST.php");
include("mysql.php");
mysql_select_db("prisijungimas", $con);
$vartotojai = "SELECT * FROM vartotojai WHERE Emailas='$EPASTAS' or Vardas='$VARDAS'"; 
$row = mysql_fetch_array(mysql_query($vartotojai));

if($VARDAS == "" OR $PAVARDE == "" OR $METAI == "" OR $MENUO == "" OR $DIENA == "" OR $EPASTAS == "" OR $SLAPTAZODIS == "")
    {
        echo "<center><font style='color:red;background:silver;'><b>Palikote tuscia(-us) laukelius!!!</b></font></center>";
        include("Registracija.php");
    } elseif ($METAI >= 2010 OR $METAI <= 1900 OR $MENUO >= 13 OR $MENUO <= 0 OR $DIENA >= 33 OR $DIENA <=0) { 
        echo "<center><font style='color:red;background:silver;'><b>Tokie metai negalimi('$METAI-$MENUO-$DIENA')!!!</b></font></center>";
        include("Registracija.php");
    } elseif (strtolower($row['Vardas']) == strtolower($VARDAS) AND strtolower($row['Emailas']) == strtolower($EPASTAS)) { 
        echo "<center><font style='color:red;background:silver;'><b>Toks vardas ir E. pastas jau egzistuoja!!!</b></font></center>";
        include("Registracija.php");
    } elseif (strtolower($row['Vardas']) == strtolower($VARDAS)) { 
        echo "<center><font style='color:red;background:silver;'><b>Toks vardas jau egzistuoja!!!</b></font></center>";
        include("Registracija.php");
    } elseif (strtolower($row['Emailas']) == strtolower($EPASTAS)) { 
        echo "<center><font style='color:red;background:silver;'><b>Toks E. pastas jau egzistuoja!!!</b></font></center>";
        include("Registracija.php");
    } else {
        include("SekmingaREG.php");
    }
?>

Re: Emailas @

http://www.w3schools.com/php/func_filter_input.asp
Example yra tai ko tau reikia

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Emailas @

zygis wrote:

http://www.w3schools.com/php/func_filter_input.asp
Example yra tai ko tau reikia

Gal galetum isversti sia eilute lietuviskai kur raudonai pazimeta? :) : if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL))

Ten kur 'email' , tai is formos pavadinimas jo?
O FILTER_VALIDATE_EMAIL tai, kad patikrintu ar gerai parasytas email ar kazkas pan.?

Re: Emailas @

http://php.net/manual/en/filter.filters.validate.php

Re: Emailas @

Aciu, o pvz. kur cia esu parases :

elseif ($METAI >= 2010 OR $METAI <= 1900 OR $MENUO >= 13 OR $MENUO <= 0 OR $DIENA >= 33 OR $DIENA <=0) {

galima kazkaip kitaip apibresti, kad neirasytu belekokio menesio, metu ar dienos?

6 (edited by zygis 2012-07-17 10:17:52)

Re: Emailas @

O bandei tokių dalykų ieškoti dokumentacijoje? http://www.php.net/manual/en/function.checkdate.php

P.S. Pagal tavo tikrinimą tai 2009-02-32 irgi yra gera data

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Emailas @

zygis wrote:

http://www.w3schools.com/php/func_filter_input.asp
Example yra tai ko tau reikia

Sakyciau nera toks jau geras tas filtriukas?

<< FILTER_VALIDATE_EMAIL allows incomplete e-mail addresses to be validated, for examle john@gmail will validate as a proper e-mail address >>

As geriau jau pasirinkciau toki email tikrinima kuris galune darytu privaloma negu neprivaloma, nes pastarojo atvejo procentas bus daug mazensis.

Pilna visokiu funkciju ar regexu email tikrinimui. Googlas pades.

Re: Emailas @

Aciu, dabar iskylo klausimas, kaip reikia padaryti, kad tam faile visada atsimintu is mysql duomenis?, ar isvis man keist viska reikia ka as ten zemiau parasiau? arba reikia i kita .php faila rasyti?

Va as padares toki prisijungima ir su puslapiavimu, kai bandziau ieiti i puslapiavimo kita vieta, tai erroras, nes negauna info is mysql :

<?php
$EPASTAS = $_POST['email'];
$SLAPTAZODIS = $_POST['pw'];

if (!$EPASTAS OR !$SLAPTAZODIS) {
    echo "<meta http-equiv='refresh' content='0; URL=Prisijungimas.php'>";
}

include("mysql.php");
mysql_select_db("prisijungimas", $con);
$patikrinimas = "SELECT * FROM vartotojai WHERE Emailas='$EPASTAS' or Slaptazodis='$SLAPTAZODIS'";
$isskyrimas = mysql_fetch_array(mysql_query($patikrinimas));
mysql_close($con);

if($EPASTAS == "" OR $SLAPTAZODIS == "")
    {
        echo "<center><font style='color:red;background:silver;'><b>Palikote tuscius laukelius!!!</b></font></center>";
        include("Prisijungimas.php");
    } elseif (!filter_var($EPASTAS, FILTER_VALIDATE_EMAIL)) {
        echo "<center><font style='color:red;background:silver;'><b>Neteisingas E. pastas!!!</b></font></center>";
        include("Prisijungimas.php");
    } elseif (!$isskyrimas) {
        echo "<center><font style='color:red;background:silver;'><b>Ivesta neteisingas E. pastas arba Slaptazodis!!!</b></font></center>";
        include("Prisijungimas.php");
    } else {
    
    
    
    
            if (isset($_GET['puslapis'])) {
            $puslapis = $_GET['puslapis'];
            } else {
                $puslapis = "";
            }
    
            if ($puslapis == "") {
                echo "
                    <html>
                    <head>
                    <link rel='stylesheet' type='text/css' href='dizainas.css' media='screen'/>
                    </head>
                    <body>
                
                    <center>
                    <div id='puslapis'>
                        
                        <div id='header'>
                            Bandomoji svetaine!
                        </div>
                        <div id='sujungimas'>
                            <div id='sujungimasKAIRE'>
                                <div id='kaire'>
                                    
                                    
                                    Kaire
                                    
                                    
                                </div>
                                <div id='centras'>
                                
                                
                                    <center><p>INFORMACIJA</p></center>
                                    
                                    Tai bandomasis puslapis.
                                    
                                </div>
                            </div>
                            <div id='sujungimasDESINE'>
                                <div id='desine'>
                                
                                
                                    Sveiki, ".$isskyrimas['Vardas']."!
                                    </br>
                                    <table>
                                        <tr><th>Mano redagtorius</th></tr>
                                        <tr>
                                            <td>
                                                <a href='PrisijungimasEr.php?puslapis=VARTOTOJOinfo'>Mano informacija</a>
                                            </td>
                                        </tr>
                                    </table>
                                    
                                    
                                </div>
                            </div>
                            <br class='clear'>
                        </div>
                        <div id='apacia'>
                            Sukurta <i>Ernestyno</i>!!!
                        </div>
                    </div>
                    </center>
                    </body>
                    </html>
                ";
            }    
        
    }


?>

P.S. Paleva gavosi kazkokia :D

Re: Emailas @

Programuoti reiktų mokintis nuosekliai. Taip tiesiog niekada gerai nesigaus.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Emailas @

zygis wrote:

Programuoti reiktų mokintis nuosekliai. Taip tiesiog niekada gerai nesigaus.

As tiesiog norejau pasimokint registracija su prisijungimu sukurt, o veliau zadejau kitas funkcijas pasimokinti, bet dar sumasciau puslapiavima ikelti, todel ir problema gaunasi :) Galvoju ar imanoma kazka padaryt ar kitaip kazka sumastyti...

Bandysiu viska kitam faile, o pvz. yra komanda kuri pateikia kita .php faila? Su include ikelia informacija, o man reiketu, kad atidaryti visai nauja faila.

Re: Emailas @

Programavimas nėra tiesiog žinojimas ką daro viena ar kita funkcija. Klausi visiškų pagrindų, apie tai perskaitytum knygoje jau pirmame skyriuje... Arba http://www.php.net/manual/en/langref.php čia yra viskas tik nenuosekliai.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Emailas @

zygis wrote:

Programavimas nėra tiesiog žinojimas ką daro viena ar kita funkcija. Klausi visiškų pagrindų, apie tai perskaitytum knygoje jau pirmame skyriuje... Arba http://www.php.net/manual/en/langref.php čia yra viskas tik nenuosekliai.

Nuo rytojaus pradesiu skaityneti ir i sasiuvini rasyti :) Taip man lengviau ismokt ir jei primirstu pasiziuriu i sasiuvini :D

Re: Emailas @

Cia mazai kas rasineja, kaip matau :/

Re: Emailas @

Na į sąsiuvinį teks pačiam rašyti.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Emailas @

zygis wrote:

Na į sąsiuvinį teks pačiam rašyti.

Dekis, kad patari :) O kai pramoksiu, ka toliau skaityti?

Re: Emailas @

Na kai pradžią pramoksi matysi toliau pats. Nes kai nežinai, kad kad kažko nežinai, tai atrodo, kad viską žinai :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Emailas @

Ajaks wrote:
zygis wrote:

http://www.w3schools.com/php/func_filter_input.asp
Example yra tai ko tau reikia

Sakyciau nera toks jau geras tas filtriukas?

<< FILTER_VALIDATE_EMAIL allows incomplete e-mail addresses to be validated, for examle john@gmail will validate as a proper e-mail address >>

As geriau jau pasirinkciau toki email tikrinima kuris galune darytu privaloma negu neprivaloma, nes pastarojo atvejo procentas bus daug mazensis.

Pilna visokiu funkciju ar regexu email tikrinimui. Googlas pades.

su FILTER_VALIDATE_EMAIL viskas OK.

ICANN leidus registuoti savo TDL ne už kalnų ir username@gmail ar username@fb gali pasirodyti :)

Re: Emailas @

(float)(string) dazniausiai naudojama reiksmei suvenodinti? , nes kiek zinau atemus(1 - 0.97) gaunasi po kablelio daug skaiciu.

<?php
    $f = 0.03;
    $b = (float)(string)(1 - 0.97);

    var_dump($f == $b);
?>

Re: Emailas @

Neišku kam naudojama. (string) pavers į eilutę, o (float) atgal į tai kas buvo :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

20 (edited by Ernestyno888 2012-07-20 13:04:48)

Re: Emailas @

Objektai daznai naudojami?
Ar butinas var prirasyti visada?, nes kai neprirasau ismeta errora?
Ir (->) zenklas reiskia, kad duodama uzklausa ieiti i klase(class)?

As cia dar apie objektus aiskinuos :) Tai supratau, kad palengvina darba, nereikia kiekviena karta rasyti funkcijas.

Pvz. :

<?php
class zmogus {
    var $a ;

    function itraukti_zmogu($zmogus) {
        echo $this->a = $zmogus;
    }
    
    function gauti_zmogu() {
        $this->a;
    }
    
}
?><?php
$Vardas = "Jonas";
$Pavarde = "Jonaitis";
$PILNAS = $Vardas." ".$Pavarde;

$Vardas = new zmogus();
$Vardas->itraukti_zmogu($PILNAS);

echo $Vardas->gauti_zmogu();

?>