Web form / CGI komut:. Kullanıcı "kelime", IFrame görüntüler "kelimesi" girer html

1 Cevap php

Tamam, ben bir tasarımcı olmanın kabul edeceğiz, ben (temelde bütün programlama bölüm) ... veri formlarında sunucularından nasıl kullanıldığı hakkında çok şey bilmiyorum. Temelde ben kullanıcı türleri "elma" gibi bir şey, bu sunucuya gönderilir ve sonra ben bir IFrame bir dizin var apple.html sayfasını görüntüleyen alır bir metin alanı var. Herkes bir PHP komut dosyası veya Perl bunu bana nasıl gösterebilir ise, büyük teşekkür olurdu! Ben bu bu daha karmaşık alır, iyi bir başlangıç ​​olduğunu düşünüyorum ... Daha sonra 2321 gibi bir şey içine "elma" dönüştürmek yerine 2321.html sergilemek zorundayız.

Herkes bunu yapar bir CGI komut dosyası bulabilirsiniz, teşekkürler!

1 Cevap

Aşağıdaki Perl ile yazılmış tam bir çalışma CGI programıdır. Bu gerekli tam olarak ne yapar. Apart numaralı meyve sonuç belgeleri, ayrıca look-up başarılı olmasaydı sorry-no-such-fruit.html olduğu gösterilmiştir veya kullanıcı tüm giriş bir meyve vermedi, bir geri çekilme belge gerekir.

#!/usr/bin/perl -T
use strict;
use warnings;
use CGI ();

my %fruit_codes = (
    apple   => '2321.html',
    banana  => '1234.html',
    coconut => '8889.html',
);

my $c = CGI->new;
my $fruit_parameter = $c->param('fruit_name');
my $iframe_document;

if (defined $fruit_parameter and exists $fruit_codes{$fruit_parameter}) {
    $iframe_document = $fruit_codes{$fruit_parameter};
} else {
    $iframe_document = 'sorry-no-such-fruit.html';
}

$c->header('application/xhtml+xml');

print <<"END_OF_HTML";
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Fruits</title>
    </head>
    <body>
        <form action="fruits.cgi">
            <fieldset>
                <label for="fruit">Name of the fruit:</label>
                <input id="fruit" name="fruit_name" type="text" />
                <input type="submit" />
            </fieldset>
        </form>
        <iframe src="$iframe_document">
            <a href="$iframe_document">resulting fruit</a>
        </iframe>
    </body>
</html>
END_OF_HTML

1;

Eğer bu programı değiştirmek istediğiniz durumda, sana en önemli güvenlik tavsiyede: çıktı kullanıcı girişi sağlanan yok (Bu durumda, $fruit_parameter) değiştirilmemiş. Bu, en azından cross-site scripting için istismar edilebilir. Yardım için uzman bir programcı değildir.