JavaScript tarayıcınızda engellendi. Bu sitenin çalışması için JavaScript'e izin verin!
Formlarla Çalışmak
HTML formları, Web sayfasının kullanıcısından sunucuya veri göndermek için kullanılır. PHP, formlarla çalışmak için bir dizi özel araç sağlar.
Önceden Tanımlanmış Değişkenler
PHP, tüm uygulamalar belirli bir ortamda çalıştığında değişmeyen bir dizi önceden tanımlanmış değişkene sahiptir. Bunlara ortam değişkenleri veya ortam değişkenleri de denir. Apache Web sunucusu ortamının ayarlarını ve tarayıcının isteği hakkındaki bilgileri yansıtırlar. URL, sorgu dizesi ve HTTP isteğinin diğer öğelerinin değerlerini almak mümkündür.
Tüm önceden tanımlanmış değişkenler $GLOBALS ilişkisel dizisinde bulunur. Bu dizi, ortam değişkenlerine ek olarak programda tanımlanan global değişkenleri de içerir.
örnek 1
"; ?>
Sonuç olarak, ekranda ortam değişkenleri de dahil olmak üzere tüm global değişkenlerin bir listesi görünecektir. En sık kullanılanlar şunlardır:
Değişken | Tanım | İçerik |
---|---|---|
$_SERVER["HTTP_USER_AGENT"] | İstemci adı ve sürümü | Mozilla/5.0 (uyumlu; Googlebot/2.1; +http://www.google.com/bot.html) |
$_SERVER["UZAKTAN_ADDR"] | IP adresi | 144.76.78.3 |
getenv("HTTP_X_FORWARDED_FOR") | Dahili istemci IP adresi | |
$_SERVER["İSTEK_YÖNTEMİ"] | İstek yöntemi (GET veya POST) | ALMAK |
$_SERVER["QUERY_STRING"] | Bir GET isteğinde, URL ile birlikte iletilen kodlanmış veriler | |
$_SERVER["REQUEST_URL"] | Sorgu dizesi dahil tam istemci adresi | |
$_SERVER["HTTP_REFERER"] | İsteğin yapıldığı sayfanın URL'si | |
$_SERVER["PHP_SELF"] | Yürütülebilir programın yolu | /index.php |
$_SERVER["SERVER_NAME"] | Alan adı | İnternet sitesi |
$_SERVER["REQUEST_URI"] | Yol | /php/php_form.php |
Kullanıcı girdisini işleme
PHP giriş işleyicisi, giriş formlarını içeren HTML metninden ayrılabilir veya aynı sayfaya yerleştirilebilir.
Örnek 2
Burada veri aktarım düğmesi yok çünkü. bir tuşa basıldığında bir alandan oluşan bir form otomatik olarak gönderilir
Çoklu değer seçimine sahip bir öğeyi işlerken, seçilen tüm değerlere erişmek için öğe adına bir çift köşeli parantez eklenmelidir. Birden çok öğe seçmek için Ctrl tuşunu basılı tutun.
Örnek 3.1
ÖRNEK 3.1 SONUÇ:
Örnek 3.2
- "; foreach ($değer olarak $Item) echo "
- $değer"; yankı "
Örnek 4. Onay kutularından değerleri kabul etme
$v) ( if($v) echo "$k programlama dilini biliyorsunuz!"; else echo "$k programlama dilini bilmiyorsunuz.
"; } } ?>
ÖRNEK 4 SONUÇ:
Örnek 5
"; ?>Formları gerçek alan adlarına bakmadan işlemek mümkündür.
Bunu yapmak için (aktarım yöntemine bağlı olarak) $HTTP_GET_VARS veya $HTTP_POST_VARS ilişkisel dizisini kullanabilirsiniz. Bu diziler, gönderilen formun her bir öğesi için ad/değer çiftleri içerir. Umursamıyorsanız, $_REQUEST ilişkisel dizisini kullanabilirsiniz.
Örnek 6
"; ?>
Örnek 7. "@" operatörünü kullanarak bir düğme tıklamasını işleme.
Header() işlevini kullanarak, tarayıcıya "Location" başlığını göndererek kullanıcıyı yeni bir sayfaya yönlendirebilirsiniz.
Örneğin:
header("Location: ex2.php"); ?>
Bir dosyayı sunucuya aktarma. Dosya yükleme. Yüklemek
PHP, sunucuya dosya göndermenizi sağlar. Dosya gönderimi için HTML formu, enctype="multipart/form-data" bağımsız değişkenini içermelidir.
Ayrıca, formun dosya kopyalama alanından önce max_file_size adlı gizli bir alanı olmalıdır. Bu gizli alan, aktarılan dosyanın maksimum boyutunu içermelidir (genellikle 2 MB'den fazla değildir).
Dosya aktarım alanının kendisi, type="file" bağımsız değişkenine sahip normal bir INPUT öğesidir.
Örneğin:
Bir dosya sunucuya yüklendikten sonra benzersiz bir ad verilir ve geçici dizinde saklanır. Dosyanın tam yolu, adı bu dosyanın aktarılacağı alanın adıyla eşleşen global bir değişkene yazılır. Ayrıca PHP, geçirilen dosya hakkında bazı ek bilgileri diğer global değişkenlerde saklar:
Örnek 8
"; echo "size: ".$_FILES["userfile"]["size"]."
"; echo "type: ".$_FILES["userfile"]["type"]."
"; } ?>
Sunucuya dosya yükleme örnekleri
Yüklenen dosyanın sunucu tarafından dönüştürülmesiyle ilgili sorunlar varsa, kodlu sembol 0x00 boşlukla değiştirilir (kodlu karakter 0x20), dosyaya ekleyin httpd.conf Apache dizininden (/usr/local/apache) aşağıdaki satırları alın.
Bu dersimizde fonksiyonu öğreneceğiz. posta(), oluşturma örneğinde PHP'de geri bildirim formları alınan verilerin daha sonra posta ile gönderilmesiyle.
Bunu yapmak için iki dosya oluşturacağız - format.php ve mail.php. İlk dosya yalnızca kullanıcı girişi için alanları olan bir form içerecektir. etiketin içinde biçim- buton "Göndermek" ve nitelik eylem, işleyiciye atıfta bulunur - mail.php, düğmeye basıldığında formdaki verilere erişilmesidir. "Göndermek". Örneğimizde, form verileri adlı bir web sayfasına gönderilir. "/mail.php". Bu sayfa için bir komut dosyası içerir PHP form verilerini işleyen:
Form, tarayıcıda görsel olarak bu şekilde görünür.
Ardından, dosyanın kodunu yazın mail.php. Değişkenlerin isimlerini kendimiz buluyoruz. AT PHP değişken işaretle başlar $ , ardından değişkenin adı. Değişkenin metin değeri tırnak içine alınır. Değişkenlerin yardımıyla, formun içeriği yöneticinin e-postasına gönderilir, yalnızca form öğesi adı - köşeli parantez içindeki değer değiştirilir. isim.
$to=" [e-posta korumalı]"; // formdaki verilerin alıcısının e-posta adresi
$tema = "PHP İletişim Formu"; // alınan e-postanın konusu
$message = "Adınız: ".$_POST["ad"]."
";// name=name formundan elde edilen değeri değişkene atayın
$message .= "E-posta: ".$_POST["email"]."
"; //formdan elde edildi name=email
$message .= "Telefon numarası: ".$_POST["telefon"]."
"; //ad=telefon formundan alınmıştır
$mesaj .= "Mesaj: ".$_POST["mesaj"]."
"; //formdan elde edildi name=message
$headers = "MIME Sürümü: 1.0" . "\r\n"; // başlık, format artı yeni satır karakteriyle eşleşir
$headers .= "İçerik türü: metin/html; charset=utf-8" . "\r\n"; // gönderilen içeriğin türünü belirtir
mail($to, $tema, $mesaj, $başlıklar); //değişkenlerin değerlerini alıcının e-postasına gönderir
?>
Böylece dizideki veriler $_POST karşılık gelen değişkenlere geçirilecek ve işlev kullanılarak postaya gönderilecek posta. Formumuzu dolduralım ve gönder butonuna basalım. E-postanızı eklemeyi unutmayın. Mektup hemen geldi.
PHP'nin en güçlü yönlerinden biri, HTML formlarıyla nasıl çalıştığıdır. Buradaki anahtar, her form öğesinin otomatik olarak PHP programlarınıza sunulmasıdır. PHP'de formları kullanma hakkında daha fazla bilgi için bölüme bakın. İşte bir HTML formu örneği:
Beispiel #1 En basit HTML biçimi
Bu form hakkında özel bir şey yok. Bu, herhangi bir özel etiket içermeyen normal bir HTML formudur. Kullanıcı formu doldurup gönder butonuna tıkladığında action.php sayfası çağrılır. Bu dosya şöyle bir şey içerebilir:
Beispiel #2 Form verilerini işleme
Merhaba,
.
Sanayıllar.
Bu programdan örnek çıktı:
Merhaba Sergey. 30 yaşındasın.
İle kod parçalarını dikkate almazsanız htmlözel karakterler() ve (int), bu kodun çalışma prensibi basit ve açık olmalıdır. htmlözel karakterler() "özel" HTML karakterlerinin düzgün bir şekilde kodlanmasını sağlar, böylece kötü amaçlı HTML veya Javascript sayfanıza eklenmez. Bir sayı olması gerektiğini bildiğimiz yaş alanı, basitçe dönüştürmek içinde tam sayı , istenmeyen karakterlerden otomatik olarak kurtulacak. PHP bunu bir uzantı ile otomatik olarak da yapabilir. filtre. Değişkenler $_POST["ad"] ve $_POST["yaş"] PHP tarafından sizin için otomatik olarak yüklenir. Daha önce, süper küresel bir değişken kullandık $_SERVER, burada süper küresel değişkeni aynı şekilde kullanıyoruz $_POST, tüm POST verilerini içerir. dikkat, ki gönderme yöntemi(yöntem) formumuz POST'tur. yöntemi kullanacak olursak ALMAK, o zaman form bilgimiz süper küresel bir değişkende olurdu $_GET. Ek olarak, değişkeni kullanabilirsiniz. $_REQUEST veri kaynağı alakasız ise. Bu değişken, GET, POST, COOKIE verilerinin bir karışımını içerir.
15 yıl önce
HTTP spesifikasyonuna göre, sunucu tarafında bir şeyin durumunu değiştirmek için formu kullanırken POST yöntemini kullanmalısınız. Örneğin, bir sayfanın kullanıcıların kendi yorumlarını eklemelerine izin veren bir formu varsa, bunun gibi sayfa burada, form POST kullanmalıdır. bu yüzden bu sayfalar yer imi eklenmez veya önbelleğe alınmaz.
GET yöntemini, formunuz sunucudan bir şey alırken ve aslında hiçbir şeyi değiştirmediğinde kullanmalısınız. Örneğin, bir arama motoru için form GET kullanmalıdır, çünkü bir Web sitesinde arama yapmak müşterinin umursadığı hiçbir şeyi değiştirmemelidir ve bir arama motoru sorgusunun sonuçlarını işaretlemek veya önbelleğe almak, yer işareti koymak veya önbelleğe almak kadar faydalıdır. statik bir HTML sayfası.
2 yıl önce
Açıklığa kavuşturmaya değer:
POST, GET'ten daha güvenli değildir.
GET'e karşı POST'u seçmenin nedenleri, isteğin amacı (bilgi "gönderiyor musunuz?"), isteğin boyutu (bir URL'nin ne kadar uzun olabileceğine ilişkin sınırlamalar vardır ve GET parametrelerinin gönderildiği gibi) çeşitli faktörleri içerir. URL) ve İşlemin ne kadar kolay paylaşılabilir olmasını istediğinizi - Örnek, Google Aramaları GET'dir, çünkü yalnızca URL'yi paylaşarak arama sorgusunu kopyalayıp başka biriyle paylaşmayı kolaylaştırır.
Bir GET'in paylaşılması POST'tan daha kolay olduğu için güvenlik burada yalnızca bir husustur. Örnek: GET tarafından bir parola gönderilmesini istemiyorsunuz, çünkü kullanıcı ortaya çıkan URL'yi paylaşabilir ve yanlışlıkla parolasını açığa çıkarabilir.
Ancak, ağ bağlantısının kendisini korumak için TLS/SSL dağıtmazsanız, bir GET ve bir POST'un iyi konumlandırılmış kötü niyetli bir kişi tarafından ele geçirilmesi eşit derecede kolaydır.
HTTP üzerinden gönderilen tüm Formlar (genellikle 80 numaralı bağlantı noktası) güvensizdir ve bugün (2017), herkese açık bir web sitesinin HTTPS (temelde HTTP + Aktarım Katmanı Güvenliği) kullanmaması için pek iyi neden yoktur.
Bonus olarak, TLS kullanırsanız, kullanıcılarınızın, sizin tarafınızdan konmamış trafiğinize kod (AD'ler) enjekte etme riskini en aza indirirsiniz.
Bir dizüstü bilgisayarda Skype'ı nasıl geri yükleyeceğimizi düşünüyoruz
Fixies masters tam sürüm Fixies oyunu tam sürüm bilgisayarınıza indir
Net framework 3 hatalarını yükleme veya güncelleme, düzeltme
Dünyadaki sanal para birimleri ve sanal borsalar
Altın Numaralar Güzel bir telefon numarası nasıl satılır