hallo,ich hab stunden verbracht das irgendwie hin zu bekommen, aber es klappt nicht :-(
ich versuche ein captcha in mein perlsoft-gaestebuch ein zu bauen. das captcha wird angezeigt, code kann eingegeben werden, so weit, so gut.
beim absenden des formulars wird ein routine eines pm-moduls aufgerufen. da muesste auch die abfrage rein. nur ist es wohl das problem, dass ich hier (vergeblich) versuchte, die php-abfrage in das perl-script ein zu binden.
ich hoffe ja ganz arg, dass mir hier auf die spruenge geholfen werden kann!!
ich bin des php/perl kaum maechtig. c++ is meine welt...
hier der letzte teil des formular-aufbaus. das captcha wird ordnungsgemaess generiert und ausgegeben:
(dieser code befindet sich in der datei 'nonetemplate.pm')
Code:
$gb_eintragen .= qq~
<input id="Checkbox_vorschau" type="Checkbox" name="vorschau" value="1"><label class="klein" for="Checkbox_vorschau" tabindex="14"> @{$main_text{$language}}[73]</label>
</div>
</td>
</tr>
</table>
</td></tr>
<tr bgcolor="@{$temp{eintragenback}}[$nonetempnr]">
<td colspan="2" align="center">
<br>
<input type="hidden" name="lang" value="$language">
<input type="hidden" name="user" value="$user">
<input type="hidden" name="out" value="save_gb_entries">
Bitte die folgenden 4 Ziffern eingeben und dann auf "Eintragen" klicken:<br><br>
<img src="/captcha/captcha.php" border="0" title="Sicherheitscode">
<input type="text" name="sicherheitscode" size="4">
<input class="submit" type="submit" name="eintragen" value="@{$main_text{$language}}[74]" tabindex="11">
</form>
</td>
</tr>
</table>
</td></tr>
</table>
</td>
~;
hier der teil, der ausgefuehrt wird, wenn das formular abgesandt wird (file save_gb_entries.pm).
es werden vorher noch einige ueberpruefungen des formularinhaltes gemacht. hier der teil, in dem die abfrage rein muss:
if ($error ne "") {
### Error Ausgabe ###
require "$pfad/Source/Output/outputcontrol.pm" || die "$!";
$ausgabe = "error";
$msg_titel = "114";
$msg = "115";
&outputcontrol($ausgabe,$pfad,$user,$msg);
}
elsif ($PS{'vorschau'} eq "1") {
### Inhalte zum Uebergeben preparieren ###
push (@{$myh{name}}, $PS{'name'});
push (@{$myh{stadt}}, $PS{'stadt'});
push (@{$myh{icq}}, $PS{'icq'});
push (@{$myh{aim}}, $PS{'aim'});
push (@{$myh{yahoo}}, $PS{'yahoo'});
push (@{$myh{odigo}}, $PS{'odigo'});
push (@{$myh{homepage}}, $PS{'homepage'});
push (@{$myh{email}}, $PS{'email'});
push (@{$myh{hpbewertung}}, $PS{'seitenbewertung'});
push (@{$myh{headsmilie}}, $PS{'headsmilie'});
push (@{$myh{eintrag}}, $PS{'eintrag'});
push (@{$myh{id}}, $id);
$ip = @{$main_text{$language}}[53];
$eintrag_datum_show = @{$main_text{$language}}[78];
### Eingabeseite mit Vorschau aufrufen ###
$count = "0";
$ausgabe = "eintragen";
require "$pfad/Source/Output/outputcontrol.pm" || die "$!";
&outputcontrol($ausgabe,$pfad,$user,$count);
}
else {
#***************************************
### Felder 'NULL'en wenn sie leer sein sollten ###
if ($PS{'deaktivsmilie'} eq "") {$PS{'deaktivsmilie'} = "0";}
if ($PS{'komentarinfo'} eq "") {$PS{'komentarinfo'} = "0";}
##############################
### ID Bestimmen -> Anfang ###
$anzahl = psdbm_countrows("$databaseart","$db_name","$db_pref${user}_gbdata");
$id = psdbm_aktprimarykey("$databaseart","$db_name","$db_pref${user}_gbdata","id");
$id++;
if ($anzahl eq "0") { $id = "1"; }
### ID Bestimmen -> Ende ###
############################
### Eintrag speichern###
psdbm_insert("$databaseart","$db_name","$db_pref${user}_gbdata","id=$id,name='$PS{'name'}',datum=$datum,email='$PS{'email'}',stadt='$PS{'stadt'}',homepage='$PS{'homepage'}',headsmilie='$PS{'headsmilie'}',avart='',komentare=0,zeigen=$moderate_gb,icq='$PS{'icq'}',yahoo='$PS{'yahoo'}',aim='$PS{'aim'}',odigo='$PS{'odigo'}',hpbewertung=$PS{'seitenbewertung'},ip='$ENV{'REMOTE_ADDR'}',smiliesdeak=$PS{'deaktivsmilie'},deakkomsmilies=0,komentarinfo=$PS{'komentarinfo'},komentarvon='',komentar='',eintrag='$PS{'eintrag'}'");
bei der sternchen-zeile muss meines erachtens die abfrage rein. allerdings so wie sie in der einbauanleitung steht, gehts nich. wenn ich mich recht erinner stoerte er sich andem schluesselwort AND.
bei anderen versuchen meinte er, er kenne die funktion ~main::isset nicht
den captcha-code hab ich von hier:
http://stoppt-den-spam.info/webmaster/captcha-tutorial/index.html
ich hoffe ihr habt die loesung...
Datum: 26.04.2008-20:23
