PHP kullanarak MySQL INSERT SORGULAMA değişken varlığını kontrol etmek Muhtasar yolu

1 Cevap php

Ben bir alışveriş sepeti öğeler eklemek için bir PHP komut dosyası yazıyorum. Benim alışveriş sepeti tablo kullanıcı'kimliği için alanları, ürün kimliği, session id, notlar ve birkaç diğerleri vardır. Alanlardan bazıları boş olabilir. Örneğin:

Birisi imzalı değilse, o zaman tabloda, oturum id saklamak ve onlar oturum açarsanız, bu yüzden kullanıcıya tablodaki öğeleri maç için buranın yol var kendi kimliği ekleyin. Onlar, ben kimliği ekleyeceğiz. O INSERT sorgusu gelince, ben böyle bir şey yapabilirsiniz:

$add_sql = "INSERT into sessionBasket (userid) VALUES ( '". isset($_SESSION["userid"]) ? $_SESSION["userid"] : "") ."'";

Insanlar ya da imzalanmış olabilir çünkü değişken kontrol ve dallanma bana çok zaman tasarruf olur, ürün notları ya da değil, bu tür bir şey olabilir.

1 Cevap

Eyvah! SQL Injection! sizin tüm veritabanını kaybedebilirsiniz

Eğer SQL yerleştirilmesi için hazırlanan tablolarda bakıyor olmalıdır.

Sen mysqli arayüzü kullanmak gerekir ama bu gibi gider:

$statement = $db_connection->prepare("insert into ... VALUES(?)");
$statement->bind_param("id", $sid);
$statement->execute();

Bu SQL enjeksiyon saldırıları önlemek olacaktır.

Mutlak bir minimum en az dize kaçmak gerekir.

$sid = isset($_SESSION[userid]) ? mysql_real_escape_string($_SESSION[userid])) : '';
$add_sql = "insert into ... values($sid)";