php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-01-2012, 12:04
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard Doppelte Einträge im IE9

Hallo,

ich bin mir nicht sicher ob das Thema hier richtig ist oder eher in "SQL / Datenbanken" gehört. Auf jeden Fall habe ich ein sehr komisches Problem. Ich habe ein Formular. Beim Submit wird der Inhalt in eine DB geschrieben. Soweit funktioniert alles Problemlos, nur beim IE9 werden die Einträge in der DB doppelt eingetragen. Beim IE8 (IE9 im IE8 Modus) & FF klappt es problem los. Der Insert wird nur ein mal aufgerufen. Das habe ich schon 10000x überprüft. Bei der Passworterstellung (die für das Formular verwendet wird) verwende ich eine Verschlüsselung bestehend aus md5 & Zufallszahl, so das sich der Schlüssel jedes mal ändert. Das komische dabei ist, das bei beiden Einträgen zwei verschiedene Passwörter drin stehen obwohl ja der Insert nur ein mal aufgerufen wird. Gibt es vielleicht einen Bug zwischen mysqli & IE9?
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.

Geändert von joextra (13-01-2012 um 12:11 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 13-01-2012, 12:07
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von joextra Beitrag anzeigen
Gibt es vielleicht einen Bug zwischen mysqli & IE9?
Sollte nicht. mysqli/php läuft serverseitig. Da spielt der Browser keine Rolle.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 13-01-2012, 12:14
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, das habe ich mir auch gedacht. Aber an was kann es liegen? Problem ist auf jeden Fall der IE9. Das einfachste wäre, den IE9 im IE8 Kompatibilitätsmodus zu betreiben. Aber das ist keine schöne Lösung.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
  #4 (permalink)  
Alt 13-01-2012, 12:19
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Hast du bei dem Formular irgendwas mit JavaScript gemacht?

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 13-01-2012, 12:23
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, das komplette Formular wird per JS überprüft. Normaler weise mach ich es mit PHP aber in diesem Fall sind Reloads unerwünscht (also so wenig wie möglich). Nur beim Submit (nach überprüfung per JS) wird die Seite neu geladen.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
  #6 (permalink)  
Alt 13-01-2012, 12:45
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Schmeiß doch mal spaßeshalber die JS-Überprüfung raus.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 13-01-2012, 13:20
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

tatsache. Ohne JS Funktioniert es. Hmm, könnte es da an den ajax Funktionen liegen, mit denen ich überprüfe ob bestimmte Einträge vorhanden sind?

EDIT: nein, daran liegts nicht
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.

Geändert von joextra (13-01-2012 um 13:22 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 13-01-2012, 13:22
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von joextra Beitrag anzeigen
tatsache. Ohne JS Funktioniert es.
Hab ich mir fast gedacht.
Zitat:
Zitat von joextra Beitrag anzeigen
Hmm, könnte es da an den ajax Funktionen liegen, mit denen ich überprüfe ob bestimmte Einträge vorhanden sind?
Ohne Code muss ich raten. Und auch wenn das mit jQuery gemacht wurde.

Peter

PS. Ich verschieb es dann mal ins richtige Forum.
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 13-01-2012, 13:31
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, hier der Code. Und ja, es wird jQuery verwendet.

JS:
Code:
/***************************************
	Register/Change Profile check
	***************************************/
	$('#saveProfile').click(function () {
		var id = $('input[name=id]');
		var name = $('input[name=name]');
		var surname = $('input[name=surname]');
		var street = $('input[name=street]');
		var zip = $('input[name=zip]');
		var place = $('input[name=place]');
		var email = $('input[name=email]');
		var username = $('input[name=username]');
		var password = $('input[name=password]');
		var gender = $('input:radio[name=gender]:checked');
		
		// Check if filled
		if(name.val() == '') {
			//error = true;
			name.css("border", highlight);
			name.focus();
			return false;
		} else {
			name.css("border", deHighlight);
		}
		
		if(surname.val() == '') {
			//error = true;
			surname.css("border", highlight);
			surname.focus();
			return false;
		} else {
			surname.css("border", deHighlight);
		}
		
		if(email.val() == '') {
			//error = true;
			email.css("border", highlight);
			email.focus();
			return false;
		} else if(!emailReg.test(email.val())) {
			//error = true;
			alert("Falsches Email-Format.");
			email.css("border", highlight);
			email.focus();
			return false;
		} else {
			email.css("border", deHighlight);
		}
		
		// check if email exists
		if(id.val() == "") {
			var data = 'email=' + email.val();
			$.ajax({
				url: "checkPostData.php",
				type: "GET",
				data: data,
				cache: false,
				traditional: true,
				async: false,
				success: function(result) {
					if(result == true) {
						error = true;
						alert("Diese Email existiert bereits.");
						email.css("border", highlight);
						email.focus();
					}
				}
			});
		}
		// for: check if email exists
		if(error == true) {
			error = false;
			return false;
		}
		
		if(username.val() == '') {
			//error = true;
			username.css("border", highlight);
			username.focus();
			return false;
		} else {
			username.css("border", deHighlight);
		}
		
		// check if username exists
		if(id.val() == "") {
			var data = 'username=' + username.val();
			$.ajax({
				url: "checkPostData.php",
				type: "GET",
				data: data,
				cache: false,
				traditional: true,
				async: false,
				success: function(result) {
					if(result == true) {
						error = true;
						alert("Diese Benutzername ist bereits vergeben.");
						username.css("border", highlight);
						username.focus();
					}
				}
			});
		}
		// for: check if username exists
		if(error == true) {
			error = false;
			return false;
		}
		
		if(password.val() == '') {
			//error = true;
			password.css("border", highlight);
			password.focus();
			return false;
		} else if(password.val().length < 6) {
			//error = true;
			alert("Das Passwort muss mind. 6 Zeichen lang sein.");
			password.css("border", highlight);
			password.focus();
			return false;
		} else {
			password.css("border", deHighlight);
		}
		
		if(gender.val() != 'm' && gender.val() != 'f') {
			//error = true;
			$(".radio").css("color", "#CC0000");
			return false;
		} else {
			$(".radio").css("color", "#888");
		}
		
		if(error == true) {
			error = false;
			return false;
		} else {
			$("#registerForm").removeAttr("onsubmit");
			pause(1000);
			$("#registerForm").submit();
			return true;
		}
	});
	
	// prevent Form to Submit when pressing Return
	$('#registerForm').bind('keydown',function(e){
		if(e.which == 13){
			//return false;
			$('#saveProfile').trigger('click');
		}
	});
Formular:
HTML-Code:
<form name="registerForm" id="registerForm" action="index.php" method="post" onSubmit="return false;">
<input type="hidden" name="registerForm" value="true">
<input type="hidden" name="registeredSince" value="<?echo $registeredSince;?>">
<input type="hidden" name="id" value="<?echo $id;?>">
<div class="userData">
	<p>Vorname*</p>
	<input type="text" name="name" value="<?echo $name;?>">
	<p>Name*</p>
	<input type="text" name="surname" value="<?echo $surname;?>">
	<p>Straße</p>
	<input type="text" name="street" value="<?echo $street;?>">
	<div id="zip">
		<p>PLZ</p>
		<input type="text" name="zip" value="<?echo $zip;?>" maxlength="5">
	</div>
	<div id="place">
		<p>Ort</p>
		<input type="text" name="city" value="<?echo $city;?>">
	</div>
</div>
<div class="userData">
	<p>Email*</p>
	<input type="text" name="email" value="<?echo $email;?>">
	<p>Benutzername*</p>
	<input type="text" name="username" value="<?echo $username;?>">
	<p>Passwort*</p>
	<input type="password" name="password" id="passwordLength" value="<?echo $password;?>">
	<div style="float:left; width:100%;" class="radio">
		<p><input type="radio" name="gender" value="m" <?if($gender == "m") { echo "checked"; }?>>&nbsp;männlich*</p>
		<p><input type="radio" name="gender" value="f" <?if($gender == "f") { echo "checked"; }?>>&nbsp;weiblich*</p>
	</div>
	<p>* = Pflichtfelder</p>
	<p>&nbsp;</p>
	<button onClick="openProfile();" class="buttonSpaceRight">SCHLIESSEN</button>
	<button id="saveProfile">SPEICHERN</button>
</div>
</form>
Was mir auch auf gefallen ist, ist das focus() im IE9 auch nicht funktioniert. Ich habe zwar diesen Workarround gefunden "setTimeout(function() { document.getElementById('myInput').focus(); }, 10);" aber das ist auch nicht das wahre.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.

Geändert von joextra (13-01-2012 um 13:36 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 13-01-2012, 13:53
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von joextra Beitrag anzeigen
Und ja, es wird jQuery verwendet.
Sorry, dann bin ich raus.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #11 (permalink)  
Alt 13-01-2012, 16:30
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

d.h. du kennst dich mit JQ nicht aus? Im Prinzip ist es ja aber kein Problem von JQ sondern vom IE. Ich glaube das es einen Zusammenhang mit dem
HTML-Code:
onSubmit="return false;"
im formular gibt.

Also, bin jetzt etwas weiter. Wenn ich die ganze Überprüfung in eine funktion einbette und diese dann mit den onSubmit aufrufe
HTML-Code:
onSubmit="return check()"
, funktioniert es. Das Problem hierbei ist aber, das wenn ich Return drücke die Form submittet wird, ohne Überprüfung. Irgend eine Idee wie das vermeiden kann?
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.

Geändert von joextra (13-01-2012 um 17:33 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 13-01-2012, 19:34
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von joextra Beitrag anzeigen
d.h. du kennst dich mit JQ nicht aus?
Ich bin zumindest kein Profi.
Zitat:
Zitat von joextra Beitrag anzeigen
Das Problem hierbei ist aber, das wenn ich Return drücke die Form submittet wird, ohne Überprüfung. Irgend eine Idee wie das vermeiden kann?
Wenn ein onsubmit-Handler auf dem Formular liegt und selbiger ein false zurückliefert, so wird auch nichts beim Drücken der Return-Taste abgesendet. Selbst im IE9. Also muss aus irgendeinem Grund der return-Wert von check() nicht stimmen.

Gruß
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #13 (permalink)  
Alt 13-01-2012, 20:21
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn ich aber direkt auf speichern klicke, funktioniert es aber. Nur wenn ich Return klicke, scheint es als würde er onsubmit ignorieren. Ich habe spasseshalber auch noch ein alert ganz oben in der Funktion eingefügt. Wenigstens dieser müsste aufgerufen werden.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
  #14 (permalink)  
Alt 13-01-2012, 20:26
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, Problem erkannt. Man sollte in JQ eine Funktion nicht innerhalb von
$(document).ready(function() {
einfügen, sonst klappt es nicht. Jetzt scheint es jedenfalls zu funktionieren. Auch der focus() wird jetzt gesetzt.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
doppelte einträge verhindern Putschi PHP Developer Forum 11 19-11-2006 22:33
doppelte einträge deathwarrant SQL / Datenbanken 5 07-03-2005 01:05
Doppelte Einträge Benji SQL / Datenbanken 5 01-12-2004 14:43
doppelte einträge phowe SQL / Datenbanken 7 08-07-2004 19:56
Doppelte Einträge vermeiden archie PHP Developer Forum 2 25-03-2002 21:15

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:05 Uhr.