Toon posts:

probleem in een perl-sript, wie kan me helpen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi iedereen,

ik ben geen perl-programmeur, maar toe nu toe lukte het me redelijk om perl-scriptjes te instaleren en aan de praat te krijgen. Maar nu loop ik vast.

Wat is het probleem?

Ik wil een scriptje installeren om een enquete op mijn site te houden. De enquete moet meerder vragen bevatten en ook meerdere types velden kunnen bevatten.
De ingestuurde uitkomsten wil ik graag in een bestand verzamelen, wat ik dan mogelijk in excel kan inlezen en bewerken.

Nu heb ik een scriptje gevonden dat me ideaal lijkt:
http://www.zonecoaster.com
[Survey 2.50]

Het scriptje probeert een bestand te openen om te schrijven. Het bestand heeft chmod 755 (777 werkt niet bij mijn provider) het bestand bestaat. Maar toch geeft het scritpje de melding:
Kan file xxx.txt niet vinden

tips?
iemand die voor mij in het script kan kijken, wat er mis is?
of weet iemand een ander script?

alvast harstikke bedankt.
Katja

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 24-08 21:59

TrailBlazer

Karnemelk FTW

1 welkom
2 greetz onder post mogen niet
3 post dat scriptje eens ik ( en ben vast niet de enige) heb geen zin om op die site te gaan zoeken naar dat script

Verwijderd

heb je deze variable goed gezet?

$resultsdir='/usr/survey/results/';
$setupdir='/usr/survey/setup/';
$cgiurl='http://www.zonecoaster.com/cgi-bin/survey.pl';
$showresults='yes';#'yes' or 'no'
$valid='www.zonecoaster.com';

btw ben bang dat die resultsfiles wel schrijfbaar moeten zijn voor de world....

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:44
Tenzij je provider een zeldzame configuratie heeft, draait de webserver onder een andere gebruiker dan jij. Dat betekent dan ook dat de webserver niet in 'jouw' bestanden zal kunnen schrijven.

Het lijkt me trouwens sterk dat je bestanden niet op 777 kan zetten.

Verwijderd

Topicstarter
oeps,
hier komt het....

<font color=red> D2k edit: <snip></font>

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:44
Op vrijdag 24 mei 2002 12:24 schreef Katja het volgende:
hier komt het....
Argh! Ik weet dat er door TrailBlazer om gevraagd werd, maar het is de bedoeling dat code wordt teruggebracht tot de relevante/problematische stukken. Bovendien hoort code ten behoeve van de leesbaarheid tussen [code]-tags te staan.

[topic=392390/1/25]

Verwijderd

denk dat het hier zit:
$resultsdir='http://www.shespot.nl/enquete/results/';
$setupdir='http://www.shespot.nl/enquete/setup/';
$cgiurl='http://www.shespot.nl/enquete/survey.pl';
$showresults='no';#'yes' or 'no'
$valid='http://www.shespot.nl/enquete/';

http://www.shespot.nl/enquete/results/ etc.. lijken me niet een geldige directory

Verwijderd

Topicstarter
sorry voor de greez,
en blijft raar dat ie het bestand niet kan vinden,
er niet in schrijven ala....
of de foutmelding in het schriptje is verkeerd.

Verwijderd

Topicstarter
lijken me niet een geldige directory..

snap ik niet, deze dir bestaat gewoon
en doet het.
Trouwens fantasisch dat jullie zo snel antwoorden
ik ben zwaar onder de indruk.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

kehb die code weggehaald hoor
das echt te gek voor woorden

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
over de toegangsrechten 755 en 777
uit de handleiding van mijn hostingprovider:

-----citaat:----------
Er wordt gebruikt gemaakt van suexec dit houdt in dat elke script onder de user draait waar u mee inlogged
met als gevolg dat chmod 777 niet werkt.
Als u op alle bestanden chmod 755 bestand.pl doet zal het script altijd voldoende rechten hebben.
Uw script zal NIET werken als uw directory OF script chmod 777 heeft.

Verwijderd

het scriptje probeert bv hier een dir te open

opendir(DIR,"$resultsdir") || &unable("$resultsdir");
@choices=grep(/\.txt/,readdir(DIR));

die
$resultsdir='http://www.shespot.nl/enquete/results/';
is niet een dir maar een url (hoewel een file natuurlijk wel een url kan zijn... maar dan zou ie met file:// moeten beginnen)

denk dus meer dat het zoiets zal moeten zijn:

'/var/www/enquete/results/' of 'enquete/results/' of
'../enquete/results/'

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:44
Op vrijdag 24 mei 2002 12:36 schreef Katja het volgende:
Er wordt gebruikt gemaakt van suexec dit houdt in dat elke script onder de user draait waar u mee inlogged
met als gevolg dat chmod 777 niet werkt.
Als u op alle bestanden chmod 755 bestand.pl doet zal het script altijd voldoende rechten hebben.
Uw script zal NIET werken als uw directory OF script chmod 777 heeft.
I stand corrected.
Op vrijdag 24 mei 2002 12:37 schreef tijnbraun het volgende:
die
$resultsdir='http://www.shespot.nl/enquete/results/';
is niet een dir maar een url (hoewel een file natuurlijk wel een url kan zijn... maar dan zou ie met file:// moeten beginnen)
In Perl kan dat niet zomaar (in tegenstelling tot in PHP). Het moet dus een 'gewone' locatie zijn.
denk dus meer dat het zoiets zal moeten zijn:
'/var/www/enquete/results/' of 'enquete/results/' of
'../enquete/results/'
Inderdaad; aangezien het script onder de huidige gebruiker draait zal '~/www/enquete/results' wel werken, hoewel 'www' ook anders kan heten ('htdocs' ofzo).

Verwijderd

Topicstarter
ik heb de volgende aanpassingen gemaakt:

$resultsdir='/enquete/results/';
$setupdir='/enquete/setup/';
$cgiurl='http://www.shespot.nl/enquete/survey.pl';
$showresults='no';#'yes' or 'no'
$valid='http://www.shespot.nl/enquete/';

resultaat blijft:
Unable to open: /enquete/results/aaaa.txt

alles staat in en directorie:
http://www.shespot.nl/enquete
scriptje en de directories results en setup

Verwijderd

mmm dat chmodden wordt nog wel een probleem maar je kan er wel onderuit komen

je maakt eerst een dir zoiets als "query"
vervolgens chmod je die naar 733

de dir is nu schijfbaar(maar niet leesbaar) voor de world

vervolgens laat je een de webserver (via perl) hierin dir's aanmaken

#!/usr/local/bin/perl
`mkdir query/results`;
`mkdir query/setup`;
print "Content-type: text/html\n\n";
print "done";

daar results en setup nu van de user is waaronder de webserver draait kan hij hierin schijven en lezen

Verwijderd

Topicstarter
Ik heb nog wat verder geexperimenteerd met
de verwijzing naar de dir en de file zelf op 777 gezet.
en het werkt!
Jongens harstikke bedankt.
wat een geweldige goed lijst is dit met fantastische mensen.
Pagina: 1