Kayıt komut ipuçları

4 Cevap php

Register.php

if (isset($_POST['submit'])) {

$username = mysql_real_escape_string(trim($_POST['username']));    
$email = mysql_real_escape_string(trim($_POST['email']));
$passwd = mysql_real_escape_string(trim($_POST['passwd']));

if (empty($username)) {
   die ('You need to enter a username.');
}...... else insert



}

?>

Bu mysql_real_escape_string kullanmak ve bu gibi trim iyi mi? Ya Kimsenin vb boş adlarını kayıt olabilirsiniz yapmak için bir Btter yoldur

Teşekkürler

4 Cevap

Ben bu kodu ile hiçbir sorunları görebilirsiniz. Mümkün olan en son ana kadar mysql_escape tasarrufu (Genellikle ilk kırpmak istiyorum (), ardından istenen herhangi bir doğrulama gerçekleştirmek, ve sonra mysql_escape (). Yapmak için gidiyoruz ancak doğrulama sonra hiçbir sorunu görmek boş dizeler için denetlemek için ise.

Evet ve hayır.

The "yes" part

Bu SQL Enjeksiyon için kullanıcı girişi sterilize iyidir. Boş bir dize etkilemez beri, bu yöntem ile herhangi bir yanlış pozitif veya diğer yan etkiler oluşturmaz.

The "no" part

Teknik olarak, çok erken verileri filtrelemek istemiyorum. Eğer veri geçerli olduğunu biliyorum ben, ilk Döşeme değerini kontrol, ve ardından bir sorgu için kaçmak olurdu.

if ( isset( $_POST['submit'] ) )
{
  $username = trim( $_POST['username'] );

  if ( '' == $username )
  {
    die ( 'You need to enter a username.' );
  } else {
    mysql_query( sprintf(
        "INSERT INTO table (username) VALUES('%s')"
      , mysql_real_escape_string( $username )
    ) );
  }
}

Eğer empty fonksiyonu ile 0 uzunlukta dize, kontrol zaman strlen() yerine empty() kullanımı ...

The following things are considered to be empty:

* "" (an empty string)
* 0 (0 as an integer)
* "0" (0 as a string)
* NULL
* FALSE
* array() (an empty array)
* var $var; (a variable declared, but without a value in a class)

Gördüğünüz gibi, tüm bu değerler, boş bir dize vardır.

Sen ikisini de kullanmak gerekir. O da verileri sterilize edecek, çünkü ben de filter_var kullanmanızı öneririz. Göz önünde birçok başka şeyler de vardır.

  • Kullanıcı adları büyük ihtimalle sadece harfler ve rakamlar olmalı
  • E-postalar uygun formatta olmalıdır
  • Sen () Her şeyi Döşeme gerekir