[Hilfe]Donate Script

01/04/2013 21:00 Morpheus[LC]#1
Hallo Community,

ich habe noch nicht so viel erfahrung was php angeht und brauche da mal etwas hilfe.
Es sind viele funkten und sachen doppelt oder unnütz das weis ich auch :)
Wo ich hilfe bei brauch einen dump schutz dort einzufügen damit man die DB nicht voll spammt so einfach.
Und vielleicht eine eine vereinfachte version währe auch hilfreich.

Funktionen:
PHP Code:
<?php
    $datenbank_tabelle 
"psc";
    include 
'config/config.php';
    
    
// Erstelle ein Verbindung zum MySQL Server    
    
$verbindung mysql_connect$mysql_ip["ip"], $mysql_user["user"], $mysql_pass["pass"], $mysql_web["web"] );   
    
    
// Datenbank auswaehlen.
    
mysql_select_db($mysql_web["web"]) or die("Diese Datenbank existiert nicht, leg sie mal an..");
    
    
// Prueft ob Formular egsendet wird.
    
if ($_POST['form'] == "1") { 

        
// Formulardaten in Variablen speichern
        
$name mysql_real_escape_string($_POST['name']); 
        
$wert mysql_real_escape_string($_POST['wert']); 
        
$pin1 mysql_real_escape_string($_POST['pin1']);
        
$pin2 mysql_real_escape_string($_POST['pin2']);
        
$pin3 mysql_real_escape_string($_POST['pin3']);
        
$pin4 mysql_real_escape_string($_POST['pin4']);
        
        
$datum date("Y/m/d"); 

        
        
// daten eintragen
        
$eintragen "INSERT INTO $datenbank_tabelle
        (name, wert, datum, pin1, pin2, pin3, pin4)
        VALUES
        ('
$name', '$wert', '$datum', '$pin1', '$pin2', '$pin3', '$pin4' )";
        
        
$q mysql_query($eintragen);
        if (
$q == true) {
            echo 
"Eintrag erfolgreich!"
            
        } else {
            echo 
"Eintrag fehlgeschlagen";
            
        }


    } else 
?>
HTML:
PHP Code:
<html>
<
body>
<
div style="text-align: center;">
            <
img src="img/psc.png" style="margin-top: 5px; margin-bottom: 8px;" />
            <
form method="post" action="./psc.php">

            <
b>Your Acc Name</b><br/>
            <
input type="text" name="name" placeholder="Your Acc Name" />
            <
br /><br />

            <
b>PaysafeCard PIN</b><br/>
            <
input type="text" maxlength="4" name="pin1" style="width: 40px;" />
            <
input type="text" maxlength="4" name="pin2" style="width: 40px;" />
            <
input type="text" maxlength="4" name="pin3" style="width: 40px;" />
            <
input type="text" maxlength="4" name="pin4" style="width: 40px;" />
            <
br /><br/>
            
            <
b>Paysafecard value<b><br/>
            <
select name="wert" style="background: width: 170px; height: 22px;">
                <
option value="10,00">9.600 Extreme Cash &euro;10,00</option>
                <
option value="25,00">25.920 Extreme Cash &euro;25,00</option>
                <
option value="50,00">57.024 Extreme Cash &euro;50,00</option>
                <
option value="100,00">125.452 Extreme Cash &euro;100,00</option>
            </
select>
        
            <
br/><br/>
            <
input type="submit" value="Donate" />
            <
input type="hidden" name="form" value="1" />
            </
form>
            </
div>

</
body>
</
html
Config:
PHP Code:
<?php

    
// Normal Mysql settings
    
$mysql_ip["ip"] = ''// mysql ip
    
$mysql_user["user"] = ''// mysql username
    
$mysql_pass["pass"] = ''// mysql password
    
    // MySQL Daten Banken
    
$mysql_web["web"] = ''// PSC 
        
?>
SQL Datei:
PHP Code:
-- ---------------------------
-- 
Table structure for `psc`
-- ----------------------------
DROP TABLE IF EXISTS `psc`;
CREATE TABLE `psc` (
  `
a_indexint(11unsigned NOT NULL AUTO_INCREMENT,
  `
namevarchar(80NOT NULL,
  `
wertint(11NOT NULL,
  `
pin1varchar(20NOT NULL,
  `
pin2varchar(20NOT NULL,
  `
pin3varchar(20NOT NULL,
  `
pin4varchar(20NOT NULL,
  `
datumdate NOT NULL,
  
PRIMARY KEY (`a_index`)
ENGINE=MyISAM AUTO_INCREMENT=DEFAULT CHARSET=latin1;

-- ----------------------------
-- 
Records of psc
-- ---------------------------- 
01/05/2013 00:43 iKyroja :>#2
Kannst mit einer session erstellen mit dem datum/zeit wan er gespendet hat und so coden das er dan z.B nur alle 10sec Spenden kann, oder du überprüfst ob der Voucher schon existiert.
01/10/2013 22:30 SniuurksT#3
If i understood correctly you want to protect it from spamming? or?
01/13/2013 14:19 Hupfi10#4
Oder erstelle einen Cookie der 24h gültig ist und erst nach ablauf oder löschung des Cookies kann man wieder spenden.
Oder du speicherst die IP des Spenders und packst die in ne Extra Tabelle und überprüfst jedes mal die IP wenn sie schon existiert kann er nicht spenden. Dann machst du nen Cron Job der alle 24h die IP`s aus der Tabelle löscht :)
01/21/2013 06:54 Morpheus[LC]#5
Quote:
Originally Posted by SniuurksT View Post
If i understood correctly you want to protect it from spamming? or?
Yes I want a spam protection for the script
01/21/2013 12:06 KoKsPfLaNzE#6
du könntest dir auch immer zufälligen Namen für die input felder belegen und zusätzlich noch pin1 ... pin8 schreiben, welche jedoch vom typ hidden sind und wenn diese felder beschrieben werden, dann wird der komplette request abgewiesen.
01/21/2013 20:35 5anku#7
Würde mit einem Javascript auch noch Validieren das nur Zahlen in die Pins eingegeben werden können. Natürlich musst du es im PHP dann auch noch mal überprüfen.

Hatte mal was ähnliches hier mein Javascriptcode, musst nur noch auf die Felder einen onkeydown und up triggern.

Javascript
Code:
function onlyNumbers(fieldobjekt)
{
    if (isNaN(fieldobjekt.value))
    fieldobjekt.value = fieldobjekt.value.substr(0, fieldobjekt.value.length-1);
}
PHP
Code:
<input type="text" onkeydown="onlyNumbers(this)" onkeyup="onlyNumbers(this)" maxlength="4" name="pin1" style="width: 40px;" />