Zuerst habe ich mich mal um die Sprachen gekümmert, dazu habe ich eine
lang.ini Datei erstellt in der sämtliche Texte und die gewünschte Sprache definiert werden:
- Code: Alles auswählen
; Hier einfach "en" für Englisch, oder "de" für Deutsch, du kannst auch z.B. "jp" für Japanisch einfügen,
; dann musst du ganz unten aber alle Elemente noch mal aufführen!
[cnfg]
lang = de
[de]
title = Spendenformular
headline = Unser Spendenformular
legendForWhat = Wofür möchten sie spenden?
referencePriority_a = Verwenden sie meine Spende wo sie am dringensten benötigt wird
referencePriority_b = Verwenden sie meine Spende für folgende Projekte:
legendChooseProjects = Wählen sie die Projekte aus
donationHowMuch = Wie viel möchten sie spenden?
currency = €
donationHowMuchInfo = (Bitte nur ganze Zahlen)
[en]
title =
headline =
legendForWhat =
Diese wird in der Hauptdatei so eingebunden:
(ganz am Anfang)- Code: Alles auswählen
<?php
$lang = parse_ini_file("lang.ini", true);
$language = $lang['cnfg']['lang'];
?>
Dann musst du in der Datei alle Textstellen ersetzen, ein Beispiel:
- Code: Alles auswählen
<title><?php print $lang[$language]['title']; ?></title>
Ändern tust du nur das letzte Array Element, das was hier
['title'] heißt, heißt in der Überschrift natürlich
['headline'], so wie es in der lang.ini benannt ist (
headline = Unser Spendenformular).
Ich habe mal nicht alle benannt damit du auch noch was zu tun hast ;)
Hier nun deine Datei:
- Code: Alles auswählen
<?php
$lang = parse_ini_file("lang.ini", true);
$language = $lang['cnfg']['lang'];
$dbCon = mysql_connect("127.0.0.1", "BENUTZER!", "PASSWORT!");
$dbSel = mysql_select_db("!TABELLENNAME");
function getProjects($file)
{
if(!isset($file))
return false;
$handler = fopen($file, 'rb');
while($line = fgets($handler))
{
$a = $line;
$return[] = explode('|', $a);
}
return $return;
}
$projects = getProjects('projects.txt');
?>
<!DOCTYPE html>
<head>
<title><?php print $lang[$language]['title']; ?></title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<meta name="description" content="" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<script>
function changeStyle(id, style, value)
{
if(document.getElementById)
document.getElementById(id).setAttribute('style', style+': '+value);
else
document.all.id.setAttribute('style', style+': '+value);
return true;
}
</script>
</head>
<body>
<h1><?php print $lang[$language]['headline'] ?></h1>
<?php
if(isset($_POST['submit']))
{
$success = true;
if(isset($_POST['reference'])) $formData['reference'] = trim(htmlentities($_POST['reference']));
else $success = false;
if(isset($_POST['referenceProjects'])) $formData['referenceProjects'] = $_POST['referenceProjects'];
if(isset($_POST['amount'])) $formData['amount'] = trim(htmlentities($_POST['amount']));
else $success = false;
if(isset($_POST['hiddenField'])) $formData['mail'] = trim(htmlentities($_POST['hiddenField']));
else $success = false;
if(isset($_POST['cardOwner'])) $formData['cardOwner'] = trim(htmlentities($_POST['cardOwner']));
else $success = false;
if(isset($_POST['cardNumber'])) $formData['cardNumber'] = trim(htmlentities($_POST['cardNumber']));
else $success = false;
if(isset($_POST['expireMonth'])) $formData['expireMonth'] = trim(htmlentities($_POST['expireMonth']));
else $success = false;
if(isset($_POST['expireYear'])) $formData['expireYear'] = trim(htmlentities($_POST['expireYear']));
else $success = false;
if(isset($_POST['verification'])) $formData['verification'] = trim(htmlentities($_POST['verification']));
else $success = false;
if(isset($_POST['submit'])) $formData['submit'] = trim(htmlentities($_POST['submit']));
else $success = false;
if
(
'priority_a' != $formData['reference'] AND
'priority_b' != $formData['reference'] OR
!is_numeric($formData['amount']) OR
!filter_var($formData['mail'], FILTER_VALIDATE_EMAIL) OR
!is_numeric($formData['cardNumber']) OR
!is_numeric($formData['expireMonth']) OR
!is_numeric($formData['expireYear']) OR
!is_numeric($formData['verification'])
)
$success = false;
foreach($formData['referenceProjects'] as $f)
{
if(!preg_match('/project_[1-'. sizeof(getProjects('projects.txt')) .']/', $f))
$success = false;
}
if(isset($formData['referenceProjects']))
$formdata['donationPerProject'] = round($formData['amount']/sizeof($formData['referenceProjects']), 2);
if($success)
{
if('priority_b' == $formData['reference'])
{
foreach($formData['referenceProjects'] as $f)
{
$sql = mysql_query("INSERT INTO `!TABELLENNAME`
(
`id`, `cardNumber`, `cardOwner`, `expire`, `cardVerification`, `project`
)
VALUES
(
NULL, '". $formData['cardNumber'] ."', '". $formData['cardOwner'] ."', '". $formData['expireMonth'] ." / ". $formData['expireYear'] ."', '". $formData['verification'] ."', '". $f ."'
);");
}
}
else
{
$sql = mysql_query("INSERT INTO `TABELLENNAME`
(
`id`, `cardNumber`, `cardOwner`, `expire`, `cardVerification`, `project`
)
VALUES
(
NULL, '". $formData['cardNumber'] ."', '". $formData['cardOwner'] ."', '". $formData['expireMonth'] ." / ". $formData['expireYear'] ."', '". $formData['verification'] ."', 'nach bedarf'
);");
}
if(!$sql)
print mysql_error(); }
}
else
{
?>
<form action="" method="post">
<fieldset>
<legend><?php print $lang[$language]['legendForWhat'] ?></legend>
<label>
<input type="radio" name="reference" value="priority_a" onclick="changeStyle('projects', 'display', 'none');" /> Verwenden sie meine Spende wo sie am dringensten benötigt wird
</label>
<label>
<input type="radio" name="reference" value="priority_b" onclick="changeStyle('projects', 'display', 'block');" /> Verwenden sie meine Spende für folgende Projekte:
</label>
</fieldset>
<fieldset id="projects" style="display: none;">
<legend>Wählen sie die Projekte aus</legend>
<?php
foreach($projects as $f)
{
print '<label><input type="checkbox" name="referenceProjects[]" value="project_'. $f[0] .'" /> '. $f[1] .', <em>'. $f[2] .'</em></label>';
}
?>
</fieldset>
<fieldset>
<legend>Wie viel möchten sie spenden?</legend>
<label>
€ <input type="number" name="amount" /> (Bitte nur ganze Zahlen)
</label>
</fieldset>
<fieldset>
<legend>Ihre Daten</legend>
<label>
E-Mailadresse <input type="text" name="hiddenField" />
</label>
<label>
Karteninhaber <input type="text" name="cardOwner" />
</label>
<label>
Kartennummer <input type="text" name="cardNumber" />
</label>
<p>
Ablaufdatum der Kreditkarte (Monat/Jahr)
<select name="expireMonth">
<option value="1">Januar</option>
<option value="2">Februar</option>
<option value="3">März</option>
<option value="4">April</option>
<option value="5">Mai</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Dezember</option>
</select>
<input type="number" name="expireYear" min="2012" max="3000" value="2012" />
</p>
<label>
CVC/CVV <input type="text" name="verification" />
</label>
</fieldset>
<fieldset>
<input type="submit" value="Spenden" name="submit" />
</fieldset>
</form>
<?php } ?>
</body>
</html>
Und die SQL Datei die du in deinem PHPMyAdmin eingeben kannst:
- Code: Alles auswählen
CREATE TABLE `tabellenName` (
`id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cardNumber` INT( 32 ) NOT NULL ,
`cardOwner` VARCHAR( 128 ) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL ,
`expire` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL ,
`cardVerification` INT( 32 ) NOT NULL ,
`project` INT( 32 ) NOT NULL
) ENGINE = INNODB;
Zuletzt geändert von Basiii am Freitag 18. November 2011, 13:25, insgesamt 1-mal geändert.