Hi Leute,
hab mal wieder ein Problem. Wenn ich den folgenden Code lokal auf meinem Rechner ausführe funktioniert alles bestens. Nur wenn ich ich diesen auf meinen Server uploade und aufrufe, dann scheint es nicht zu klappen. Es gibt immer:
aus.
Alles anzeigen
Es ist aber keine Tabelle mit Daten befüllt, also dürften auch demzufolge die Variablen email und username nicht belegt sein. Folgerichtig dürfte er dann auch nicht die Variable wrongpass auf true setzen. Macht er aber. Nur woran liegt es. Die Funktion quote_smart sieht folendermaßen aus:
Alles anzeigen
Wie gesagt lokal auf meinen Rechner funzt es ordnungsgemäß, aber auf´m Server nicht.
hab mal wieder ein Problem. Wenn ich den folgenden Code lokal auf meinem Rechner ausführe funktioniert alles bestens. Nur wenn ich ich diesen auf meinen Server uploade und aufrufe, dann scheint es nicht zu klappen. Es gibt immer:
aus.
Quellcode
- // Prüfen, ob alle notwendigen Felder ausgefüllt wurden
- $MustFilled = array ("domain","anrede","vorname","nachname","strasse","plz","ort","land","vorwahl","telefon","email","username","pass","pass2");
- $FillError=false;
- foreach ($MustFilled as $Item) {
- if (!isset($_REQUEST[$Item]) or trim($_REQUEST[$Item])=="") $FillError=true;
- }
- if ($FillError) {
- $fehler = 'Sie müssen alle notwendigen Felder ausgefüllen.<br>Gehen Sie zurück und korregieren Sie dies.';
- } elseif ($_POST['pass'] != $_POST['pass2']) {
- $fehler = 'Die angebenen Passwörter stimmen nicht überein.<br>Gehen Sie zurück und korregieren Sie dies.';
- } elseif ((!isset($_REQUEST['agb'])) || (!isset($_REQUEST['datenschutz']))) {
- $fehler = 'Für einen Vertragsabschluss müssen Sie unsere AGB und die Datenschutzrichtlinien akzeptieren.<br />
- Bitte gehen Sie zurück und markieren die Häkchen.';
- } else {
- // Temporäre Variablen setzen
- $newuser = true; // Deklaration eines neuen Users (Standard)
- $status = "1"; // Status über den Bearbeitungsstand festlegen (1 = "in Bearbeitung ohne KK-Antrag")
- // Status über den Bearbeitungsstand festlegen, wenn KK-Antrag gestellt werden muss
- if (isset($_POST['kk'])) {
- $status = "2"; // (2 = "in Bearbeitung mit KK-Antrag")Angeben, ob ein KK-Antrag gestellt werden muss.
- }
- // Vertragnummer generieren
- $maxvertragnr = 'SELECT MAX(id) FROM kcc_vertrag';
- $vertragnr = mysql_result(mysql_query($maxvertragnr),0);
- if ($vertragnr == "") { mysql_query('ALTER TABLE `kcc_vertrag` auto_increment = '.$start_vertragnr); }
- // Kundenummer generieren
- $maxkndnr = 'SELECT MAX(id) FROM kcc_user';
- $kndnr = mysql_result(mysql_query($maxkndnr),0);
- if ($kndnr == "") { mysql_query('ALTER TABLE `kcc_user` auto_increment = '.$start_kndnr); }
- // Prüfen, ob Benutznamen bereits vergeben
- $query = mysql_query(sprintf('SELECT username FROM kcc_user WHERE username=%s',quote_smart($_POST["username"])));
- $result = mysql_num_rows($query);
- if ($result > "0") {
- $username = true;
- }
- // Prüfen, ob email bereits vergeben
- $query = mysql_query(sprintf('SELECT email FROM kcc_user WHERE email=%s',quote_smart($_POST["email"])));
- $result = mysql_num_rows($query);
- if ($result > "0") {
- $email = true;
- }
- // Prüfen, ob Benutzname, email, Passwort gleich sind.
- if (isset($username, $email)) {
- $query = mysql_query(sprintf('SELECT email,passwort FROM kcc_user WHERE username=%s',quote_smart($_POST["username"])));
- $result = mysql_fetch_array($query);
- if (($result['email'] == $_POST["email"]) && ($result['passwort'] == $_POST["pass2"])) {
- $authentic = true;
- unset ($newuser);
- } else {
- $wrongpass = true;
- }
- } else {
- $wrongpass = true;
- }
- if (isset($wrongpass)) {
- // Wenn Username vorhanden, aber die email-Adresse nicht übereinstimmt
- if (isset($username)) {
- $fehler = 'Der Username ist bereits vergeben.';
- unset ($newuser);
- }
- // Wenn email vorhanden, aber der Username nicht übereinstimmt
- if (isset($email)) {
- $fehler = 'Die email-Adresse wird bereits vergeben.';
- unset ($newuser);
- }
- }
- // Weiteres Paket eines vorhanden authentifizierten Kunden eintragen oder komplett eintragen bei neuen Kunden
- if (isset($authentic)) {
- $paket = mysql_query('INSERT INTO kcc_vertrag (username,paket,status)
- VALUES ("'.$_POST["username"].'","'.$_POST["paketauswahl"].'","'.$status.'")');
- }
- if (isset($newuser)) {
- $adresse ='INSERT INTO kcc_user
- (anrede,titel,vorname,nachname,firma,kontakt,strasse,plz,ort,land,vorwahl,
- telefon,faxvorwahl,fax,email,username,passwort,umst_nachw,nl_akt,nl_art)
- VALUES ("'.$_POST["anrede"].'","'.$_POST["titel"].'","'.$_POST["vorname"].'","'.$_POST["nachname"].'",
- "0","0","'.$_POST["strasse"].'","'.$_POST["plz"].'","'.$_POST["ort"].'","'.$_POST["land"].'",
- "'.$_POST["vorwahl"].'","'.$_POST["telefon"].'","'.$_POST["faxvorwahl"].'","'.$_POST["fax"].'",
- "'.$_POST["email"].'","'.$_POST["username"].'","'.$_POST["pass2"].'","0","1","1")';
- $adresse_save = mysql_query($adresse) or die(mysql_error());
- $bankdaten = 'INSERT INTO kcc_bankdaten (username,ktoname,ktonr,blz,institut,paypal,zahlart)
- VALUES ("'.$_POST["username"].'","","","","","","0")';
- $bankdaten_save = mysql_query($bankdaten) or die(mysql_error());
- $paket = mysql_query('INSERT INTO kcc_vertrag (username,paket,status)
- VALUES ("'.$_POST["username"].'","'.$_POST["paketauswahl"].'","'.$status.'")');
- $empfaenger = "info@domain.tld";
- $betreff = "Testmail";
- $text = file_get_contents("templates/email_forms/paket_komplett.tpl");
- mail($empfaenger, $betreff, $text,'From: Admin <admin@domain.tld>');
- }
- }
Es ist aber keine Tabelle mit Daten befüllt, also dürften auch demzufolge die Variablen email und username nicht belegt sein. Folgerichtig dürfte er dann auch nicht die Variable wrongpass auf true setzen. Macht er aber. Nur woran liegt es. Die Funktion quote_smart sieht folendermaßen aus:
Quellcode
- // Variablen absichern
- function quote_smart($value)
- {
- // Ueberfluessige Maskierungen entfernen
- if (get_magic_quotes_gpc()) {
- $value = stripslashes($value);
- }
- // In Anfuehrungszeichen setzen, sofern keine Zahl
- // oder ein numerischer String vorliegt
- if (!is_numeric($value)) {
- $value = "'" . mysql_real_escape_string($value) . "'";
- }
- return $value;
- }
Wie gesagt lokal auf meinen Rechner funzt es ordnungsgemäß, aber auf´m Server nicht.