Ik zal het even zo duidelijk mogelijk uitleggen allemaal;
Waaar gaat het om?
Het gaat om een script waarmee meerdere users in kunnen loggen,
en (bier?)kosten aan anderen kunnen declareren enzovoort.
Kosten worden opgeteld en je kan zien wat je aan wie moet betalen
en aangeven wanneer je iets betaald hebt.
Ik heb er ERG lang naar gezocht en uiteindelijk iets bruikbaars
gevonden op sourceforge, helaas werkt het dus niet, zit er geen docu bij
en de programmeur reageert niet op help-requests.
Dus probeer ik het bij jullie
Het script heet 'Margaret' en staat in /cgi-bin/IOU. Om e.e.a. wat te
visualiseren hier wat screenies:


Dit is de config.pl (uiteraard is dat paswoord niet het paswoord):
Wat werkt niet
Het is de bedoeling dat ik CreateTables.pl uitvoer, maar die geeft
een 500 internal server error. ALLE andere bestanden ook.
Het is niet het enige Perl-script dat ik gebruik, de rest werkt prima
(heel lang UBB gehad). Ook werkt de database (PHPBB draait er ook
op).
Als ik de werktnogniet.htaccess rename naar .htaccess (wat uiteindelijk
ook moet) word ik gevraagd naar een username/password, maar die
staat nog niet in de database, die moet ik eerst maken met AddUser.pl,
maar daarvoor moet ik eerst de benodigde tables maken en dat lukt dus
niet.
Mogelijke oplossingen
Tenzij één van jullie me zo 123 kan zeggen wat er aan de hand is, zou
het ook een oplossing kunnen zijn om de tables zelf te maken. Misschien
lost dit niets op, aangezien hij geen verbinding met de database kan
maken, of die tables er nou zijn of niet. Maar hoe maak ik van CreateTables.pl
een uitvoerbare tekst die ik in PHPMyAdmin kan pasten?
Dit is CreateTables.pl:
Wat ik kan doen
Ik kan dingen invoeren (pasten) in PHPMyAdmin, heb geen shellaccess
en eigenlijk totaal geen verstand van programmeren. Ook kan ik dus niet
bij logfiles omdat het gewoon een domeinnaam bij een of andere webspaceboer
is.
Ik zou hulp zeer op prijs stellen, ik heb lang gezocht naar een script als dit
en zou heel graag willen dat het werkt. Als iemand desondanks een betere
oplossing weet, hoor ik dat ook graag natuurlijk.
Waaar gaat het om?
Het gaat om een script waarmee meerdere users in kunnen loggen,
en (bier?)kosten aan anderen kunnen declareren enzovoort.
Kosten worden opgeteld en je kan zien wat je aan wie moet betalen
en aangeven wanneer je iets betaald hebt.
Ik heb er ERG lang naar gezocht en uiteindelijk iets bruikbaars
gevonden op sourceforge, helaas werkt het dus niet, zit er geen docu bij
en de programmeur reageert niet op help-requests.
Dus probeer ik het bij jullie
Het script heet 'Margaret' en staat in /cgi-bin/IOU. Om e.e.a. wat te
visualiseren hier wat screenies:


Dit is de config.pl (uiteraard is dat paswoord niet het paswoord):
code:
1
2
3
4
5
6
7
8
9
10
11
| ### This file specifies which server to use, and which user to log in as, ### How your e-mail server works, and what your URL is. $DatabaseName = "IOU"; $DatabaseUser = "suleika"; $DatabasePassword = paswoord; $SMTPServer = 'localhost'; $SMTPHello = 'perv@home.nl'; $SMTPFrom = 'Betaalherinnering <perv@home.nl>'; $WebserverAddr = 'http://www.cosanostra.nl'; $RootAddr = '/cgi-bin/IOU'; |
Wat werkt niet
Het is de bedoeling dat ik CreateTables.pl uitvoer, maar die geeft
een 500 internal server error. ALLE andere bestanden ook.
Het is niet het enige Perl-script dat ik gebruik, de rest werkt prima
(heel lang UBB gehad). Ook werkt de database (PHPBB draait er ook
op).
Als ik de werktnogniet.htaccess rename naar .htaccess (wat uiteindelijk
ook moet) word ik gevraagd naar een username/password, maar die
staat nog niet in de database, die moet ik eerst maken met AddUser.pl,
maar daarvoor moet ik eerst de benodigde tables maken en dat lukt dus
niet.
Mogelijke oplossingen
Tenzij één van jullie me zo 123 kan zeggen wat er aan de hand is, zou
het ook een oplossing kunnen zijn om de tables zelf te maken. Misschien
lost dit niets op, aangezien hij geen verbinding met de database kan
maken, of die tables er nou zijn of niet. Maar hoe maak ik van CreateTables.pl
een uitvoerbare tekst die ik in PHPMyAdmin kan pasten?
Dit is CreateTables.pl:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
| #!/usr/bin/perl
use CGI qw(:standard);
use DBI;
use strict;
my $query = new CGI;
print $query->header;
print "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
print "<html>\n";
print "<head>\n";
print "<H3>Testing Perl Install...</H3>\n";
print "Because we you can read this message, your server is capable of running perl code ";
print "and your perl install has CGI and DBI installed.\n";
my $DatabaseName = '';
my $DatabaseUser = '';
my $DatabasePassword = '';
open CONFIG_FILE, "<config.pl" or die "Can't open the config.pl file.";
while (<CONFIG_FILE>) { eval $_; }
close CONFIG_FILE;
my %attr = ( PrintError => 1, RaiseError => 0 );
my $db = DBI->connect("DBI:mysql:$DatabaseName", $DatabaseUser, $DatabasePassword, \%attr )
or do {
print "<H3>Failed to Log into Mysql</H3>\n";
print "Tried to log into DBI:mysql:$DatabaseName with user = '$DatabaseUser' and Password = '$DatabasePassword'";
print "<P>";
print "If you have not already created the table DBI:mysql:$DatabaseName, you need to build them. For instance:\n";
print "<pre> mysql -u root -p mysql</pre>\n";
print "<pre> CREATE DATABASE MarksPhotos</pre>\n";
print "<pre> quit;</pre>\n";
print "And then reload the admin data:\n";
print "<pre> mysqladmin -u root -p reload</pre>\n";
print "</body></html>\n";
exit -1;
};
print "<H3>Logged into SQL Server</H3>\n";
print "The SQL server allowed our connection.";
my $Action = $query->param("Action");
if ( $Action eq "construct" )
{
my $rows_affected = $db->do("DROP TABLE Debt;");
my $rows_affected = $db->do("CREATE TABLE Debt (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Value DECIMAL(9,2),
CurrencyID INT,
TransactionDate DATE,
ClosedDate DATE,
DebtorStage ENUM('offered', 'debtor_agreed_exists', 'debtor_agreed_paid' ),
CreditorStage ENUM('offered', 'creditor_agreed_exists', 'creditor_agreed_paid' ),
DebtStage ENUM('in process', 'paid', 'rejected' ),
DebtorID INT,
CreditorID INT,
PoolAgreementID INT default NULL,
CollectionID INT default NULL);");
my $rows_affected = $db->do("DROP TABLE Person;");
my $rows_affected = $db->do("CREATE TABLE Person (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Name TEXT,
UnixName TEXT,
Email TEXT,
Password TEXT,
ReminderRate INT,
LastReminderSent DATE,
EmailUpdates INT,
HomeCurrency INT,
HTMLEmail INT default 0);");
my $rows_affected = $db->do("DROP TABLE Currency;");
my $rows_affected = $db->do("CREATE TABLE Currency (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Name TEXT,
RateToPrimaryCurrency FLOAT);");
my $rows_affected = $db->do("DROP TABLE PoolPermisions;");
my $rows_affected = $db->do("CREATE TABLE PoolPermisions (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Member INT,
PoolID INT,
State ENUM('active member', 'resigned' ));");
my $rows_affected = $db->do("DROP TABLE DebtPool;");
my $rows_affected = $db->do("CREATE TABLE DebtPool (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Name TEXT,
Owner INT,
TakeNewMembers INT default 1,
TakeNewDebts INT default 1,
ValueLimit DECIMAL(9,2),
TransStartDateLimit DATE,
TransEndDateLimit DATE,
InsertDateLimit DATE);");
my $rows_affected = $db->do("DROP TABLE Collection;");
my $rows_affected = $db->do("CREATE TABLE Collection (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Value DECIMAL(9,2),
CurrencyID INT,
TransactionDate DATE);");
my $rows_affected = $db->do("DROP TABLE CreditorCollectionEntry;");
my $rows_affected = $db->do("CREATE TABLE CreditorCollectionEntry (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
CollectionID INT,
Type ENUM('percent', 'fraction', 'dollar'),
Value DECIMAL(9,2),
Creditor INT);");
my $rows_affected = $db->do("DROP TABLE DebtorCollectionEntry;");
my $rows_affected = $db->do("CREATE TABLE DebtorCollectionEntry (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
CollectionID INT,
Type ENUM('percent', 'fraction', 'dollar'),
Value DECIMAL(9,2),
Debtor INT);");
my $rows_affected = $db->do("DROP TABLE DebtComments;");
my $rows_affected = $db->do("CREATE TABLE DebtComments (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
DebtID INT NOT NULL,
Author INT,
Content TEXT,
TimeStamp timestamp(14) NOT NULL );");
my $rows_affected = $db->do("DROP TABLE CollectionComments;");
my $rows_affected = $db->do("CREATE TABLE CollectionComments (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
CollectionID INT NOT NULL,
Author INT,
Content TEXT,
TimeStamp timestamp(14) NOT NULL );");
my $rows_affected = $db->do("DROP TABLE ReceiptLine;");
my $rows_affected = $db->do("CREATE TABLE ReceiptLine (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
LineNum INT NOT NULL,
CollectionID INT NOT NULL,
Value DECIMAL(9,2),
Description TEXT,
LifeStage ENUM('in process', 'rejected' ) );");
my $rows_affected = $db->do("DROP TABLE ReceiptEntry;");
my $rows_affected = $db->do("CREATE TABLE ReceiptEntry (
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ReceiptLineID INT NOT NULL,
UserID INT NOT NULL,
Portion DECIMAL(9,2),
LifeStage ENUM('in process', 'rejected' ) );");
}
print "<H3>The Tables That Exist:</H3>\n";
my $Tables_th = $db->prepare("SHOW Tables;");
$Tables_th->execute;
print "<ul>\n";
while (my $row = $Tables_th->fetchrow_arrayref)
{
my $tableEntry = @$row[0];
print "<li>$tableEntry<br>\n";
}
print "</ul>\n";
print "You can delete the entire contents of the database, and then build empty tables.\n";
print "This operation cannot be reversed - the deletion is perminant.\n";
print " <form method=POST action=\"$ENV{SCRIPT_NAME}\">\n";
print " <input type=\"hidden\" NAME=\"Action\" VALUE=\"construct\" >\n";
print " <input type=\"submit\" value=\"Erase and Construct Tables\">\n";
print " </form>\n";
print "</body></html>\n"; |
Wat ik kan doen
Ik kan dingen invoeren (pasten) in PHPMyAdmin, heb geen shellaccess
en eigenlijk totaal geen verstand van programmeren. Ook kan ik dus niet
bij logfiles omdat het gewoon een domeinnaam bij een of andere webspaceboer
is.
Ik zou hulp zeer op prijs stellen, ik heb lang gezocht naar een script als dit
en zou heel graag willen dat het werkt. Als iemand desondanks een betere
oplossing weet, hoor ik dat ook graag natuurlijk.
[ Voor 25% gewijzigd door Verwijderd op 02-07-2003 01:37 ]