2009-08-28 14 views
5

यह वहाँ के लिए संभव है $_GET में मूल्य के किसी भी प्रकार से या $_POST जो है नहीं किसी सरणी या स्ट्रिंग?

जो लोग कोड को बेहतर पढ़ते हैं, उनके लिए वेब सर्वर पर इस सरल स्क्रिप्ट को चलाने के लिए संभव है और अपवाद फेंकने के लिए इसे प्राप्त करें?

// crash-me.php 
<?php 

function must_be_array_or_string($value) { 
    if(is_string($value)) 
     return; 
    if(is_array($value)) { 
     foreach($value as $subValue) 
      must_be_array_or_string($subValue); 
     return; 
    } 
    throw new Exception("Value is " . gettype($value)); 
} 

if(isset($_GET)) 
    must_be_array_or_string($_GET); 

if(isset($_POST)) 
    must_be_array_or_string($_POST); 

उत्तर

1

मैं फ़ाइल अपलोड करने के मामले में विश्वास करते हैं, 'error' और 'size' क्षेत्रों ints होगा।

7

फ़ाइल अपलोड के अलावा, मान हमेशा तार या सरणी होते हैं।

+0

फ़ाइल अपलोड '$ _POST' या' $ _GET' में मौजूद नहीं हैं, तो आपको फ़ाइल अपलोड पर जानकारी के लिए '$ _FILES' की जांच करनी होगी (और फिर भी सामग्री अभी भी सरणी और तार हैं)। – dcousineau

+0

@dcousineau: क्या आप निश्चित हैं? मेरा मानना ​​है कि '$ _FILES' में' त्रुटि 'अनुक्रमणिका में' UPLOAD_ERR_OK' जैसे पूर्णांक हैं। –

संबंधित मुद्दे