PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: Phpeerija 2006-01-14 23:05:19
On siis täitsa tavaline vorm, näiteks selline:

<form method="post" action="?">
<input type="text" name="nimi" value="Nimi">
<input type="text" name="email" value="E-mail">
<input type="submit" value="Lisa kommentaar">
</form>

Näiteks nii lisan andmed mysql'li:

PHP kood:
 
    
<?php
    $result
MYSQL_QUERY("INSERT INTO kasutajad (nimi, E-mail, sisu)"."VALUES ('$nimi', '$E-mail')");
       
    echo 
'Tänan';
    
?> 


Aga näiteks, kui samal lehel on veel sama nimega vormid(antud juhul siis Nimi ja E-mail), siis kuidas saaksin just soovitud vormist andmed mysql'li sisestada?

Taaskord loodan, et leidub kompetentseid ja teadmistega inimesi, kes oskavad asja selgitada või demonstreerida.
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: bon 2006-01-14 23:09:49
<form name="kala1">
</form>

<form name="kala2">

</form>

2'te ühe nimega vormi ei tohi olla ühel lehel.
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: Phpeerija 2006-01-14 23:13:23
Okei, aga kas enne mysql'li sisestamist ei saa vormi kontrolli teha, et ta tuleks õigest vormist?
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: nojah 2006-01-14 23:15:56
Aga tee nii:


<form action="?lisamysql=1">
inputid
</form>

<form action="?teemidagimuud=1">
inputid
</form>


Ja:


PHP kood:
 
if(isset($_GET['lisamysql'])){
// lisa
}
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: Phpeerija 2006-01-14 23:39:01
TSITEERITUD:
Aga tee nii:


<form action="?lisamysql=1">
inputid
</form>

<form action="?teemidagimuud=1">
inputid
</form>


Ja:


PHP kood:
 
if(isset($_GET['lisamysql'])){
// lisa
}

Äkki saad lisamise punaselt värvitult ja puust tehtult teha? :P
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: veel_midagi? 2006-01-15 00:20:51

<form method="post" action="?teemidagi=1">
<input type="text" name="nimi" value="Nimi">
<input type="text" name="email" value="E-mail">
<input type="submit" value="Lisa kommentaar">
</form>



PHP kood:
 
if(isset($_GET['teemidagi']))
{
     
//mysql yhendamine
     
mysql_query('INSERT INTO `kuhugi` VALUES("'.addslashes($_POST['nimi']).'", .addslashes($_POST['email']). )');
}


teisel formil muudad actioni ja sama moodi
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: jajaa 2006-01-15 08:59:32
TSITEERITUD:

<form method="post" action="?teemidagi=1">
<input type="text" name="nimi" value="Nimi">
<input type="text" name="email" value="E-mail">
<input type="submit" value="Lisa kommentaar">
</form>



PHP kood:
 
if(isset($_GET['teemidagi']))
{
     
//mysql yhendamine
     
mysql_query('INSERT INTO `kuhugi` VALUES("'.addslashes($_POST['nimi']).'", .addslashes($_POST['email']). )');
}


teisel formil muudad actioni ja sama moodi
ja see on kontroll? ma võin igast serverist lasta sinna sisse midagi, ei see ole mingi kontroll, isegi mu vanaema tuleks selle peale

on aga asjast, on siiski mõni võimalus kyll:
n: teed kontrollpildi kus peal on suvaline märkide jada ja lased kasutajal sisesta textiboxi selle väärtuse ning annad edasi väärtuses sessioone kasutades, nii ei saa teiste lehtede formidest andmeid sisestada-muidugi on vaja ikka kontroll ka teha

n:teed suvanimega CONSTANT'i (define('NIMEKE','väärtus');) ja kui asubki samal lehel formiga ka sisestaja, siis kontrollid
PHP kood:
 
if(NIMEKE=='väärtus'){
//kyllap siis on meie lehel ka form ja laseme lisada ka
}


EDU!
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: Phpeerija 2006-01-15 18:02:42
TSITEERITUD:
ja see on kontroll? ma võin igast serverist lasta sinna sisse midagi, ei see ole mingi kontroll, isegi mu vanaema tuleks selle peale

ee..ma ei arva nii. Mis valemi abil saad sa teisest serverist sinna midagi sisse lasta?
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: rtfm 2006-01-15 18:10:34
TSITEERITUD:

ee..ma ei arva nii. Mis valemi abil saad sa teisest serverist sinna midagi sisse lasta?


lihtsalt postib sinu lehe aadressile. Selle vastu aitab, kui vormile panna alati kaas amingi hidden väli kus on mingi andmete allkiri
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: jajaa 2006-01-15 18:11:29
enamat pole vajagi:
PHP kood:
 
<form method="post" action="http://www.domeen.ee/leht.php?teemidagi=1">
<
input type="text" name="nimi" value="Nimi">
<
input type="text" name="email" value="E-mail">
<
input type="submit" value="Lisa kommentaar">
</
form>


http://www.domeen.ee/leht.php - aadress kus sul asub see enda form

RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: jajaa 2006-01-15 18:17:39
TSITEERITUD:


lihtsalt postib sinu lehe aadressile. Selle vastu aitab, kui vormile panna alati kaas amingi hidden väli kus on mingi andmete allkiri
ja hidden väljale ei aita mingist staatilisest allkirjast

ise olen kasutanud sellist lahendust(juhul kui kasutaja sisse loginud on):


PHP kood:
 
if($_POST['submit_väli_v_nii'] && $_SESSION['kasutajasessioon']){
//lasen andmed tabelisst v mida iganes
}

//töötab ilusti, muidugi on mul ta veidi turvalisemalt kontrollidega, aga mõte on selline:)


sest sessi ei anna teiselt lehelt sulle saata ikkagi:)

EDU!

Viimati muudetud: 15-01-2006 18:19:24
Muutja: jajaa
Põhjus: eieii

RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: Phpeerija 2006-01-15 18:21:14
Aga näiteks, kui kontrollitakse sisestuse pikkust ja veelmidagi, kas ka siis saab vormist andmeid saata?
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: jajaa 2006-01-15 18:23:47
TSITEERITUD:
Aga näiteks, kui kontrollitakse sisestuse pikkust ja veelmidagi, kas ka siis saab vormist andmeid saata?
ikka, ta saadab sulle vajalike pikkuste ja raskustega, ainult et kui sul on kontrollid enne sisestust piisavad-ei saa sellest teisest serverist saatmisest suurt kasu midagi

aga siiski loe mu eelmisi postitusi.

EDU:)
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: nojah 2006-01-15 18:31:19
Kui sa andmed õigesti vastu võtad, siis on täiesti ükskõik kust serverist nad tulevad.
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: monte_ 2006-01-16 09:34:51
TSITEERITUD:

ee..ma ei arva nii. Mis valemi abil saad sa teisest serverist sinna midagi sisse lasta?


genereerid HTTP päise kus vajalikud POST muutujad sees ja ongi kogu moos. HTTP request pole midagi muud kui kindlas formaadis paljas tekst. Sunnad selle PORT 80 le ja valetad klindiks näiteks internet exploreri või kasvõi opera. kõik.

Lisaks on veel mail injection... kus lisatakse teksile MIME maili lisapäised ja kasutatakse mailivorme spämmimisest. lähemalt mail() funktsiooni kommentaarides

RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: ilus_poiss 2006-01-16 15:56:31
issanda aastal 21-Sep-2005 09:39 kirjutas hr Zoic alljärgneval lehel
http://ee.php.net/manual/en/reserved.variables.php#reserved.
järgmist:

I just wrote up this function to secure forms on my site so that you can't submit a form from anywhere but your site. This is extremely effective in securing your forms from hacking attempts.


PHP kood:
 
<?php

   
function form_post_check()
   {
       
$referring_url $_SERVER['HTTP_REFERER'];    // get the referring URL
       
$host $_SERVER['HTTP_HOST'];    // get the header from the current request (example: www.yoursite.com)
       
$valid_url 'http://'.$host.'/';    // finish defining a valid referring URL
       
$valid_len strlen$valid_url );    // get the length of the valid url

       // if the valid url isn't the first part of the referring url
       
if ( substr$referring_url0$valid_len ) != $valid_url )
       {
           die( 
'You submitted this form from an invalid URL.' );    // stop everything and display a message
       
}
   }

?>
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: Phpeerija 2006-01-16 16:25:38
Ja kuidas seda reaalselt kasutada, ehk teed väikese näite?
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: jajaa 2006-01-16 16:41:28
TSITEERITUD:
Ja kuidas seda reaalselt kasutada, ehk teed väikese näite?
kuule sa peaksid ikka veidike lihtsalt algteadmisi omandama enne kui hakkad kuhugi midagi sisestama, sulle anti funktsioon ette,

php.ee ja php.center.ee õpetused loe läbi

Viimati muudetud: 16-01-2006 16:41:50
Muutja: jajaa
Põhjus:

RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: lk_ 2006-01-16 20:07:48
TSITEERITUD:

I just wrote up this function to secure forms on my site so that you can't submit a form from anywhere but your site. This is extremely effective in securing your forms from hacking attempts.


Pole see nii ekstreemselt efektiivne midagi - refereri annab võltsida
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: monte_ 2006-01-17 10:00:01
Referi võltsimine on jumalast savi asi. referer antakse edasi selle sama HTTP HEADERIGA, üks rida juurde ja muusika. Kes suudab HTTP päringu genereerida, suudab sinna ka selle referer rea juurde
kirjutada ....
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: Phpeerija 2006-01-17 15:19:34
Ahha, tänan neid, kes vastust ette ei öeldnud, tänu teile mõtlesin ja hakkasin kasutama sellist asja:


PHP kood:
 

<?php
if ($_POST['submit']) {
    
// siin kontrollime:
    
if (stristr($_SERVER['HTTP_REFERER'], 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'])) {
        
// nüüd teeme midagi
    
} else echo 'Sisenemine väljastpoolt on keelatud';

    
}
else {
    
// siin on vorm
    // siin on <input type="submit" name="submit">
}
?>
RE: Kuidas veenduda, et andmed tulevad õigest vormist
Postitaja: jajaa 2006-01-17 17:05:51
TSITEERITUD:
Ahha, tänan neid, kes vastust ette ei öeldnud, tänu teile mõtlesin ja hakkasin kasutama sellist asja:


PHP kood:
 

<?php
if ($_POST['submit']) {
    
// siin kontrollime:
    
if (stristr($_SERVER['HTTP_REFERER'], 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'])) {
        
// nüüd teeme midagi
    
} else echo 'Sisenemine väljastpoolt on keelatud';

    
}
else {
    
// siin on vorm
    // siin on <input type="submit" name="submit">
}
?>
nu edu sulle...
RE: party poker
Postitaja: selka 2006-07-31 07:37:35
TSITEERITUD:
Now <a href='http://party-poker.wrkplace.com'>party poker</a> pocket <a href='http://party-poker.wrkplace.com'>http://party-poker.wrkplace.com</a> progressive outs multiplayer jam!


oh shit, thank you for these good links!!!!

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0996050834656