S
speede2010
Threadstarter
- Dabei seit
- 11.10.2009
- Beiträge
- 72
Hallo Leute, ich möchte um mein wissen zu erweitern, diesen PHP-Quellcode zu erweitern bzw. zu erleichtern.
Das Problem ist:
- Die Eingaben ab Firma bis PLZ werden nicht in die DB Eingetragen - die anderen sehr wohl.
- Das Erstellen eines Accounts soll nicht möglich sein - also gelöscht werden, so weit habe ich das auch bereits gemacht
- Die Fehlerausgabe kommt mit der Meldung: Fehler die Daten wurden erfolgreich gespeichert - sie wurden aber gar nicht gespeichert.
PHP:
<?php
// DB Host
$server= "***.******.**";
// DB Name
$datenbank= "project****";
// DB Username
$user= "projekttest_***";
// DB Passwort
$passwort= "********";
// Zugriff auf SQL-Server
MYSQL_CONNECT($server, $user, $passwort) or die ("Datenbankserver nicht erreichbar");
MYSQL_SELECT_DB($datenbank) or die ( "Datenbank nicht vorhanden");
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Aktionen fuer diese Datei
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
if (isset($_GET['action']) && $_GET['action'] != "") {
$action = $_GET['action'];
}
elseif (isset($_POST['action']) && $_POST['action'] != "") {
$action = $_POST['action'];
}
switch ($action) {
case "savedaten":
savedaten();
break;
default:
formular();
break;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Formular
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
function formular () {
?>
<form action="new555.php" method="post">
<input type="hidden" name="action" value="savedaten">
<input type="text" name="vorname" maxlength="30" size="30"> Vorname<br>
<input type="text" name="zuname" maxlength="30" size="30"> Zuname<br>
<input type="text" name="email" maxlength="100" size="30"> Email<br>
<input type="text" name="firma" maxlength="30" size="30"> Firma<br>
<input type="text" name="telefon" maxlength="30" size="30"> Telefon-Nr.:<br>
<input type="text" name="adresse" maxlength="100" size="30"> Adresse<br>
<input type="text" name="ort" maxlength="30" size="30"> Ort<br>
<input type="text" name="stadt" maxlength="30" size="30"> Stadt<br>
<input type="text" name="plz" maxlength="100" size="30"> PLZ<br><br>
Username<br>(muss zwischen 3 und max. 30 Zeichen lang sein, nur Buchstaben und Zahlen von A-Za-z und 0-9 gestattet)<br>
<input type="text" name="username" maxlength="30" size="30"><br>
Passwort<br>
(muss zwischen 6 und max. 30 Zeichen lang sein, nur Buchstaben und Zahlen von A-Za-z und 0-9 gestattet)<br>
<input type="password" name="passwort1" maxlength="30" size="30"><br>
Passwort wiederholen<br>
<input type="password" name="passwort2" maxlength="30" size="30"> <br>
<input type="submit">
</form>
<?php
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Mitgliedsdaten speichern
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
function savedaten () {
$vorname = datensaver($_POST['vorname']);
$zuname = datensaver($_POST['zuname']);
$firma = datensaver($_POST['firma']);
$adresse = datensaver($_POST['adresse']);
$ort = datensaver($_POST['ort']);
$stadt = datensaver($_POST['stadt']);
$telefon = datensaver($_POST['telefon']);
// E-Mail komplett kleinschreiben um exakten Vergleich zu ermoeglichen
$email = strtolower($_POST['email']);
// alles an Zeichen raus was nicht in der Mail, Username und Passwort vorkommen darf
// Muss natuerlich fuer jeden Einsatzzweck angepasst werden
$email = preg_replace ("/[^0-9a-zA-Z\.\[email protected]]/", "", $email);
// $username = preg_replace ("/[^0-9a-zA-Z]/", "", $_POST['username']);
// $passwort1 = preg_replace ("/[^0-9a-zA-Z]/", "", $_POST['passwort1']);
// $passwort2 = preg_replace ("/[^0-9a-zA-Z]/", "", $_POST['passwort2']);
// Testen ob Mailaddy...
// if ($email != '') {
// $resultemail = mysql_query("SELECT COUNT(*) FROM member WHERE email = '$email'");
// $mailda = mysql_fetch_array($resultemail);
// $totalmail = $mailda[0];
// }
// ... und Username schon vorhanden
// if ($username != '') {
// $resultuser = mysql_query("SELECT COUNT(*) FROM member WHERE username = '$username'");
// $userda = mysql_fetch_array($resultuser);
// $totaluser = $userda[0];
// }
//-----------------------------------------------------------------//
// Fehlerbehandlung
//-----------------------------------------------------------------//
$fehlermeldung = "";
$fehler_gefunden = "";
// Name Check
$errormeldung = "<li>Es existiert schon ein Benutzer mit der angegebenen E-Mail Adresse\n";
if ($totalmail > 0) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Es existiert schon ein Benutzer mit dem angegebenen Usernamen\n";
if ($totaluser > 0) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Vorname\" wurde nicht ausgefüllt.\n";
if ($vorname == '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Zuname\" wurde nicht ausgefüllt.\n";
if ($zuname == '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
// E-Mail Check
$errormeldung = "<li>Das Feld \"Ihre E-Mail\" wurde nicht ausgefüllt oder keine gültige E-Mail Adresse eingetragen.\n";
if (!preg_match ("/^[_\.0-9a-zA-Z-][email protected]([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/", $email)) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Username\" wurde nicht korrekt ausgefüllt. Das Feld darf nur Buchstaben und Zahlen enthalten. Auch muss der Username zwischen 3 bis max. 30 Zeichen lang sein.\n";
if (strlen($username) < 3 || strlen($username) > 30 ) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Passwort\" wurde nicht korrekt ausgefüllt. Das Feld darf nur Buchstaben und Zahlen enthalten. Auch muss das Passwort zwischen 6 bis max. 30 Zeichen lang sein.\n";
if (strlen($passwort1) < 6 || strlen($passwort1) > 30 ) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Passwort wiederholen\" wurde nicht korrekt ausgefüllt. Das Feld darf nur Buchstaben und Zahlen enthalten. Auch muss das Passwort zwischen 6 bis max. 30 Zeichen lang sein.\n";
if (strlen($passwort2) < 6 || strlen($passwort2) > 30 ) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Die beiden Passwörter entsprechen sich nicht.\n";
if ($passwort1 != $passwort2) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
// Wenn Fehler - dann aufruf der Fehlerausgabe...
// if ($fehler_gefunden) {
// fehlerausgabe("<ol>$fehlermeldung</ol>");
// exit;
// }
$vorname = mysql_real_escape_string($vorname);
$zuname = mysql_real_escape_string($zuname);
$userpwsave = md5($passwort1);
MYSQL_QUERY("INSERT INTO member (mid, vorname, zuname, email, firma, telefon, adresse, ort, stadt, plz) VALUES('$vorname','$zuname','$email','$username','$userpwsave','$firma','$telefon','$adresse','$ort','$stadt','$plz',)");
MYSQL_CLOSE();
//or fehlerausgabe("<br>Fehler beim Speichern der Daten! Grund: ", mysql_error());
echo "Ihre Daten wurden erfolgreich gespeichert";
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Fehlerausgabe
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// function fehlerausgabe ($fehlermeldung, $error="") {
// echo "Fehler festgestellt!";
// echo "<b>$fehlermeldung</b> ";
// Fuer Notfaelle, wenn Datenbank trotz Pruefung doppelten Eintrag
// fuer Username oder E-Mail festellt
// if (preg_match ("/Duplicate entry/", $error )) {
// echo "E-Mail oder Username existiert bereits!";
// }
//-----------------------------------------------------------------//
// Datensaver Regexe
//-----------------------------------------------------------------//
function datensaver($formdaten) {
$formdaten = stripslashes($formdaten);
$suchmuster = array(
'#^\s+#',
'#\s+$#',
'#<#',
'#>#',
'#\|#',
'#\'#',
'#\"#',
'#\r#',
'#\n#'
);
$ersatz = array("","","","","","","","","");
$formdaten = preg_replace($suchmuster, $ersatz, $formdaten);
return $formdaten;
} ?>
Das Problem ist:
- Die Eingaben ab Firma bis PLZ werden nicht in die DB Eingetragen - die anderen sehr wohl.
- Das Erstellen eines Accounts soll nicht möglich sein - also gelöscht werden, so weit habe ich das auch bereits gemacht
- Die Fehlerausgabe kommt mit der Meldung: Fehler die Daten wurden erfolgreich gespeichert - sie wurden aber gar nicht gespeichert.
Zuletzt bearbeitet: