PHP Talep Formu - Ben nasıl kullanılacağını emin değilim

5 Cevap

Bu soru ile bana yardımcı olabilecek biri olduğunu umuyorum. Ben bir ASP programcı ve bu PHP nasıl çalıştığını emin değilim

echo '</textarea>
      <input type="hidden" name="g_word" id="g_word" value="$_POST[g_word]" />
      <input type="hidden" name="article_no" id="article_no" value="$_POST[article_no]" />
      </form>';

Nasıl yukarıdaki örnekte $_POST[article_no] kullanabilirim? Asp Ben bu gibi kullanılmış olurdu "+Request.Form("article_no")+". PHP Ben bunu nasıl yaparım?

Teşekkürler

5 Cevap

echo '</textarea><input type="hidden"
 name="g_word" id="g_word"
 value="'.$_POST[g_word].'" /> <input
 type="hidden" name="article_no"
 id="article_no"
 value="'.$_POST[article_no].'" /></form>';

Tek teklif kapatın ve concatonate bir nokta kullanmak

$value = "cool";
echo 'My String is ' . $value . '!!!!!';

Bu durumda, nokta artı birleştirme işlemi ile aynıdır.

Eğer yukarıda yayınlanmıştır çözümü kullanırsanız, xss saldırılarına karşı bazı temel koruma ekleyin lütfen - Örnek Htmlentities için ($ _POST ['article_no'])

echo '</textarea><input type="hidden"
name="g_word" id="g_word"
value="'.$_POST['g_word'].'" /> <input
type="hidden" name="article_no"
id="article_no"
value="'.$_POST['article_no'].'" /></form>';

Sen-s arasında article_no koymak zorunda.

I think Ben sorunuzu anladım; eğer bana bildirin çekinmeyin.

PHP (ve diğer birçok dilde) olarak, bir dize etrafında tırnak sayısı dize ayrıştırılır nasıl belirler. Tek tırnak kullanılırsa, o zaman dize şey (başka bir tek tırnak dışında - bunu dize bir parçası ziyade closequote olmayı düşünüyorsanız, bir eğik çizgi ile kaçtı gerekir) ayrıştırılır. Çift tırnak kullanılırsa, daha fazla şeyler ayrıştırılır, ama buna daha fazla kaçışa yapmak vardır.

Dizeleri takmadan değişkenler ile ilgili çeşitli yollar vardır.

Çift tırnak kullanımı:

echo "</textarea><input type=\"hidden\"
name=\"g_word\" id=\"g_word\"
value=\"$_POST['g_word']\" /> <input
type=\"hidden\" name=\"article_no\"
id=\"article_no\"
value=\"$_POST['article_no']\" /></form>';

Tek tırnak:

echo '</textarea><input type="hidden"
name="g_word" id="g_word"
value="' . $_POST['g_word'] . '" /> <input
type="hidden" name="article_no"
id="article_no"
value="' . $_POST['article_no'] . " /></form>';

Ya da, bence en zarif yolu, (s)printf biçimlendirilmiş bir dize döndürmek için kullanıyor:

printf('</textarea><input type="hidden"
name="g_word" id="g_word"
value="%s" /> <input
type="hidden" name="article_no"
id="article_no"
value="%d" /></form>', $_POST['g_word'], $_POST['article_no']);

Değişkenler tek tırnak içinde yorumlanır değildir. Ancak, çift tırnaklı dizge, veya bir yorumlu metin içinde. Şahsen, ben bu yüzden gibi, tamamen PHP modu dışında geçmek istiyorum:

 <?php
 //...
 ?>
 </textarea><input type="hidden"
 name="g_word" id="g_word"
 value="<?php echo htmlentities($_POST['g_word']); ?>" /> <input
 type="hidden" name="article_no"
 id="article_no"
 value="<?php echo htmlentities($_POST['article_no']); ?>" /></form>
 <?php
 //...

Bazı biçimlendirme yapmak ve kısa etiketleri kullanabilirsiniz, bu daha okunabilir - bir varsayılan olmayan yapılandırma seçeneği gerektirir ve orada diğer dezavantajları Eğer PHP tercüman tarafından çözümlenen XML doküman varsa öncelikle varsa vardır, ya da app gidiyor, her ne kadar kontrol etmiyoruz sunucularına yüklü olması gerekmektedir.

İşte bu gibi bakmak istiyorum:

 <form>
   <textarea>
     <?
     //...
     ?>
   </textarea>
   <input type="hidden" name="g_word" id="g_word" value="<?= htmlentities($_POST['g_word']); ?>" /> 
   <input type="hidden" name="article_no" id="article_no value="<?= htmlentities($_POST['article_no']); ?>"/>
 </form>
 <?
 //...