Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 08:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[JS] DB Abfrage prüfen

Discussion on [JS] DB Abfrage prüfen within the Web Development forum part of the Coders Den category.

Closed Thread
 
Old   #1
 
.Abraxas's Avatar
 
elite*gold: 0
Join Date: Nov 2013
Posts: 35
Received Thanks: 14
[JS] DB Abfrage prüfen

Guten Abend zusammen,
ich habe ein Problem. Und zwar möchte ich gerne für meine Ausbildung mir eine online Lernstütze gestalten. Dafür möchte ich das beim Tippen die Eingabe überprüft wird ob diese so in der DB steht oder nicht. Wenn nicht möchte ich gerne das Eingabefeld einfärben (das ist kein Problem). Doch ich bekomme über JS den Rückgabewert nicht wenn das PHP Script nein sagt.

PHP Code:
    if(isset($_POST['params']))
    {    
        
$return 0;
        
$normalName trim($_POST['params']);
        
$db = new mysqli("host","database","pass","user");
        if(
$db->connection_error){
            print(
"Fehler bei SQL.");
        }
        
        else
        {
            
$getNormalPlant $db->query("SELECT * FROM plants WHERE name_de = '".$normalName."'");
            while(
$ausgabe $getNormalPlant->fetch_object())
            {
                if(
$ausgabe == false)
                {
                    
$return 0;
                }
                else
                {
                    
$return 1;
                }
            }
            echo 
$return;
        }
    } 

JS Code
Code:
function checkNormalName(plantName){
			var xmlHttp = null;
			// Mozilla, Opera, Safari sowie Internet Explorer 7
			if (typeof XMLHttpRequest != 'undefined') {
				xmlHttp = new XMLHttpRequest();
			}
			if (!xmlHttp) {
				// Internet Explorer 6 und älter
				try {
					xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
				} catch(e) {
					try {
						xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
					} catch(e) {
						xmlHttp  = null;
					}
				}
			}
			// Wenn das Objekt erfolgreich erzeugt wurde			
			if (xmlHttp) {
				var url = "phpscripts/checkPlantName.php";
				var params = "plantName="+plantName;
				
				xmlHttp.open("POST", url, true);
				
				//Headerinformationen für den POST Request
				xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlHttp.setRequestHeader("Content-length", params.length);
				xmlHttp.setRequestHeader("Connection", "close");					

				xmlHttp.onreadystatechange = function () {
					if (xmlHttp.readyState == 4) {
						if(xmlHttp.status== 200)
						{
							if(xmlHttp.responseText == 0)
							{
								alert("Keine PLant");
							}
							else
							{
								alert("Plant gefunden");
							}
						}
						// Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
						//document.getElementById("normalName").innerHTML = xmlHttp.responseText;
						//document.getElementById("searchAusgabe").innerHTML = xmlHttp.responseText;
						//document.getElementById("searchAusgabeMobile").innerHTML = xmlHttp.responseText;
					}
				};				
				xmlHttp.send(params);
			}		
		}
Ich habe das meiste aus meinen ganz alten Schulprojekten zusammengeholt und suche seit Stunden den Fehler und finde diesen nicht. Egal was ich mache, es greift die letzte JS IF Abfrage nicht. Ich bekomme immer "Plant gefunden" anzeigt, obwohl ich nur einen Buchstaben eintrage. Oder habe ich grundsätzlich etwas in der PHP falsch gemacht? Habe schon seit Jahren nichts mehr gemacht.
Kind regards,

.Abraxas
.Abraxas is offline  
Old 11/30/2018, 20:55   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by .Abraxas View Post
Guten Abend zusammen,
ich habe ein Problem. Und zwar möchte ich gerne für meine Ausbildung mir eine online Lernstütze gestalten. Dafür möchte ich das beim Tippen die Eingabe überprüft wird ob diese so in der DB steht oder nicht. Wenn nicht möchte ich gerne das Eingabefeld einfärben (das ist kein Problem). Doch ich bekomme über JS den Rückgabewert nicht wenn das PHP Script nein sagt.

PHP Code:
    if(isset($_POST['params']))
    {    
        
$return 0;
        
$normalName trim($_POST['params']);
        
$db = new mysqli("xxx","xxx","xxx","xxx");
        if(
$db->connection_error){
            print(
"Fehler bei SQL.");
        }
        
        else
        {
            
$getNormalPlant $db->query("SELECT * FROM plants WHERE name_de = '".$normalName."'");
            while(
$ausgabe $getNormalPlant->fetch_object())
            {
                if(
$ausgabe == false)
                {
                    
$return 0;
                }
                else
                {
                    
$return 1;
                }
            }
            echo 
$return;
        }
    } 

JS Code
Code:
function checkNormalName(plantName){
			var xmlHttp = null;
			// Mozilla, Opera, Safari sowie Internet Explorer 7
			if (typeof XMLHttpRequest != 'undefined') {
				xmlHttp = new XMLHttpRequest();
			}
			if (!xmlHttp) {
				// Internet Explorer 6 und älter
				try {
					xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
				} catch(e) {
					try {
						xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
					} catch(e) {
						xmlHttp  = null;
					}
				}
			}
			// Wenn das Objekt erfolgreich erzeugt wurde			
			if (xmlHttp) {
				var url = "phpscripts/checkPlantName.php";
				var params = "plantName="+plantName;
				
				xmlHttp.open("POST", url, true);
				
				//Headerinformationen für den POST Request
				xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlHttp.setRequestHeader("Content-length", params.length);
				xmlHttp.setRequestHeader("Connection", "close");					

				xmlHttp.onreadystatechange = function () {
					if (xmlHttp.readyState == 4) {
						if(xmlHttp.status== 200)
						{
							if(xmlHttp.responseText == 0)
							{
								alert("Keine PLant");
							}
							else
							{
								alert("Plant gefunden");
							}
						}
						// Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
						//document.getElementById("normalName").innerHTML = xmlHttp.responseText;
						//document.getElementById("searchAusgabe").innerHTML = xmlHttp.responseText;
						//document.getElementById("searchAusgabeMobile").innerHTML = xmlHttp.responseText;
					}
				};				
				xmlHttp.send(params);
			}		
		}
Ich habe das meiste aus meinen ganz alten Schulprojekten zusammengeholt und suche seit Stunden den Fehler und finde diesen nicht. Egal was ich mache, es greift die letzte JS IF Abfrage nicht. Ich bekomme immer "Plant gefunden" anzeigt, obwohl ich nur einen Buchstaben eintrage. Oder habe ich grundsätzlich etwas in der PHP falsch gemacht? Habe schon seit Jahren nichts mehr gemacht.
Kind regards,

.Abraxas
Zunächst würde ich mal die Zugangsdaten aus deinem Code hier entfernen :P

Also du solltest dich mal in PDO/Prepared Statements einlesen, dein aktueller Code lässt sql injections zu (Damit kann jeder deine Datenbank manipulieren).
Desweiteren würde ich den Ajax/xmlHttp Request nicht manuell zusammen bauen, nutz einfach Jquery (wieso das Rad neu erfinden ?).
Da mir der Code etwas zu unordentlich ist habe ich mir den nicht ganz durchgeschaut, jedoch solltest du aufjedenfall vermeiden bei einem Ajax/xmlHttp Request nur 0/1 aka false/true zurück zu geben.
Gib am besten ein JSON zurück was z.B. ein Key "success" enthält und ein key "message" o.ä. damit hast du dann einmal den Wert den du eigentlich wolltest (wurde was gefunden ?) und einmal eine Nachricht die du sofort ausgeben kannst.
False is offline  
Thanks
1 User
Old 12/01/2018, 12:21   #3
 
.Abraxas's Avatar
 
elite*gold: 0
Join Date: Nov 2013
Posts: 35
Received Thanks: 14
Problem gelöst. Danke. Kann geschlossen werden
.Abraxas is offline  
Old 12/02/2018, 15:38   #4



 
Serraniel's Avatar
 
elite*gold: 0
The Black Market: 205/1/0
Join Date: May 2010
Posts: 6,853
Received Thanks: 5,106
Quote:
Originally Posted by .Abraxas View Post
Problem gelöst. Danke. Kann geschlossen werden
Habe dir zusätzlich, wie false auch schon geraten hat, die Logindaten zum Datenbankserver rauszensiert. Solltest du drauf achten so Zugangsdaten immer für dich zu behalten.

#Closed
Serraniel is offline  
Closed Thread


Similar Threads Similar Threads
brauche seite wo man hacks auf trojaner prüfen kann
09/09/2008 - Metin2 - 6 Replies
hi könnt ihr pls den link für die seite da reintun
Prüfen ob CDROM Laufwerk offen ist
09/23/2006 - General Coding - 8 Replies
jo, das Topic sagt eigentlich schon alles. Kennt jemand einen Methode wie man das Prüfen kann bzw ob es überhaupt möglich ist? Api's wie DeviceIOControl und mciSendCommand/String haben mir nicht weitergeholfen. Sprache ist eigentlich egal.
Sicherheit prüfen
06/08/2006 - Technical Support - 0 Replies
Hallo, ich habe auf meinem Webblog einen Passwortgeschützten Bereich installiert. Jetzt möchte ich die Sicherheit prüfen und benötige ein Programm, dass per Wordlist nur ein Passwort ausprobiert KEINEN username. Ich habe nämlich keinen Loginbereich mit username und pass sondern einfach nur ein Passwortfeld. Hier der Quelltext, hab mal geprüft und keine Passwortsource gefunden. Sicher? <html> <head> <title>cursusnovus - Weblog @ myblog.de</title> <meta http-equiv="Content-Type"...



All times are GMT +2. The time now is 08:29.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.