Form Yanıtları PHP Kullanarak MySQL Veritabanınıza Nasıl Gönderilir

December 2, 2021

Öğrenmeniz gereken ilk şey, form yanıtı verilerini Teşekkürler Sayfanıza nasıl göndereceğinizi bilmektir. Bu işlem için buradaki kılavuzu okuyabilir ve yapılacakları öğrenebilirsiniz:

Formunuzu özel bir URL sayfasına veri göndermek için ayarladığınızı varsayarsak, MySQL’de bir form oluşturmak için bazı PHP/MySQL kodlamaları yapmanız gerekecektir.

Jotform tarafından gönderilen veriler aslında bir dizindir, bu nedenle dizin anahtarlarını ve değerlerini bulmak için aşağıda verilen değerleri komut dosyanıza eklemeyi denemeniz gerekir:

  print_r($_POST);
?>

Daha sonra, formunuzu test etmek için gerçek bir gönderim yapın. Yanıtı gönderdikten sonra, form yanıtı verilerini alacak Teşekkürler Sayfanızın URL’sine yönlendirileceksiniz. Örnek bir formdan verileri incelemek için: https://www.jotform.com/form/11814245193.

Array
(
    [submission_id] => 186725738203177939
    [formID] => 11814245193
    [ip] => 203.177.93.98
    [name] => sample name test data
    [email] => email@example.com
    [phonenumber13] => Array
        (
            [0] => 3343
            [1] => 4234
        )
    [subject7] => Technical Support assistance
    [message6] => test
)

Ayrıca PHP betiğinizi Postman Tool ile test edebilirsiniz. Postman’i bu bağlantıdan indirebilirsiniz.

Gönderilen yanıt verilerini görmek için PHP betiğinizi test edebilir ve yerel ortamınızda bile basit hata ayıklama yöntemlerini kolayca çalıştırabilirsiniz.

Postman kullanarak PHP betiğimizle basit bir POST isteği yapalım.

PHP betiği örneğini buradan indirebilirsiniz. Dizin sonucunu kendiniz görmek için bu formu kullanarak form yanıtı oluşturmaktan çekinmeyin.

Artık anahtarlara sahip olduğumuza göre bu bilgilerle oynayabilir, veri tabanında kendi alanlarımızı oluşturabiliriz. Bunun örneği için, aşağıda benim alanlarımı inceleyebilirsiniz.

PHP Betiğini Oluşturma

Artık veritabanınızı oluşturduğunuza göre, PHP betiğinizi oluşturmaya başlayabilirsiniz.

Adım 1: Veritabanınızda olası SQL güvenlik açıklarını engellemek için, her gönderi değişkeni için PHP’nin addslash() fonksiyonunu çalıştırmamız gerekecektir. $_POST verisi bir dizin olduğu için, her değişken üzerinde döngü yapacak bir fonksiyon yapalım:

// Bu fonksiyon, çok boyutlu dizinler de dahil olmak üzere her yazı dizini içinde çalışacaktır
functionExtendedAddslash(&$params){
    foreach($params as &$var){
        // $var bir dizin mi değil mi kontrol edin. Eğer öyleyse, içindeki her bir anahtara döngü yapmak için başka bir ExtendedAddslash() fonksiyonu başlatır.
        is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
    }
}
Her $_POST değişkeni için ExtendedAddslash() fonksiyonunu başlatExtendedAddslash($_POST);?>
ExtendedAddslash($_POST);
?>

Adım 2: Her POST verisini bir değişkenle tanımlayalım. Ayrıca, iki telefon numarası POST değişkenini birbirlerine bağladığımı göreceksiniz (Bu bana daha rahat geldiği için böyle yaptım.):

$submission_id = $_POST[‘submission_id’];
$formID = $_POST[‘formID’];
$ip = $_POST[‘ip’];
$name = $_POST[‘name’];
$email = $_POST[’email’];
$phonenumber = $_POST[‘phonenumber13’][0] .”-“. $_POST[‘phonenumber13’][1];
$subject = $_POST[‘subject7’];
$message = $_POST[‘message6’];
?>

Adım 3: Şimdi komut dosyası için MySQL’e veritabanı bağlantısını başlatıyoruz:

$db_host = ‘db hostname here’;
$db_username = ‘db username here’;
$db_password = ‘db password here’;
$db_name = ‘name of your database’;
mysql_connect( $db_host, $db_username, $db_password) ordie(mysql_error());
mysql_select_db($db_name);
?>

Adım 4: Bir ekleme veya güncelleme yapılması gerekip gerekmediğini kontrol etmek için, form yanıtı kimliği varsa bir arama başlatılmalı ve ardından form yanıtı kimliği varsa, bu form yanıtı kimliği kullanılarak bir güncellemenin başlatılması için bir koşul ayarlanmalıdır. Form yanıtı kimlik eşleşmesi yoksa, yeni bir ekleme yapılacaktır:

// form yanıtı kimliği ara
$query = “SELECT * FROM `table_name` WHERE `submission_id` = ‘$submission_id'”;
$sqlsearch = mysql_query($query);
$resultcount = mysql_numrows($sqlsearch);
if($resultcount > 0){
    mysql_query(
        “UPDATE `table_name` SET
        `name` = ‘$name’,
        `email` = ‘$email’,
        `phone` = ‘$phonenumber’,
        `subject` = ‘$subject’,
        `message` = ‘$message’
        WHERE `submission_id` = ‘$submission_id'”
    ) ordie(mysql_error());
}else{
    mysql_query(
        “INSERT INTO `table_name` (submission_id, formID, IP, name, email, phone, subject, message)
        VALUES (‘$submission_id’, ‘$formID’, ‘$ip’,’$name’, ‘$email’, ‘$phonenumber’, ‘$subject’, ‘$message’)”
    ) ordie(mysql_error());
}
?>

İşlem tamamlandı. Komut dosyasını Teşekkürler Sayfası PHP dosyanız olarak adlandırın ve özel Teşekkürler Sayfası URL’nizde belirlediğiniz ayrıntıyla tam olarak eşleşecek şekilde yükleyin.

Komut dosyasının son hali aşağıdaki gibi olmalıdır:

// Bu fonksiyon, çok boyutlu dizinler de dahil olmak üzere her yazı dizini içinde çalışacaktır
functionExtendedAddslash(&$params){
    foreach($params as &$var){
        // check if $var is an array. If yes, it will start another ExtendedAddslash() function to loop to each key inside.
        is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
    }
}
// Initialize ExtendedAddslash() function for every $_POST variable
ExtendedAddslash($_POST);
$submission_id = $_POST[‘submission_id’];
$formID = $_POST[‘formID’];
$ip = $_POST[‘ip’];
$name = $_POST[‘name’];
$email = $_POST[’email’];
$phonenumber = $_POST[‘phonenumber13’][0] .”-“. $_POST[‘phonenumber13’][1];
$subject = $_POST[‘subject7’];
$message = $_POST[‘message6’];
$db_host = ‘db hostname here’;
$db_username = ‘db username here’;
$db_password = ‘db password here’;
$db_name = ‘name of your database’;
mysql_connect( $db_host, $db_username, $db_password) ordie(mysql_error());
mysql_select_db($db_name);
// search submission ID
$query = “SELECT * FROM `table_name` WHERE `submission_id` = ‘$submission_id'”;
$sqlsearch = mysql_query($query);
$resultcount = mysql_numrows($sqlsearch);
if($resultcount > 0){
    mysql_query(
        “UPDATE `table_name` SET
        `name` = ‘$name’,
        `email` = ‘$email’,
        `phone` = ‘$phonenumber’,
        `subject` = ‘$subject’,
        `message` = ‘$message’
        WHERE `submission_id` = ‘$submission_id'”
    ) ordie(mysql_error());
}else{
    mysql_query(
        “INSERT INTO `table_name` (submission_id, formID, IP, name, email, phone, subject, message)
        VALUES (‘$submission_id’, ‘$formID’, ‘$ip’,’$name’, ‘$email’, ‘$phonenumber’, ‘$subject’, ‘$message’)”
    ) ordie(mysql_error());
}
?>

Bu kılavuz size yardımcı oldu mu?
İletişim Desteği:

Müşteri destek ekibimiz 7/24 hizmet vermektedir ve ortalama yanıt süremiz bir veya iki saat arasında değişmektedir.
Ekibimizle aşağıda belirtilen linkler aracılığıyla iletişime geçebilirsiniz:

Destek Forumu: https://www.jotform.com/answers/

Jotform Desteği ile iletişime geçmek için: https://www.jotform.com/contact/

Yorum Gönder:

Jotform Avatar
Bu site reCAPTCHA ve Google Gizlilik Politikası tarafından korunmaktadır ve Hizmet Koşulları geçerlidir.

Yorum:

Podo Commentİlk yorum yapan sen ol.