Sicherheitscode nicht richtig ?!

uwee

Erfahrenes Mitglied
Hallo an alle!!

Ich habe von einem Freund ein fertiges Script für einen "PaidMailer" bekommen.
Er versucht selbst einen aufzubauen, leider scheitert dieses Vorhaben schon beim Anlegen eines neuen Users:
Der Sicherheitscode wird leider nicht akzeptiert.
Ich habe im folgenden die relevanten Stellen aus dem Script hierher kopiert. Es ist deshalb etwas seltsam, weil das Script ja auf anderen Seiten funktioniert.

PHP:
include ("config.inc.php");
include('db.php');
require('maillog.php');
@session_start();
session_name(s);
if(empty($_SESSION['sicherheitscode'])) $_SESSION['sicherheitscode'] = 1;
if(!$_GET['step']){

PHP:
<td valign="top"><br><b>Sicherheitscode:</b><br>
<?
$n = new Number( rand(1000,9999) );
$n->printNumber();
$_SESSION['sicherheitscode'] = $n->getNum();
?>

PHP:
elseif($_POST['sicherheitscode']!=$_SESSION['sicherheitscode']) {
echo 'Der Sicherheitscode ist nicht korrekt!';
@session_destroy();
}

Der Sicherheitscode wird in ein Edit-Feld eingegeben und dann wird die "Senden" Schaltfläche betätigt. Leider wird die Abbruchbestimmung IMMER ausgelöst, da der Sicherheitscode anscheinend nicht mit dem Übereinstimmt, der hinterher als BIld angezeigt wird.

Vielleicht findet Ihr ja eine Erklärung dafür...

MfG
UweE
 
Naja, das muss man schon in einem größeren Zusammenhang sehen.
- Welche Datei wird wann aufgerufen?
- Wann wird Sicherheitscode generiert?
- Ist Sicherheitscode evtl. bereits ungültig weil neuer generiert wurde?
usw.

Gebt lieber jemanden das komplette Script zum checken und debuggen, wenn ihr es hier nicht veröffentlichen wollt.
 
Probier das Ganze mal ohne die Notes-Klasse:
PHP:
$_SESSION['uid'] = md5(uniqid(rand()));
echo '<input type="hidden" name="uid" value="'.$_SESSION['uid'].'">';
PHP:
if( empty($_POST['uid']) || empty($_SESSION['uid']) || $_POST['uid'] !== $_SESSION['uid'] ) {
	echo 'Ungültige Aktion!';
}
 
Zurück