Olen tekemässä sivuilleni palautelomaketta, joka lukee annetut syötteet ja tallentaa ne viestit.txt tiedostoon.
Koodi näyttää tältä:
Viestien lähetys
Nimi
Aihe
Viesti
#!usr/bin/perl
reguire "cgi-lib.pl";
print "Content-type: text/html\n\n";
&ReadParse;
$LAHETTAJA=$in{'lahettaja'};
$AIHE=$in{'aihe'};
$VIESTI=$in{'viesti'};
if ($LAHETTAJA eq ") {
$LAHETTAJA=''}
if ($AIHE eq "){
$AIHE='\n';}
if ($VIESTI eq "){
$VIESTI='\n';}
open(VIESTIT,">>viestit.txt");
print VIESTIT "$LAHETTAJA\n";
print VIESTIT "#END#\n";
print VIESTIT "$AIHE\n";
print VIESTIT "#END#\n";
print VIESTIT "$VIESTI\n";
print VIESTIT "#END#\n;
print "\n\n";
print "Kiitos viestistäsi $LAHETTJA!\n;
print "\n";
olen aloittelija ja en tajua mikä tässä koodissa mättää? Mitä minun pitäisi muuttaa tai lisätä että saan toimivan palautelomakkeen sivuilleni. Lähdekoodi on nähtävillä kokonaisuudessaan osoitteessa: http://www.ptoplus.net/~janimal/. Kiitän jo etukäteen kaikkia, jotka auttavat minua tässä ongelmassa..:)
Koodi näyttää tältä:
Viestien lähetys
Nimi
Aihe
Viesti
#!usr/bin/perl
reguire "cgi-lib.pl";
print "Content-type: text/html\n\n";
&ReadParse;
$LAHETTAJA=$in{'lahettaja'};
$AIHE=$in{'aihe'};
$VIESTI=$in{'viesti'};
if ($LAHETTAJA eq ") {
$LAHETTAJA=''}
if ($AIHE eq "){
$AIHE='\n';}
if ($VIESTI eq "){
$VIESTI='\n';}
open(VIESTIT,">>viestit.txt");
print VIESTIT "$LAHETTAJA\n";
print VIESTIT "#END#\n";
print VIESTIT "$AIHE\n";
print VIESTIT "#END#\n";
print VIESTIT "$VIESTI\n";
print VIESTIT "#END#\n;
print "\n\n";
print "Kiitos viestistäsi $LAHETTJA!\n;
print "\n";
olen aloittelija ja en tajua mikä tässä koodissa mättää? Mitä minun pitäisi muuttaa tai lisätä että saan toimivan palautelomakkeen sivuilleni. Lähdekoodi on nähtävillä kokonaisuudessaan osoitteessa: http://www.ptoplus.net/~janimal/. Kiitän jo etukäteen kaikkia, jotka auttavat minua tässä ongelmassa..:)
Vastaukset 4
Vanhimmat
Oletko kokelillut ajaa scriptiä shellistä. Perlin kääntäjä kyllä kertoo mille riville homma tyssää.
Muutama vinkki missä voisin olettaa ongelman olevan.
1. Perl löytyy palvelimeltasi ja se on paikassa usr/bin/perl (UNIX/LINUX)?
2. action="skripti2.cgi"method="get"
Onko sinulla todellakin samassa hakemistossa ajooikeudet scriptille kuin HTML-lomake sijaitsee?
Ja GET-metodi on se oikea (ReadParse)?
3. cgi-lib.pl
Tämä varmaan löytyy samasta hakemistosta, jossa pääscripti on ja cgi-lib.pl sisältää funktion ReadParse?
4. open(VIESTIT
Avaat kyllä VIESTIT-putken, muttet ikinä sulje sitä?
Näiden täytyy oplla eri filejä. osgs-nimimerkin kirjoituksesta päätellen ne ovat yhtä ja samaa filieä?? EI KAI VAIN.
En nyt ole expertti cgi-scriptaamisessa, mutta eikös kaikkein ylimpänä pitäisi olla rivi:
#!usr/bin/perl
jotta palvelimen perl tunnistaisi että tässä on cgi-scripti?
Ja muita seikkoja:
-tukeeko palvelimesi cgi:tä?
-oletko antanut scriptille kirjoitusoikeudet (chmod)?
-oletko ladannut tiedoston ascii-muodossa palvelimelle? binary-muoto sotkee koodin.
Noh tämä on koulun ylläpitämä Linux palvelin ja en tiedä onko minulla edes scriptin ajo-oikeuksia. Miten saan edes sen selville siis voinko katsoa jostain minun käyttöoikeudet?