/ Forside/ Teknologi / Internet / Hjemme sider / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Hjemme sider
#NavnPoint
molokyle 23766
Klaudi 7947
bentjuul 7763
BjarneD 4584
severino 4460
Manse9933 4366
natmaden 3985
disken 3947
miritdk 3593
10  refi 3578
Problemmer med gæstebog (perl)
Fra : Atrejua_m
Vist : 526 gange
50 point
Dato : 04-05-03 14:03

Hej,
Jeg har lavet en hjemmeside - www.m-schwartz.dk - men kan ikke få min gæstebog til at virke. Jeg har "hugget" et gratis applikation i perl fra siden www.webcafe.dk/artikler/perl/gaestebog/g_bog_pl.txt, hvor man "bare" lige selv skal indsætte nogle ting. Men jeg kan ikke få det til at virke. Så mit spørgsmål er: Er der nogle der kan se hvad jeg har gjort forkert i nedenstående kode:

#!/usr/bin/perl

### Simpel gæstebog fra http://webcafe.dk

# Du skal indstille et par variabler. For at give en idé om,
# hvordan det skal se ud, har jeg lade mine indstillinger stå:

# Denne variabel angiver stien fra dette script til selve gæstebogen
   $g_bog = "../../g_bog.htm";

# Den her sætter du til 0, hvis du ikke vil have besked, når nogen
# skriver i gæstebogen
   $giv_mig_besked = 1;

# Her skriver du din epost. Det er vigtigt at der er en "\" foran @.
   $epost = "m_schwartz2000\@yahoo.dk";

# Stien til Sendmail
   $mailprogram = '/usr/lib/sendmail';

# URLen til din gæstebog
   $hjem = "http://www.m-schwartz.dk/g_bog.htm";

# Baggrundsfarven på fejlmeddelelser - hvis folk ikke har udfyldt
# alle felter
   $baggrund = "#ffffff";

# Og endelig URLen til dette script
   $script_url = "http://www.m-schwartz.dk/g_bog.pl";

# Slut prut - alt herunder behøver du ikke pille ved.

########## Modtager data fra formen #####################

### Input bliver læst og delt
read(STDIN, $bufferdrengen, $ENV{'CONTENT_LENGTH'});
@data_par = split(/&/, $bufferdrengen);

### De enkelte dele deles op i navn/indhold
foreach $enkelt_par (@data_par) {
($navn, $indhold) = split(/=/, $enkelt_par);

### Indholdet bliver gjort fordøjeligt
$indhold =~ tr/+/ /;
$indhold =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$indhold =~ s/\cM\n/\n/g;
$indhold =~ s/<([^>]|\n)*>//g;
   
if ($navn eq 'kommentar'){
$indhold =~ s/\n/<br>/g;
}

### og sorteret
$INFORMATION{$navn} = $indhold;
}

if (!$INFORMATION{'navn'} || !$INFORMATION{'overskrift'} || !$INFORMATION{'kommentar'}) {
&mangler;
} else {
&skriv;
}

########## Skriver i gæstebogen ##################

sub skriv {

open (GAMMEL_BOG, "$g_bog") || die &fejl;
@html = <GAMMEL_BOG>;
close(GAMMEL_BOG);

open (NY_BOG, ">$g_bog") || die &fejl;
foreach (@html) {
if ($_ =~ /<!-- ny -->/){
print NY_BOG "<!-- ny -->\n";
print NY_BOG "<h2>$INFORMATION{'overskrift'}<br><br></h2>\n";

if ($INFORMATION{'epost'}){
print NY_BOG "<a href=\"mailto:$INFORMATION{'epost'}\">$INFORMATION{'navn'}</a> skriver: <br><br>\n";
} else {
print NY_BOG "$INFORMATION{'navn'} skriver: <br><br>\n";
}
      
print NY_BOG "$INFORMATION{'kommentar'}<br><hr noshade>\n";

} else {
   
print NY_BOG "$_";

} # slut if-else
   
} # slut foreach
close(NY_BOG);


unless($giv_mig_besked == 0) {
### Sender dig en post
open(MAIL, "|$mailprogram -t") || die &fejl;
print MAIL "From: $INFORMATION{'epost'}\n";
print MAIL "To: $epost\n";
print MAIL "Subject: Der er skrevet i din gæstebog\n\n";
print MAIL "$INFORMATION{'navn'} skriver:\n\n$INFORMATION{'kommentar'}\n";
close(MAIL);
} # slut unless

print "Location: $hjem\n\n";

exit;

} # slut skriv

############ Giver folk en ny form, hvis de ikke har udfyldt de krævede felter #################

sub mangler {
print "content-type:text/html\n\n";
<!-- Minus AutoDato -->
print "<html><head><title>Tsk, tsk - udfyld dog alle felter</title>\n";
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
print "</head>\n<body bgcolor=$baggrund>\n";
print "<h2>Udfyld venlist disse felter</h2><br><br>\n";
print "<form action=\"$script_url\" method=\"POST\">\n";
print "<input type=hidden name=\"epost\" value=\"$INFORMATION{'epost'}\">\n";
print "Overskrift: <input type=text name=\"overskrift\" value=\"$INFORMATION{'overskrift'}\"><br>\n";
print "Navn: <input type=text name=\"navn\" value=\"$INFORMATION{'navn'}\"><br>\n";
print "Kommentar:<br><textarea name=\"brok\" vrap=virtual cols=\"35\" rows=\"10\">\n";
print "$INFORMATION{'brok'}";
print "</textarea><br><input type=submit value=\"Undskyld, script\"></form>\n";

exit;
}

########### Bare lige en pænere fejl-side ###################

sub fejl {
print "content-type:text/html\n\n";
print "<html>\n";
print "<h2>$!</h2>\n";
print "</html>\n";
exit;
}

exit;


På forhånd mange tak.
Venlig hilsen Maria.



 
 
Kommentar
Fra : linkman


Dato : 11-05-03 20:33

# Denne variabel angiver stien fra dette script til selve gæstebogen
$g_bog = "../../g_bog.htm";

din gæstebog ligger vel ikke der
men her $g_bog = "http://www.m-schwartz.dk/g_bog.htm";

eller $g_bog = "/g_bog.htm";

eller $g_bog = "g_bog.htm";

jeg er ikke sikker men fejlen kan være at $g_bog ikke er defineret

Venlig hilsen linkman

Linkman Webart
homemade Webart
http://www.iamlinkman.dk

Kommentar
Fra : Atrejua_m


Dato : 14-05-03 20:04

Hej

Tak for rådet. Det har dog ikke hjulpet mit problem. Fejlmelding jeg får er følgende:

Method Not Allowed
The requested method POST is not allowed for the URL /g_bog.pl.
--------------------------------------------------------------------------------
Apache/1.3.27 Server at www.m-schwartz.dk Port 80


Siger det dig noget??

Kommentar
Fra : linkman


Dato : 15-05-03 18:17

<form action="http://www.m-schwartz.dk/g_bog.pl" method="POST">
Overskrift: <br><input type=text name="overskrift"><br>
Navn: <br><input type=text name="navn"><br>
E-mail: <br><input type=text name="epost"><br>
Indlæg: <br><textarea name="kommentar" vrap=virtual cols="45" rows="15">
</textarea><br><br><input type=submit value="Send Kommentar">
</form>
jeg var inde og se din hjemmeside og kiggede på den formmail og jeg er ikke sikker på at du kan have en action="http://www.m-schwartz.dk/g_bog.pl" sammen med method="POST"
det er der den går galt jeg er prøver at finde ud af noget mere men jeg er på øvelse så det tager lige lidt tid

Venlig hilsen linkman

Linkman Webart
homemade Webart
http://www.iamlinkman.dk



Kommentar
Fra : Atrejua_m


Dato : 15-05-03 23:05

Fedt du gider kigge på det. Jeg venter spændt

Accepteret svar
Fra : linkman

Modtaget 50 point
Dato : 16-05-03 11:59

så tror jeg jeg har fundet fejlen den ligger i din form

Din form:
<form action="http://www.m-schwartz.dk/g_bog.pl" method="POST">
Overskrift: <br><input type=text name="overskrift"><br>
Navn: <br><input type=text name="navn"><br>
E-mail: <br><input type=text name="epost"><br>
Indlæg: <br><textarea name="kommentar" vrap=virtual cols="45" rows="15">
</textarea><br><br><input type=submit value="Send Kommentar">
</form>

Webcafe form:
<a name="skriv">
<form action="/cgi-bin/webclaus/g_bog.pl" method="POST">
Overskrift: <input type=text name="overskrift"><br>
Navn: <input type=text name="navn"><br>
Epost: <input type=text name="epost"><br>
Kommentar:<br><textarea name="kommentar" vrap=virtual cols="35" rows="15">
</textarea><br><input type=submit value="Send Kommentar">
</form>

Fejlen ligger her:

Din :action="http://www.m-schwartz.dk/g_bog.pl"
webcafe : action="/cgi-bin/webclaus/g_bog.pl"

Fejlen er at du ikke kan bruge en http:// adresse til at sende/poste en formmail men du skal
bruge en cgi string lige som den webcafe bruger og den får du hos din server udbyder
den kan jeg ikke lige hjælpe dig med for jeg ved ikke hvem du har plads ved

Venlig hilsen linkman

Linkman Webart
homemade Webart
http://www.iamlinkman.dk


Godkendelse af svar
Fra : Atrejua_m


Dato : 20-05-03 16:51

Mange tak for svaret linkman - fedt ar du gad hjælpe mig med problemmet!
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407871
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste