[Linux-programlama] Shell Script (SH) ile Form'dan gelen Query String'i decode etmek.

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Deniz Mavi (unbelieving@operamail.com)
Date: Fri 23 Mar 2007 - 09:23:56 EET


Merhaba,

Bir kaç gündür bu olay ile uğraşıyorum. Kafayı yemek üzereyim. :( Problemim şu;

Bu arada belirteyim, kullandığım server aix. Fakat sizin de bileceğiniz gibi, kullandığım kabul sh olduğu ve işletim sisteminden dolayı bir fark olmayacağı için bu gruba sormakta bir sakınca görmedim.

Form kullanarak 2 farklı değişkeni aix üzerinde çalışan bir script dosyasına gönderiyorum. Hazırlamış olduğum script aix üzerinde gayet düzgün çalışıyor. Bir sorun yok. Zaten sorun script de değil. Script dosyasına GET ile query string gönderdiğim zaman "$QUERY_STRING" değişkenine bu değeri aynen atayabiliyorum. Ve sonucu tekrar yazdırabiliyorum. Fakat aynı string'i POST ile gönderdiğim zaman string'in sonuna bir karakter ekliyor. Bu karakter "^M". Dolayısıyla html kod içerisinde satır başı gibi algılanıyor. Biraz daha anlaşılır olsun diye çıktıları yazıyorum.

-----------------------------------------
GET için Scriptin output'u;
<p>yourname1=Adim&yourname2=Soyadim</p>
-----------------------------------------
POST için Scriptin output'u;
<p>yourname1=Adim&yourname2=Soyadim
</p>
-----------------------------------------

Farkettiyseniz son satırdan sonra aşağıya kaymış.

Bunun ne gibi bir zararı var? der iseniz, POST methodu ile gelen QUERY_STRING içindeki değişkenleri, Script ile decode ettiğim zaman 'FORM_yourname1=Adim' olarak geliyor fakat 'FORM_yourname2=Soyadim ' olarak geliyor. Yani 'Soyadim' değerinden sonra bir boşluk oluşuyor. Nedenini çözemedim bir türlü.

-----------------------------------------
Kullandığım Script (parse.sh):
-----------------------------------------
#!/bin/sh

echo "Content-type: text/html"
echo ""

exec 2>&1

case "$REQUEST_METHOD" in
   GET)
       ;;
   POST)
       read query_string
       QUERY_STRING=$query_string
       ;;

   *)
      echo "HATA: request_method: $REQUEST_METHOD"
      exit 1
      ;;
esac

echo "<p>$QUERY_STRING</p>"

exit 0

-----------------------------------------
Kullandığım Form:
-----------------------------------------

<form method="POST" action="http://100.0.0.1/cgi-bin/parse.cgi">
        <p>Ad <input type="text" name="yourname1" size="30" maxlength="80"><p>
        <p>Soyad<input type="text" name="yourname2" size="30" maxlength="80"><p>
        <input type="submit" value="submit">
</form>
-----------------------------------------

Yardımlar için şimdiden teşekkür ederim. İyi günler diliyorum.

-- 
_______________________________________________
Surf the Web in a faster, safer and easier way:
Download Opera 9 at http://www.opera.com

Powered by Outblaze _______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.