kostenloser Webspace werbefrei: lima-city


UPDATE bei MySQL Datenbank funktioniert nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ybook

    ybook hat kostenlosen Webspace.

    Hallo,

    ich habe ein Problem mit einer MySQL Abfrage. Diese wird aus den eingegebenen Daten des Benutzers erstellt:

    UPDATE login SET `Alias` = 'Yanniick', `passwort` = 'b4a6ae7ce6822a3cbc5bbe4794013351' WHERE `login`.`ID` = 1;


    jedoch wird kein Datensatz geändert. Die Abfrage im PHP liefert aber TRUE zurück.

    Wenn ich diese Abfrage mauell im PHPMyAdmin eingebe funktioniert es aber.

    Hier noch der PHP Code:

    //Daten sammeln
    	$page = $_GET['page']; //Seite
    	$user = $_GET['user']; //Benutzer
    	$alias= $_POST['Alias']; //Alias
    	$Apw  = $_POST['Apasswort']; //Altes Kennwort
    	$Npw1 = $_POST['Npasswort1']; //Neues Kennowrt
    	$Npw2 = $_POST['Npasswort2'];
        $con = mysqli_connect("mysql.lima-city.de","*********","*********", "*********");
    	echo $user."<br/>";
    	echo $alias."<br/>";
    
    	if($page == "PW") { //Falls Seite PW ist
    		echo 'OK1';
    		$abfrage = "SELECT * FROM login WHERE username LIKE '$user'"; //Altes Kennwort und ID abfragen
    		$ergebnis = mysqli_query($con, $abfrage) or die(mysqli_error($con));
    		while($row = mysqli_fetch_object($ergebnis)) {
    			echo 'OK2';
    			$Apw = md5($Apw); //Eigegebenes Kennwort mit md5 verschlüsseln
    			$ID = $row->ID; //ID und Kennwort aus Datenbank speichern
    			$pwDb = $row->passwort;
    		
    			if($Apw == $pwDb) { //Altes PW und das aus der DB prüfen
    				echo 'OK3';
    				if($Npw1 == $Npw2) { //Neues Kennwort prüfen
    					echo 'OK4';
    					$Npw1 = md5($Npw1); //Neues Kennwort verschlüsseln
    					$eintrag = "UPDATE login SET `Alias` = '$alias', `passwort` = '$Npw1' WHERE `login`.`ID` = $ID;";
    					$eintragen = mysqli_query($con, $abfrage) or trigger_error('Fehler in Query "'.$eintrag.'". Fehlermeldung: '.
    					mysqli_error($con),E_USER_ERROR); //Neue Daten eintragen
    					if($eintragen == true) {//Wenn erfolgreich dann wieder zurück
    						echo "<br/>".$eintrag."<br/>";
    						echo 'OK5';
    						//echo '<html><head><meta http-equiv="refresh" content="0; URL=index.php?inf=1"></head></html>';
    					} else { //ansonsten mit Error zurück
    						echo 'OK6';
    						//echo '<html><head><meta http-equiv="refresh" content="0; URL=index.php?inf=2"></head></html>';
    					}
    				} else {
    					echo 'OK7';
    					//echo '<html><head><meta http-equiv="refresh" content="0; URL=index.php?inf=3"></head></html>';
    				}
    			} else {
    				echo 'OK8';
    				//echo '<html><head><meta http-equiv="refresh" content="0; URL=index.php?inf=4"></head></html>';
    			}
    		}
    	}


    Und hier die Ausgabe:

    Yannick
    Yanniick
    OK1OK2OK3OK4
    UPDATE login SET `Alias` = 'Yanniick', `passwort` = 'b4a6ae7ce6822a3cbc5bbe4794013351' WHERE `login`.`ID` = 1;
    OK5


    Hoffe mir kann jemand helfen, bin schon fast am verzweifeln...

    Gruß Yannick

    Beitrag zuletzt geändert: 16.8.2014 1:33:39 von ybook
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo ybook.
    $eintrag = "UPDATE login SET `Alias` = '$alias', `passwort` = '$Npw1' WHERE `login`.`ID` = $ID;";
    $eintragen = mysqli_query($con, $abfrage) ...
    Hier liegt der Fehler. Du führst die Abfrage aus der falschen Variable aus.

    Dein Skript ist außerdem unsicher. Informiere dich über sql-injection.

    Beitrag zuletzt geändert: 16.8.2014 16:48:27 von fuerderer
  4. Autor dieses Themas

    ybook

    ybook hat kostenlosen Webspace.

    Ok Danke,

    von SQL Injection hab ich bisher nichts gehört werden mich da aber schlau machen und meine Abfragen überprüfen.

    Gruß Yannick
  5. ybook schrieb:
    Ok Danke,

    von SQL Injection hab ich bisher nichts gehört werden mich da aber schlau machen und meine Abfragen überprüfen.

    Gruß Yannick


    Sehr wichtig. Nachdem ein Projekt von mir online gegangen ist, schlug bereits jemand zu... meine ganze Datenbank war überschrieben mit vielen 0en...
    Es gibt sogar Leute, die schreiben Script, die das automatisch erledigen :mad:
    Auf jeden fall habe ich hier www.fiverr.com für wenig Geld jemanden meine Skripte absichern lassen.
  6. Autor dieses Themas

    ybook

    ybook hat kostenlosen Webspace.

    Ich habs mal mit
    mysql_real_escape_string
    probiert, aber dann bekomm ich den Fehler 405...

    Beitrag zuletzt geändert: 16.8.2014 22:06:34 von ybook
  7. Versuch mal mysqli_real_escape_string (mit einem zusätzlichen 'i')
  8. Autor dieses Themas

    ybook

    ybook hat kostenlosen Webspace.

    Versuch mal mysqli_real_escape_string (mit einem zusätzlichen 'i')


    Komischerweiße sind meine Variablen jetzt leer. Da war z.B. Yannick drinnen.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!