Ergebnis 1 bis 7 von 7

Thema: [1.2] Anmelden.php führt buchungen zu oft aus

  1. #1
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147

    [1.2] Anmelden.php führt buchungen zu oft aus

    Fehlerbeschreibung:
    Ich habe jetzt schon 2 drei mal in den buchungen verfolgen können,
    das buchungen der werberprämie 2,3 oder ach 4 mal ausgeführt wurden.

    hier die buchungen eines users:
    HTML-Code:
    10.03.2009   23:02   5.000,00   Werberprämie für User 131 
    10.03.2009   23:02   5.000,00   Werberprämie für User 131      
    10.03.2009   23:02   5.000,00   Werberprämie für User 131    
    10.03.2009   22:59   5.000,00   Werberprämie für User 131
    es werden je nach lust und laune manchmal 1 buchung manchmal 4 wies halt grad lust hat ausgeführt.

    Anmelde.php
    PHP-Code:
    <?
    // Variabel vordefinieren!
    if (!isset($_POST['anmelden'])) $_POST['anmelden'] = "";
    if (!isset($_POST['nickname'])) $_POST['nickname'] = "";
    if (!isset($_POST['nachname'])) $_POST['nachname'] = "";
    if (!isset($_POST['vorname'])) $_POST['vorname'] = "";
    if (!isset($_POST['emailadresse'])) $_POST['emailadresse'] = "";
    if (!isset($_POST['passwort_1'])) $_POST['passwort_1'] = "";
    if (!isset($_POST['passwort_2'])) $_POST['passwort_2'] = "";
    if (!isset($_POST['agb'])) $_POST['agb'] = "";
    if (!isset($_POST['newsletter'])) $_POST['newsletter'] = "1";
    if (!isset($_POST['paidmails'])) $_POST['paidmails'] = "1";
    if (!isset($error)) $error = "";
    if (!isset($anmeldeok)) $anmeldeok = "";
    if (!isset($ak)) $ak = "";

    if ($_POST['anmelden'] == "Jetzt anmelden!") {



    $_POST['nachname'] = addslashes ($_POST['nachname']);
    $_POST['vorname'] = addslashes ($_POST['vorname']);

    //UID Bestimmen
    $id =db_query ("SELECT count(uid) as idid FROM ".$db_prefix."_userdaten ");
    $id2 = mysql_fetch_assoc($id);
    $id3= $id2[idid]+1;

    // Auf Eingabefehler prüfen
    if(!$_POST['nachname'] || !$_POST['vorname'] || !$_POST['emailadresse'] || !$_POST['passwort_1'] || !$_POST['passwort_2'] || !$_POST['nickname']) $error .= 'Bitte fülle alle benötigten Felder aus!<br>';


    if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse'])) $error .= 'Der Emailsyntax ist falsch!<br>';
    if ($_POST['passwort_1'] != $_POST['passwort_2']) $error .= 'Passwörter stimmen nicht überein!<br>';
    if (strlen($_POST['passwort_1']) < 6) $error .= 'Passwortlänge muss min. 8 Zeichen haben<br>';
    if ($_POST['pin'] != $_SESSION['pin_anmeldung']) $error .= 'Sicherheitscode falsch!'; 
    if ($_POST['agb'] != "ja") $error .= 'Du musst die AGBs bestädigen!<br>';
    if ($id3 == $_SESSION['werber']) $error .= 'Du kannst Dich nicht selber werben<br>';



    // User mit der Datenbank abgleichen
    if (!$error) {
    $_POST['nickname'] = mysql_real_escape_string(ucfirst($_POST['nickname']));
    $nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$_POST['nickname']."'");
    $mail_check = db_query ("SELECT `emailadresse` FROM ".$db_prefix."_emaildaten WHERE emailadresse='".$_POST['emailadresse']."'");
    $black_check= db_query ("SELECT * FROM ".$db_prefix."_userblacklist WHERE uid='".$_POST['uid']."' and zeit >='".time()."'");
    $sperre = mysql_fetch_array($black_check);
    if ($sperre['zeit'] != 99999999999) {
    $sperrtext = 'Du bist für eine Neuanmeldung noch bis <b>'.date("d.m.Y - H:i:s",$sperre['zeit']).'</b> gesperrt!<br>';
    } else {
    $sperrtext = '<b><i>Du bist für diese Webseite komplett gesperrt!</i></b>';
    }
    if (mysql_num_rows($mail_check)) $error .= 'Diese Emailadresse ist schon im System!<br>';
    if (mysql_num_rows($black_check)) $error = $sperrtext;
    if (mysql_num_rows($nickname_check)) $error .='Der Nickname ist schon vergeben!<br>';
    }

    //Anmeldebonus
    $req=mysql_query("SELECT werberpraemie, startguthaben FROM ".$db_prefix."_start_praemie");
    while ($row = mysql_fetch_array($req)) {
    $werberpraemie=$row['werberpraemie'];
    $startguthaben=$row['startguthaben'];
    }
    kontobuchung ('+',$werberpraemie,$_SESSION['werber']);
    $buchungs_id = create_code(14); 
    db_query("INSERT INTO ".$db_prefix."_buchungen (uid,buchungszeit,buchungs_id,buchungsmenge,verwen dungszweck) VALUES (".$_SESSION['werber'].",".time().",'".$buchungs_id."','".$werberpraemie ."','Werberprämie für User ".$id3."')");


    // User eintragen
    if (!$error) {
    db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('".$id3."','".md5($_POST['passwort_1'])."','0','','$startguthaben')");
    db_query("INSERT INTO ".$db_prefix."_emaildaten (uid,emailadresse,freigabe_fuer) VALUES ('".$id3."','".$_POST['emailadresse']."','".$_POST['newsletter']."')");
    db_query("INSERT INTO ".$db_prefix."_userdaten (uid,nickname,vorname,nachname,angemeldet_seit) VALUES ('".$id3."','".$_POST['nickname']."','".$_POST['vorname']."','".$_POST['nachname']."','".time()."')");
    db_query("INSERT INTO ".$db_prefix."_werberdaten (uid,werber,umsatz,zuordnungszeit) VALUES ('".$id3."','".$_SESSION['werber']."','0','".time()."')");

    }

    if ($error){
    head("Anmeldefehler");
    echo '<font color="#cc0000">'.$error.'</font>';
    foot();
    }
    ?>

    <? if ($anmeldeok != "true") { ?>
    <?head("$seitenname - Neuanmeldung");


    ?>

    <center><b>Neuanmeldung</b></center>
    <table width="100%" cellpadding="3" cellspacing="0" border="0">
    <form action="" method="post">
    <tr>
    <td class="main"><b>Nickname:</b></td>
    <td class="main"><input type="text" name="nickname" value="<?=$_POST['nickname'];?>"></td>
    </tr>
    <tr>
    <td class="main"><b>Nachname:</b></td>
    <td class="main"><input type="text" name="nachname" value="<?=$_POST['nachname'];?>"></td>
    </tr>
    <tr>
    <td class="main"><b>Vorname:</b></td>
    <td class="main"><input type="text" name="vorname" value="<?=$_POST['vorname'];?>"></td>
    </tr>
    <tr>
    <td class="main"><b>Emailadresse:</b></td>
    <td class="main"><input type="text" name="emailadresse" value="<?=$_POST['emailadresse'];?>"></td>
    </tr>
    <tr>
    <td class="main">Werber:</td>
    <td class="main"><? if($_SESSION['werber'] == 0) {echo '<b>keinen</b>';} else {echo $_SESSION['werber'];}?></td>
    </tr>
    <tr>
    <td class="main"><b>Passwort:</b></td>
    <td class="main"><input type="password" name="passwort_1"></td>
    </tr>
    <tr>
    <td class="main"><b>Passwortbestätigung:</b></td>
    <td class="main"><input type="password" name="passwort_2"></td>
    </tr>
    <tr>
    <td class="main"><b>Newsletter:</b></td>
    <td class="main"><select name="newsletter"><option value="1" <? if ($_POST['newsletter'] == "1") { echo 'selected';}?>>Ja</option><option value="0" <? if ($_POST['newsletter'] != "1") { echo 'selected';}?>>Nein</option></select></td>
    </tr>
    <tr>
    <td class="main"><b>AGB`s gelesen und akzeptiert:</b></td>
    <td class="main"><select name="agb"><option value="ja" <? if ($_POST['agb'] == "ja") { echo 'selected';}?>>Ja</option><option value="nein" <? if ($_POST['agb'] != "ja") { echo 'selected';}?>>Nein</option></select></td>
    </tr>
    <tr>
    <td class="main"><b><img src="pin_image.php"></b></td>
    <td class="main"><input type="text" name="pin"></td>
    </tr> 
    <tr>
    <td class="main" align="center" colspan="2">
    Vor dem Anmelden lese bitte die <a href="?content=/intern/agbs">AGB`s</a> !<br><br>
    <input type="submit" name="anmelden" value="Jetzt anmelden!">
    </td>
    </tr>
    </form>
    </table>
    <?foot();?>
    <?} else {?>
    <?head("$seitenname - Anmeldung erfolgreich!");?>
    Deine Anmeldung bei <?=$seitenname;?> war erfolgreich, Du bekommst jetzt eine Email mit Deinen Daten und einen Aktivierungslink.
    Sobald Du deinen Account aktiviert hast kannst Du dich bei uns einloggen und diese Seite im vollen Umfang nutzen.<br>
    <br>
    Bitte beachte dass es auch etwas dauern kann bis die Aktivierungsmail bei Dir ankommt, dieses ist anhängig von Deinem Emailanbieter.<br>
    <br>
    Mit freundlichen Grüßen<br>
    Joschi<br>

    <?foot();?>
    <? } ?>
    MFG Lokutos
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  2. #2
    §2.9 Verwendung fremden Eigentums (Code, Bilder,...)
    Es ist ausdrücklich verboten Dinge, die nicht Eigentum der Person sind die sie veröffentlicht hat, preiszugeben bzw. zu veröffentlichen! Dies betrifft auch einzelne Teile fremden Eigentums, vor allem Teile oder Codefragmente aus kostenpflichtigen Scripten! Missachten dieser Regel führt zum sofortigen Ausschluss von Designerscripte.net und kann durch den Ersteller des Sachgegenstandes zu rechtlichen Folgen führen.
    Das auffinden solcher Verletzungen der Regeln sollte auch von Usern sofort an einen Admin oder Moderator gemeldet werden. Designerscipte.net distanziert sich ausdrücklich von Copyrightverletzungen durch Mitglieder wegen Nichteinhalten der Forenregeln. Jedoch bemühen wir uns diese aus dem Forum nach auffinden sofort zu entfernen.
    Charmante-Lose / Mini-Zocker / ColaCodes4Lose
    Du brauchst Webspace für dein VMS--> PN

  3. #3
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147
    Zitat Zitat von EarlofMidnight Beitrag anzeigen
    §2.9 Verwendung fremden Eigentums (Code, Bilder,...)
    Es ist ausdrücklich verboten Dinge, die nicht Eigentum der Person sind die sie veröffentlicht hat, preiszugeben bzw. zu veröffentlichen! Dies betrifft auch einzelne Teile fremden Eigentums, vor allem Teile oder Codefragmente aus kostenpflichtigen Scripten! Missachten dieser Regel führt zum sofortigen Ausschluss von Designerscripte.net und kann durch den Ersteller des Sachgegenstandes zu rechtlichen Folgen führen.
    Das auffinden solcher Verletzungen der Regeln sollte auch von Usern sofort an einen Admin oder Moderator gemeldet werden. Designerscipte.net distanziert sich ausdrücklich von Copyrightverletzungen durch Mitglieder wegen Nichteinhalten der Forenregeln. Jedoch bemühen wir uns diese aus dem Forum nach auffinden sofort zu entfernen.

    Ich habe diese anmelden.php selber geschrieben darum bitte wieder einfügen


    MFG Lokutos
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  4. #4
    Erfahrener Benutzer Avatar von eRaaaa
    Registriert seit
    06.06.2007
    Beiträge
    702
    also ich konnte den code noch lesen

    daher sag ich dir folgendes:

    1. allgemeines: wieso hängt ihr immer eine while schleife um ein fetch array, wenns eh nur ein datensatz ist?

    2. mach den werberbonus in den if block vom user eintragen, also nach if (!$error) {
    ....
    }

    sonst kann er halt tausend mal falsche angaben eingeben und landet immer wieder auf deine anmeldeseite und bekommt halt jedes mal den bonus !

  5. #5
    Wie es der Zufall so will heißen die Prämien bei dir genau so wie bei käuflichen Addons!

    War keine Böse Absicht!
    Charmante-Lose / Mini-Zocker / ColaCodes4Lose
    Du brauchst Webspace für dein VMS--> PN

  6. #6
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147
    Zitat Zitat von EarlofMidnight Beitrag anzeigen
    Wie es der Zufall so will heißen die Prämien bei dir genau so wie bei käuflichen Addons!

    War keine Böse Absicht!
    naja sind halt die einachsten sachen werberprämie und anmeldebonus
    und gehört zum start und da vms_prämie schon belegt ist in meiner db gg
    thx fürs wieder einfügen

    @ eraaa warum in ner schleife weis ich selber nich gg funzt aber also lass ichs lieber so gg

    das mit dem verschieben werd ich mal ausprobieren womoglich hast du recht und es wahren vorher fehler bei der anmeldung und somit nicht eingetragen

    THX
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  7. #7
    Erfahrener Benutzer Avatar von h-m
    Registriert seit
    02.09.2006
    Beiträge
    115
    kleine info zu dem while: also wenn du aus versehen mehrere datensätze in der Tabelle vms_start_praemie drin hast, dann bekommen die beiden variablen bei verwendung der while-schleife halt die werte des letzten zurückgelieferten datensatzes zugewiesen.

    hat jetzt aber nichts mit deinem problem zu tun.

    mit folgendem code (ungetestet) bekommen die variablen dann die werte des ersten zurückgelieferten datensatzes zugewiesen statt die des letzten:

    PHP-Code:
    //Anmeldebonus 
    $req=mysql_query("SELECT werberpraemie, startguthaben FROM ".$db_prefix."_start_praemie"); 
    if (
    mysql_num_rows($req)>0) {
        
    $row mysql_fetch_array($req));
        
    $werberpraemie=$row['werberpraemie']; 
        
    $startguthaben=$row['startguthaben']; 

    bei mir ist die while-schleife auch drin .. keine probleme.

    du solltest die Prämien nur gutschreiben, wenn (= if) KEIN (= !) fehler (= $error) aufgetreten ist ...=> if(!$error)... wie eRaaa schon sagte.

    bei mir ist der ganze block mit einem if(!$error) umschlossen, in etwa so:

    PHP-Code:
    //Anmeldebonus
    if(!$error){
        
    $req=mysql_query("SELECT werberpraemie, startguthaben FROM ".$db_prefix."_start_praemie"); 
        while (
    $row mysql_fetch_array($req)) { 
            
    $werberpraemie=$row['werberpraemie']; 
            
    $startguthaben=$row['startguthaben']; 
        } 
        
    kontobuchung ('+',$werberpraemie,$_SESSION['werber']); 
        
    $buchungs_id create_code(14);  
        
    db_query("INSERT INTO ".$db_prefix."_buchungen (uid,buchungszeit,buchungs_id,buchungsmenge,verwen dungszweck) VALUES (".$_SESSION['werber'].",".time().",'".$buchungs_id."','".$werberpraemie ."','Werberprämie für User ".$id3."')");

    wenn man nicht weiss warum man welchen code schreibt: ich kann jedem nur das PHP-Handbuch im CHM-Format ans Herz legen. gibt es auch weitestgehend auf deutsch. PHP-MySQL-Tutorials gibts auch viele im Netz.

    viel Erfolg

Ähnliche Themen

  1. Editieren in PhpMyAdmin führt zu Firefox Absturz
    Von Masterphil im Forum [HD] Grafik, Server & Sonstiges
    Antworten: 1
    Letzter Beitrag: 20.01.2011, 15:05
  2. Cronjob führt aus aber nicht in der DB
    Von sascha2703 im Forum Support zum VMSone
    Antworten: 4
    Letzter Beitrag: 20.05.2010, 16:22
  3. anmelden
    Von Anonyme2k im Forum Support zum VMSone
    Antworten: 3
    Letzter Beitrag: 22.07.2009, 16:53
  4. Druckerdienst CUPS führt Schadcode aus
    Von Newsbot im Forum Talk, talk, talk...
    Antworten: 0
    Letzter Beitrag: 14.10.2008, 13:50
  5. anmelden.php
    Von Bossi im Forum Bug-Report
    Antworten: 12
    Letzter Beitrag: 09.03.2007, 16:41

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •