Jag har problem, en "kund" som jag gör om deras hemsida till använder ett gästboksskript som tydligen är vanligt och som min egen ISP också använder, men de skiljer sig ändå och jag fattar liksom inte hur man ska fixa det jag vill göra.
Scriptet som finns på min ISP kan man koda så att man får själva gästboken som man vill rent grafiskt, men jag ser ingen sån fil följer med detta script som "kunden" har på sin server.
På min ISP finns det en fil jag kan ha som heter guestbook.tpl som gör att jag kan ange de olika delarna i det som skrivs i gästboken, typ på detta sätt:
Detta är ju jättebra, men som sagt, jag hittar inte den funktionen i scriptet ovan även om det påstås vara samma skript vi använder på vår ISP som "kunden" använder.
Nån som är van vid detta script och kan hjälpa mig??
Jag laddade ner scriptet och kollade, men de måste använda en modifierad variant av det i så fall, så du har helt rätt. Men vad är problemet? Vill du ha ett sådannt script där du enkelt kan styra utseendet kan du använda ett script som jag skrivit, Guestbook Pro 2.01.
Jo, jag tror de får lägga in egna cgi-script så om du har ett sånt script som redan funkar vore det ju kanonbra!!!
*pussar lite på Jojoxx som gör livet så mycket lättare!*
En fråga nu angående ditt script:
Hur lägger man filerna bäst. Jag tänker att man kanske kan lägga ihop alla filer till gästboken i samma mapp (förutom den som ska in i cgi-bin-katalogen då alltså)?
Typ jag har min indexfil och sen länkar jag till gästboken /guestbook/guestbook.html?
Eller blir det ett annat namn på filen?
HJÄLP!!!
Jag är helt borta när det gäller sånt här. Mycket pinsamt.
Jag fattar att jag kan malla hur det ska se ut i de html-filer du har, men skriver den sen en ny fil... ?
Bestämmer du dig för att använda min gästbok så föreslår jag att du låter alla filer (förutom bilderna) ligga i cgi-bin-mappen. Då kommer scriptet automatiskt att hitta de filer det vill använda.
Det finns många varianter på hur man skriver en gästbok. De enklare varianterna skriver rakt ner i en html-fil på ett förutbestämmt ställe (oftast runt en kommentarstagg som det söker efter). Detta gör det dock svårt att ändra på utseendet på gästboken i efterhand. Min gästbok är ett exempel som arbetar på ett annat sätt. Där sparas alla inläggen ner i en simpel databasfil (semi flatfile). Sedan plockas inläggen därifrån varje gång gästboken skall visas. Utformningen hämtas från 2 mallfiler. En fil för gästboken som helhet och en fil för inläggen. På så vis kan man enkelt (i efterhand) ändra utseendet på hela gästboken likaväl som inläggen i den. Du kan även tala om hur många inlägg som skall visas per sida och sedan bläddra mellan sidorna. Mallfilerna använder vanliga %-makron (%%makronamn%%).
Scriptet måste ha skrivrättighet till datafilen "jxbookpro2.dat", men det räcker med läsrättighet till mallfilerna. Rättigheterna står längst ner i readme-filen.
Jag får det inte att funka (jag har inte varit och pillat i koden, bara i html-delarna) och de ligger i cgi-bin-katalogen. Jag har lagt upp behörighet som du anget i textfilen på filerna också, men jag får ändå detta fel:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@sjukvardsteam.se and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Det verkar ju vara pl-filen som inte vill vara med att leka även om jag angett den att vara 755 och dat-filen vara 666 för när jag kallar upp jxbookpro2.pl så får jag detta meddelande.
Kan bero på en massa olika saker. Det första du ska kolla är om sökvägen till Perl stämmer (det som står efter #!), om det inte är det är det väl värt att ta en titt i loggen.
Jag fick något liknande fel när jag för en tid sen skulle testa ett perl-skript. Det visade sig att jag laddat upp filerna "binärt". När jag laddade upp filerna som ASCII så fungerade skriptet.
Annars kan jag inget om perl/CGI. Har kommit till "Hello World" ungefär. :)
Du kan kolla sökvägen till perl i något av dom andra scripten du har på servern #!/usr/bin/perl är en sökväg som det kan vara :) kolla sövägen på ett fungerade script och kolla så att det är samma i det som inte fungerar.
Har du ändrat på nått html så kanske det kan vara att du har lagt till nått attribut och haft citattecken på vädet. Det skall du ha med du måste skriva:
<td bgcolor=\"#CCCCCC\">
istället för
<td bgcolor="#CCCCCC">
Asså snesträck framför "
Kanske att det kan var det?
Jag blir inte klok på detta! Har provat allt nu tycker jag. Har kollat sökvägen i skriptet (verkar stämma med alla andra script som funkar), har provat detta med färgattributen, gör ingen skillnad heller.
Jojoxx, var är du när man behöver dig? ;) :D :birp
De 2 vanligaste felorsakerna som kan generera liknande fel är;
* Fel "shebang" i början av scriptet. D.v.s. #!/sökväg/till/perl. Har du använt samma "shebang" som andra script som fungerar är det dock inte detta som är fel.
* Scriptet är uppladdat i binary-mode via ftp _eller_ uppzippat direkt på servern. Filerna som ligger i zip-filen är skrivna under Windows och använder windows radbrytningssekvens( [cr][lf] ) medans Unix-familjen använder endast [lf] (line feed). Detta kan förvirrra en del perl-tolkar och göra att de inte kan läsa scriptet. Lösning: Om du kör Unix kan du bara spara om filen i valfri text-editor under Unix för att göra om radbrytningarna. Använder du ftp för att ladda upp filerna från ett windows-system använder du "ascii mode" så kommer ftp-klienten (läs program) automatiskt att göra om radbrytningarna så att det passar mottagar-plattformen (Unix).
Sedan kan du ändra på variabeln $path i början av scriptet för att hårdstyra sökvägen till katalogen där scriptet ligger. Skulle detta vara fel borde det dock inte ge ett sådannt felmeddelande.
Den gamla, icke fungerande gästboken hade #!/usr/bin/perl och likaså har ditt script så det verkar ju vara rätt.
Jag har provat att ladda upp pl-filen på olika sätt (som du kanske vet har jag Mac så det är ytterligare ett radbrytningssätt att ta hänsyn till). Jag zippade upp filen, har inte läst filen alls (den har en generisk ikon vilket oftast betyder att det är nåt format som Macen inte känner igen vilket borde betyda att Macen inte gör något med filen alls när den är uppzippad) och jag har provat att spara ner filen på servern med både automatik och "raw data" som det heter i programmet Fetch.
Fetch använder sig inte av Ascii på samma sätt men det är i princip samma sak (andra val är som sagt Automatic, Text, MacBinary III, BinHex och AppleSingle).
Jag vet faktiskt inte vad jag ska göra nu. Det är högst irriterande!
OK, nu börjar det närma sig.... fick fästmannen att ladda upp dat och pl-filen från sin PC i ASCII för att se om det blev bättre. Det blev det (vilket är ytterst irriterande att Mac inte kan ladda upp i ascii - nåja).... nu fick jag ett problem när jag försökte skriva i gästboken som verkar relaterat till ditt script i alla fall... så vi är en bit på väg:
Mac ja... den använder bara [cr] som radbrytning... Mycket spännande :) F.ö. borde text-mode i Fetch vara samma sak som ascii. Så det kan du ju prova med någongång du har lite att göra... Men, då får du säkert editera filen på Mac först, så du får dess radbrytningar. Fetch vill säkert inte konvertera [cr][lf] -> [lf] utan bara [cr] -> [lf]. Nåja...
Fel!
Kunde inte hitta/läsa datafilen /jxbookpro2.dat.
Det är garanterat ett steg i rätt riktning eftersom det är scriptet själv som genererar det felet (alltså inte interpretern). Det kan bero på 2 saker. Antingen att säkvägen ($path) inte stämmer. Scriptet kan som sagt själv försöka ta reda på var det ligger. Misslyckas detta kan du alltså manuellt tala om det med $path = "/sökväg/till/cgi-bin";
Den andra möjligheten är att rättigheterna inte är satta på filen "jxbookpro2.dat" (666). Scriptet hittar då filen, men har inte rätt att läsa eller skriva till den.