Hallo Zusammen,
habe mir ein Anmeldformular gebastelt, weches auch alles tut was es soll. Bis auf eine Funktion. Beim Aufruf der Seite erscheint:Eine Anmeldung mit der Ausweisnummer: liegt uns bereits vor! Wenn die Ausweisnummer bereit vorhanden erscheint diese auch. Es liegt wahrscheinlich daran, dass ein Benutzer ohne Ausweisnummer vorhanden ist. Nun meine Frage: Wenn ich die Seite online stelle, kann man, ohne das irgendwelche Felder ausgefüllt sind den "Eintragen" Button betätigen und dies erzeugt einen Eintrag in der Datenbank ohne Inhalt. Wie kann ich dies verhindern?
Bin kein Experte und würde mich über einen Rat von Euch sehr freuen. Wenn Euch sonst noch etwas an dem Script auffällt, bin ich für jeden Tip dankbar.
habe mir ein Anmeldformular gebastelt, weches auch alles tut was es soll. Bis auf eine Funktion. Beim Aufruf der Seite erscheint:Eine Anmeldung mit der Ausweisnummer: liegt uns bereits vor! Wenn die Ausweisnummer bereit vorhanden erscheint diese auch. Es liegt wahrscheinlich daran, dass ein Benutzer ohne Ausweisnummer vorhanden ist. Nun meine Frage: Wenn ich die Seite online stelle, kann man, ohne das irgendwelche Felder ausgefüllt sind den "Eintragen" Button betätigen und dies erzeugt einen Eintrag in der Datenbank ohne Inhalt. Wie kann ich dies verhindern?
Bin kein Experte und würde mich über einen Rat von Euch sehr freuen. Wenn Euch sonst noch etwas an dem Script auffällt, bin ich für jeden Tip dankbar.
PHP-Code:
<?php
header("Content-type: text/html; charset=utf-8");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
<style type="text/css">
</style>
<link href="stylesNscripts/styles.css" rel="stylesheet" type="text/css" media="screen">
</head>
<body>
<p align="center"><strong>Anmeldung zum Golf </strong><strong><br />
<br />
Donnerstag, </strong></p>
<div align="center">
<strong>Wichtig: </strong>Die Anmeldung für das Turnier muss spätestens <br />
<strong>Dienstag, 30. September 2014, 12.00 Uhr</strong>�* (Anmeldeschluss) erfolgen.
Die Turniergebühr in Höhe von 40,- € , ist bis zum Anmeldeschluss auf das Konto der <br />
<p align="center">IBAN:<strong><br>
BIC:<br>
</strong><br>
zu entrichten. Startzeiten, Flighteinteilung und eventuelle weitere Informationen werden am Oktober um 12.00 Uhr auf der Internetseite des <br />
bekannt gegeben. <br />
<br />
www..de</p>
</div>
<p align="center" class="Stil3"> </p>
<div align="center">
<p><a href="pdf/Ausschreibung.pdf"><img src="img/adobe.jpeg" width="39" height="42" alt="adobe logo"></a><br>
<span class="Stil10">Ausschreibung
</span>
</p>
</p>
<?php
if(isset($_POST['submit']) AND $_POST['submit'] =='Eintragen'){
// Fehlerarray erzeugen
$errors = array();
// Prüfen, ob alle Felder existieren
if(!isset($_POST['name'], $_POST['vorname'], $_POST['strasse'], $_POST['plz'], $_POST['ort'], $_POST['hcp'], $_POST['dgvnummer'], $_POST['telefon'], $_POST['email']))
$errors[] = "Bitte benutzen sie unser Formular.";
else{
if(trim($_POST['name'])=='')
{
$errors[] = "Bitte geben Sie ihren Namen ein.";
}
if(trim($_POST['vorname'])=='')
{
$errors[] = "Bitte geben Sie ihren Vornamen ein.";
}
if(trim($_POST['strasse'])=='')
{
$errors[] = "Bitte geben Sie ihren Straßennamen ein.";
}
if(trim($_POST['plz'])=='')
{
$errors[] = "Bitte geben Sie ihre Postleitzahl ein.";
}
if(trim($_POST['ort'])=='')
{
$errors[] = "Bitte geben Sie ihren Wohnort ein.";
}
if(trim($_POST['hcp'])=='')
{
$errors[] = "Bitte geben Sie ihr aktuelles Hcp an.";
}
if(trim($_POST['dgvnummer'])=='')
{
$errors[] = "Bitte geben Sie ihre DGV-Ausweisnummer an.";
}
if(trim($_POST['club'])=='')
{
$errors[] = "Bitte geben Sie ihren Club an.";
}
if(trim($_POST['telefon'])=='')
{
$errors[] = "Bitte geben Sie ihre Telefonnummer an.";
}
if(trim($_POST['email'])=='')
{
$errors[] = "Bitte geben Sie ihre Email-Adresse ein.";
}
}
// Prüfen, ob ein Fehler aufgetreten ist
if(count($errors)){
echo "Sorry, ihre Daten konnten nicht bearbeitet werden.<br>\n".
"<br>\n";
foreach($errors as $error)
echo $error."<br>\n";
echo "Zurürck zum <a href=\"anmeldungerntedank.php\">Formular</a>\n";
}
}
// Ansonsten, z.B. wenn der User das Formular zum 1. Mal aufruft, wird das Formular angezeigt
else{
//...
}
?>
</p>
</div>
<form method="post" accept-charset="utf-8" action="<?php echo $server['PHP_SELF'] ?>">
<div align="center">
<p>Bitte geben Sie die erforderlichen Daten ein, um sich für das Turnier anzumelden!<br />
<span class="Stil14">Es können nur vollständig und korrekt ausgefüllte Anmeldungen berücksichtigt werden.</span></p>
<p>Für jeden Spieler muß eine seperate Anmeldung ausgefüllt werden!!<br>
</p>
</p>
</p>
</div>
<table align="center" bgcolor="#999999">>
<tr>
<td>
Name*
</td>
<td>
<?php
// Stellt den Namen wieder her, wenn ein Fehler auftrat
if(isset($_POST['name']))
// htmlentities sichert das Formular gegen Cross-Scripting
echo "<input type=\"text\" size=\"30\" name=\"name\" value=\"".htmlentities($_POST['name']) ."\">\n";
else
echo "<input type=\"text\" size=\"30\" name=\"name\">\n";
?>
<tr>
<td>
Vorname*
</td>
<td>
<?php
// Stellt den Vornamen wieder her, wenn ein Fehler auftrat
if(isset($_POST['vorname']))
echo "<input type=\"text\" size=\"30\" name=\"vorname\" value=\"".htmlentities($_POST['vorname']) ."\">\n";
else
echo "<input type=\"text\" size=\"30\" name=\"vorname\">\n";
?>
<tr>
<td>
Strasse*
</td>
<td>
<?php
// Stellt Strasse wieder her, wenn ein Fehler auftrat
if(isset($_POST['strasse']))
echo "<input type=\"text\" size=\"30\" name=\"strasse\" value=\"".htmlentities($_POST['strasse']) ."\">\n";
else
echo "<input type=\"text\" size=\"30\" name=\"strasse\">\n";
?>
<tr>
<td>
Plz*
</td>
<td>
<?php
// Stellt die Plz wieder her, wenn ein Fehler auftrat
if(isset($_POST['plz']))
echo "<input type=\"text\" size=\"5\" name=\"plz\" value=\"" .htmlentities($_POST['plz']) ."\">\n";
else
echo "<input type=\"text\" size=\"5\" name=\"plz\">\n";
?>
<tr>
<td>
Ort*
</td>
<td>
<?php
// Stellt den Ort wieder her, wenn ein Fehler auftrat
if(isset($_POST['name']))
echo "<input type=\"text\" size=\"30\" name=\"ort\" value=\"".htmlentities($_POST['ort']) ."\">\n";
else
echo "<input type=\"text\" size=\"30\" name=\"ort\">\n";
?>
<tr>
<td>
Hcp*
</td>
<td>
<?php
// Stellt das Hcp wieder her, wenn ein Fehler auftrat
if(isset($_POST['hcp']))
echo "<input type=\"text\" size=\"5\" name=\"hcp\" value=\"".htmlentities($_POST['hcp']) ."\">\n";
else
echo "<input type=\"text\" size=\"5\" name=\"hcp\">\n";
?>
<tr>
<td>
DGV-Ausweisnummer*
</td>
<td>
<?php
// Stellt die Ausweisnummer wieder her, wenn ein Fehler auftrat
if(isset($_POST['plz']))
echo "<input type=\"text\" size=\"10\" name=\"dgvnummer\" value=\"".htmlentities($_POST['dgvnummer']) ."\">\n";
else
echo "<input type=\"text\" size=\"10\" name=\"dgvnummer\">\n";
?>
<tr>
<td>
Name des DGV-Club*
</td>
<td>
<?php
// Stellt den Club wieder her, wenn ein Fehler auftrat
if(isset($_POST['club']))
echo "<input type=\"text\" size=\"30\" name=\"club\" value=\"".htmlentities($_POST['club']) ."\">\n";
else
echo "<input type=\"text\" size=\"30\" name=\"club\">\n";
?>
<tr>
<td>
Telefon*
</td>
<td>
<?php
// Stellt die Telefonnummer wieder her, wenn ein Fehler auftrat
if(isset($_POST['plz']))
echo "<input type=\"text\" size=\"30\" name=\"telefon\" value=\"".htmlentities($_POST['telefon']) ."\">\n";
else
echo "<input type=\"text\" size=\"30\" name=\"telefon\">\n";
?>
</tr>
<td>
Email-Adresse*
</td>
<td>
<?php
// Stellt die Email-Adresse wieder her, wenn ein Fehler auftrat
if(isset($_POST['email']))
echo "<input type=\"text\" size=\"30\" name=\"email\" value=\"".htmlentities($_POST['email']) ."\">\n";
else
echo "<input type=\"text\" size=\"30\" name=\"email\">\n";
?>
</td></tr>
</table>
</p>
<div align="center"><strong><u>
Mir sind die Teilnahmebedingungen bekannt und ich erkenne sie mit dem betätigen des "Eintragen" Buton an.
</u></strong>
</p>
</div>
<div align="center">
<input type="submit" name="submit" value="Eintragen">
</div>
</form>
<?php
#Verbindung zur Datenbank#
$server = "localhost";
$user="";
$pass = "";
$database = "sql_5_db1";
$table = "erntedank2014";
$verbindung = mysql_connect($server, $user, $pass) or die ("Keine Verbindung moeglich");
mysql_select_db($database, $verbindung) or die ("Die Datenbank existiert nicht." . mysql_error());
mysql_set_charset('utf8');
$name = isset($_POST['name']) ? mysql_real_escape_string($_POST['name']) : '';
$vorname = isset($_POST['vorname']) ? mysql_real_escape_string($_POST['vorname']) : '';
$strasse = isset($_POST['strasse']) ? mysql_real_escape_string($_POST['strasse']) : '';
$plz = isset($_POST['plz']) ? mysql_real_escape_string($_POST['plz']) : '';
$ort = isset($_POST['ort']) ? mysql_real_escape_string($_POST['ort']) : '';
$hcp = isset($_POST['hcp']) ? mysql_real_escape_string($_POST['hcp']) : '';
$dgvnummer = isset($_POST['dgvnummer']) ? mysql_real_escape_string($_POST['dgvnummer']) : '';
$telefon = isset($_POST['telefon']) ? mysql_real_escape_string($_POST['telefon']) : '';
$email = isset($_POST['email']) ? mysql_real_escape_string($_POST['email']) : '';
#Prüfen ob Ausweisnummer schon vorhanden#
$sql = "SELECT dgvnummer FROM $table WHERE dgvnummer ='".mysql_real_escape_string($_POST['dgvnummer' ])."'";
$res = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$gefunden = mysql_num_rows($res);
$sql ="";
#Wenn Ausweisnummer noch nicht vorhanden Eintrag in die Datenbank#
if ($gefunden == 0)
{
$eintrag = "INSERT INTO $table
(name,
vorname,
strasse,
plz,
ort,
hcp,
dgvnummer,
club,
telefon,
email
)
VALUES (
'$name',
'$vorname',
'$strasse',
'$plz',
'$ort',
'$hcp',
'$dgvnummer',
'$club',
'$telefon',
'$email'
)";
$eintragen=mysql_query($eintrag) or die(mysql_error());
$ausgabe = "Vielen Dank! Sie wurden erfolgreich in die Startliste aufgenommen.";
echo "<script type='text/javascript'>
window.open( 'http:///anmeldungerfolgreich.html',
\"width=400, height=400, \" );
</script>";
#Wenn Eintrag erfolgt Bestätigungsmail versenden#
$empfaenger = $_POST['email'];
$betreff = "Anmeldung Erntedankturnier 2014";
$from = "From: EGCC <i>\n";
$from .= "Reply-To: \n";
$from .= "Content-Type: text/html; charset=utf-8\n";
$text =
"\n
Lieber Golfer,<br>
wir bestätigen die Anmeldung für unser Turnier am .<br>
Bitte überweisen Sie die Startgebühr auf folgendes Konto:<br>
<br>
<br>
<br>
Viel Spaß und viel Erfolg wünscht<br>
";
mail($empfaenger, $betreff, $text, $from);
}
//Wenn Ausweisnummer schon vorhanden
if ($gefunden >=0)
{
$ausgabe = "Eine Anmeldung mit der Ausweisnummer: $dgvnummer liegt uns bereits vor!";
}
if ($sql != "")
mysql_query($sql) or die("MySQL Error: ".mysql_error());
mysql_free_result($res);
mysql_close ($verbindung);
echo $ausgabe; utf8_encode('ä ö ü Ä Ö Ü ß');
?>
</body>
</html>
Kommentar