Problem mit dem Captcha

Fragen und Tipps & Tricks zur PHP Mailinglisten-Verwaltung SuperMailingList

Moderator: mirko

Antworten
Benutzeravatar
mirko
Beiträge: 22884
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Problem mit dem Captcha

Beitrag von mirko »

ja das klappt aber nur, wenn von der jeweiligen Domain aus, die SML-Installation auch aufrufbar ist.
SML-User
Beiträge: 21
Registriert: 03.04.2009, 12:17

Re: Problem mit dem Captcha

Beitrag von SML-User »

Ich habe vermutlich die Ursache und eine einfache Lösung für mein Problem gefunden: Wir haben mehrere Domains für eine Webseite, während das Captcha immer von der einen Domain aufgerufen wird. Das Captcha setzt auf PHP-Sessions - und die PHP-eigenen Session-Routinen nutzen Cookies. Da kann es schon mal passieren, daß der Cookie nicht übertragen wird und die Captcha-Grafik nicht zur Session paßt, meint unser Programmierer.

Wenn man...

<img
src="http://www.domain.de/smlist/captcha/req ... .php?<?php
echo md5(uniqid(rand(), true)) ?>

...gegen...

<img src="/smlist/captcha/require/image.php?<?php echo SID ."&id=".
md5(uniqid(rand(), true)); ?>

...ersetzt, wird das Captcha über einen relativen Pfad eingebunden, die Session-ID auch bei deaktivierten Cookies übermittelt und die Session sollte sauber übertragen werden. Das probiere ich derzeit aus. Eventuell hilft das ja auch jemand anders.
Benutzeravatar
mirko
Beiträge: 22884
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Problem mit dem Captcha

Beitrag von mirko »

Tauschen könnt ihr das eigentlich nicht, denn bei einem Update, muss das wieder erneut eingebaut werden. Es reicht dabei nicht irgendwelche Code-Teile zu kopieren, weil bei einem Update sich alle Variablen und Funktionsnamen durch den Obscurer ändern.
SML-User
Beiträge: 21
Registriert: 03.04.2009, 12:17

Re: Problem mit dem Captcha

Beitrag von SML-User »

Frage: Ist schon ok, wenn unser Programmierer zwecks Captcha-Austausch (da das Captcha im Umfang der Software ja leider zickt auf unserem Space) das SM-Listen-Script zum Einbau des anderen Captchas zeitweise auf einer anderen Testumgebung installiert und danach wieder entfernt. So könnten wir eine Operation am offenen Herzen vermeiden, bei laufendem Betrieb rumbasteln erscheint mir doch etwas arg riskant.
Benutzeravatar
mirko
Beiträge: 22884
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Problem mit dem Captcha

Beitrag von mirko »

SML-User hat geschrieben:Wir würden gerne zwecks Spam-Schutz das Captcha drin behalten. Momentan wird gerade unser Gästebuch-Captcha umprogrammiert aufgrund von Spam-Problemen. Eventuell können Sie mir ja an sebastian_mader@irgendwas mailen, an welchen Punkten im SML-Script Änderugen gemacht werden müssten, sprich wo das Captcha wie verbaut ist, welche Variablen übergeben werden usw. etc. - dann kann ich dies unserem Programmierer sagen und er baut das um. Denn ein anderes Captcha funktioniert bei uns reibungslos.
Captchas sind aber nicht mehr sicher, das sehe ich hier im Forum, melden sich jeden Tag Ukrainer und Polen an, die das Captcha lesen und damit auch lösen können. Der Captcha-Code ist im Unterverzeichnis captcha zu finden.
Nebenbei ist mir gerade noch Folgendes im HTML-Code aufgefallen:

Code: Alles auswählen

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<input type="hidden" name="FormEncoding" value="iso-8859-1" />
Allerdings sollte das nicht die Ursache sein, da auf den anderen Anmelde-Pages (Facebook etc.) das Problem trotz richtig gesetztem Zeichencode ebenfalls ab und an auftritt.
Das FormEncoding ist dann falsch bei der Formularerstellung angegeben wurden, das sollte auf utf-8 geändert werden, sonst werden möglicherweise Umlaute/Sonderzeichen falsch in die Datenbank übernommen.
SML-User
Beiträge: 21
Registriert: 03.04.2009, 12:17

Re: Problem mit dem Captcha

Beitrag von SML-User »

Wir würden gerne zwecks Spam-Schutz das Captcha drin behalten. Momentan wird gerade unser Gästebuch-Captcha umprogrammiert aufgrund von Spam-Problemen. Eventuell können Sie mir ja an sebastian_mader@irgendwas mailen, an welchen Punkten im SML-Script Änderugen gemacht werden müssten, sprich wo das Captcha wie verbaut ist, welche Variablen übergeben werden usw. etc. - dann kann ich dies unserem Programmierer sagen und er baut das um. Denn ein anderes Captcha funktioniert bei uns reibungslos.

Nebenbei ist mir gerade noch Folgendes im HTML-Code aufgefallen:

Code: Alles auswählen

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<input type="hidden" name="FormEncoding" value="iso-8859-1" />
Allerdings sollte das nicht die Ursache sein, da auf den anderen Anmelde-Pages (Facebook etc.) das Problem trotz richtig gesetztem Zeichencode ebenfalls ab und an auftritt.

[Admin] E-Mail-Adresse entfernt
Benutzeravatar
mirko
Beiträge: 22884
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Problem mit dem Captcha

Beitrag von mirko »

Wenn das Captcha nicht korrekt auf dem Webspace funktioniert, muss du es aus dem Formular rausnehmen.
SML-User
Beiträge: 21
Registriert: 03.04.2009, 12:17

Problem mit dem Captcha

Beitrag von SML-User »

Ich habe folgendes Problem mit meiner Newsletteranmeldung - manchmal geht es ganz normal, oft kommt allerdings die Meldung "Es ist ein Fehler aufgetreten: Geben Sie das angezeigte Wort korrekt ein.", obwohl das Wort korrekt eingegeben wurde. Das hält viele Leute davon ab, sich bei der Mailingliste anzumelden. Ich nutze SuperMailingList 1.40.0.00247. Hier der Link zur Mailinglisten-Anmeldung: http://www.stainless-steel-music.de/sml_anmeldung.php. Hier der Code der "sml_anmeldung.php" (ich habe den Formular-HTML-Code mit SMList erstellt und in meine PHP-Datei integriert:

Code: Alles auswählen

<?php
@session_cache_limiter("public");
if(!ini_get("session.auto_start")) @session_start();
require_once "/home/strato/www/st/www.stainless-steel-music.de/htdocs/smlist/captcha/require/config.php";
require_once "/home/strato/www/st/www.stainless-steel-music.de/htdocs/smlist/captcha/require/crypt.class.php";
$GLOBALS["crypt_class"] = new crypt_class();
?>



<?php include "files_config/doctype/doctype.txt"; ?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php include "sml_anmeldung/title.txt"; ?></title>
<?php include "files_config/metatags/metatags.txt"; ?>
<link rel="shortcut icon" href="http://www.stainless-steel-music.de/files_pics/favicon.ico" />
<link href="sml_anmeldung/newsletter.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/JavaScript" src="scripts/onkelzcover.js"></script>
</head>

<body onLoad="typew()">
<div id="newsletter_main">
<div class="website_text2">Hier kannst du dich f&uuml;r unseren (kostenlosen) elektronischen Newsletter an-/abmelden. Dieser erscheint in unregelm&auml;&szlig;igen Abst&auml;nden und informiert unter anderem &uuml;ber unsere Konzerttermine. Von Zeit zu Zeit verlosen wir unter den Newsletter-Empf&auml;ngern auch Preise (n&auml;here Infos: <span class="website_link"><a href="javascript:window.open('http://www.stainless-steel-music.de/newsletterverlosung/index.php','Newsletterverlosung','location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,width=800,height=610');void(0);">klicke hier</a></span>).</div>



<form method="post" action="http://www.stainless-steel-music.de/smlist/nl.php">
<input type="hidden" name="MailingListId" value="1" />
<input type="hidden" name="FormId" value="1" />
<input type="hidden" name="FormEncoding" value="iso-8859-1" />
<br />
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td >
E-Mail-Adresse&nbsp;*
 </td>
<td>
<input class="input1" type="text" name="u_EMail" onFocus='this.style.backgroundColor="#FFFFFF"' onBlur='this.style.backgroundColor="#CCCCCC"' size="50" maxlength="255" />
<br />
<br />
</td>
</tr>
<tr>
<td >
Vorname&nbsp;*
 </td>
<td>
<input class="input1" type="text" name="u_FirstName" onFocus='this.style.backgroundColor="#FFFFFF"' onBlur='this.style.backgroundColor="#CCCCCC"' size="50" maxlength="255" />
</td>
</tr>
<tr>
<td >
Nachname&nbsp;*
 </td>
<td>
<input class="input1" type="text" name="u_LastName" onFocus='this.style.backgroundColor="#FFFFFF"' onBlur='this.style.backgroundColor="#CCCCCC"' size="50" maxlength="255" />
</td>
</tr>
<tr>
<td >
Bundesland&nbsp;*
 </td>
<td>
<input class="input1" type="text" name="u_PrivateState" onFocus='this.style.backgroundColor="#FFFFFF"' onBlur='this.style.backgroundColor="#CCCCCC"' size="50" maxlength="255" />
</td>
</tr>
<tr>
<td >
Postleitzahl&nbsp;*
 </td>
<td>
<input class="input1" type="text" name="u_PrivateZIPCode" onFocus='this.style.backgroundColor="#FFFFFF"' onBlur='this.style.backgroundColor="#CCCCCC"' size="50" maxlength="255" />
</td>
</tr>
<tr>
<td >
Stadt (freiwillig)
 </td>
<td>
<input class="input1" type="text" name="u_PrivateCity" onFocus='this.style.backgroundColor="#FFFFFF"' onBlur='this.style.backgroundColor="#CCCCCC"' size="50" maxlength="255" />
</td>
</tr>
<tr>
<td >
Handynummer (freiwillig)
 </td>
<td>
<input class="input1" type="text" name="u_CellNumber" onFocus='this.style.backgroundColor="#FFFFFF"' onBlur='this.style.backgroundColor="#CCCCCC"' size="50" maxlength="255" />
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;<br />
</td>
</tr>
<tr>
<td colspan="2">
<hr noshade="noshade" style="width: 100%; border:dotted #BABABA 1px; " />
</td>
</tr>
<tr>
<td >
Gew&uuml;nschte Aktion
 </td>
<td>
<input type="radio" name="Action" value="subscribe" checked="checked" />
&nbsp;Anmelden<br />
<input type="radio" name="Action" value="unsubscribe" />
&nbsp;Abmelden<br />
</td>
</tr>
<tr>
<td style="vertical-align:top">
Geben Sie das Wort, wie im nachfolgenden Feld angezeigt, ein (Spam-Schutz)*<br />
</td>
<td>
<input type="text" name="user_captcha_string" />
<br />
<br />
<img src="http://www.stainless-steel-music.de/smlist/captcha/require/image.php?<?php echo md5(uniqid(rand(), true)) ?>
" />
</td>
</tr>
<tr>
<td colspan="2">
<hr noshade="noshade" style="width: 100%; border:dotted #BABABA 1px; " />
</td>
</tr>
<tr>
<td colspan="2">
<input class="newsletterbutton" type="submit" value="Absenden" onMouseOver='this.style.backgroundColor="#FFA509"' onmouseout='this.style.backgroundColor="#FFFFFF"' />
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;<br />
</td>
</tr>
<tr>
<td colspan="2">
Angaben mit * sind Pflichtangaben.
 </td>
</tr>
</tbody>
</table>
</form>

<br />
<div class="website_text2"><span class="website_link"><a href="javascript:window.open('http://www.stainless-steel-music.de/newsletterverlosung/index.php','Newsletterverlosung','location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,width=800,height=610');void(0);"><img src="sml_anmeldung/newsletterverlosung.jpg" alt="klicke hier!" width="350" height="90"/></a></span></div>

</div>
</body>
</html>
Ferner ist die Newsletteranmeldung auch noch in unsere mobile Webseite und unsere Facebook-Seite (http://www.stainless-steel-music.de/stainlesssteelpage) eingebunden (einmal als eigener Reiter "Newsletteranmeldung" und einmal in die in Facebook integrierte "Bandpage").
Antworten