Kein Updatet -> Datenbank

erwinra

Grünschnabel
Hallo!

Sitze nun schon seit Stunden vor meinem php-script und komme nicht mehr weiter!!

Es handelt sich dabei um eine Passwortabfrage mit Adminbereich und wenn ich im Adminbereich die Benutzerdaten ändern möchte werden die neuen Daten nicht in die Datenbank übernommen!!




Eingabeformular:

PHP:
<?php

$linkedit="";

if (isset($editid)) {
	
	$linkedit="&editid=$editid";
	
	include "../news_config.php";
	$connect=mysql_connect("$host","$user","$pass");
	mysql_select_db("$db");

	$edit=mysql_fetch_row(mysql_query("SELECT * FROM kundenlogin WHERE id='$editid'"));
	
$edit[2]=strip_tags($edit[2]);
	
	echo'
 	<tr>
 	 <th colspan="4" bgcolor="#eaeaea"></th>
 	</tr>
 	<tr>
 	 <th colspan="4" bgcolor="#eaeaea">
 	  <table border="0" cellpadding="2" cellspacing="1" width="500" align="center">
	   <tr>
  		<th colspan="4" bgcolor="#eaeaea">
		 <form action="news_admin.php?do=edit&id='.$editid.'" method="post">
	     <table border="0" cellpadding="5" cellspacing="1" width="500" align="center">
	      <tr>
	       <td>Kunde:</td><td align="left"><input type="text" name="header" value="'.$edit[1].'" size="40" maxlength="50"></td>
		  </tr>
		  <tr>
	 	   <td>Benutzer:</td><td align="left"><input type="text" name="benutzer" value="'.$edit[2].'"size="40" maxlength="50"></td>
	      </tr>
		  
		  <tr>
	 	   <td>Passwort:</td><td align="left"><input type="text" name="passwort" value="'.$edit[3].'"size="40" maxlength="50"> </td>
	      </tr>
		  <tr>
	 	   <td>Urlname:</td><td align="left"><input type="text" name="urlname" value="'.$edit[4].'" size="40" maxlength="50"></td>
	      </tr>
		  <tr>
	 	   <td>Url:</td><td align="left"><input type="text" name="url" value="'.$edit[5].'"size="40" maxlength="50"> </td>
	      </tr>
		  
	      <tr>
           <th colspan="2"><input type="submit" value="  speichern"></th>
	      </tr>
	     </table>
   		 </form>
	    </th>
	   </tr>
	  </table>
	 </th>
	</tr>';
	
	mysql_close($connect);
}

?>


Script zum übermitteln der Daten:

PHP:
if ($do=="edit") {
	if (($header<>"")) {
	


		include "../news_config.php";
		$connect=mysql_connect("$host","$user","$pass");
		mysql_select_db("$db");

		$ind=1;

		$anf="UPDATE kundenlogin SET header='$HTTP_POST_VARS[header]', benutzer='$HTTP_POST_VARS[benutzer]', 										
		passwort='$HTTP_POST_VARS[passwort]',urlname='$HTTP_POST_VARS[urlname],url='$HTTP_POST_VARS[url]'WHERE id='$id'";
		$erg=mysql_query($anf);

		mysql_close($connect);

		echo'
		 <tr>
		  <th colspan="4" bgcolor="#c0c0c0"></th>
		 </tr>
		 <tr>
		  <th colspan="4" bgcolor="#c0c0c0"><span style="color:#ff0000">Kunde erfolgreich editiert!</span></th>
		 </tr>';
	}else {
		echo'
		 <tr>
		  <th colspan="4" bgcolor="#c0c0c0"></th>
		 </tr>
		 <tr>
		  <th colspan="4" bgcolor="#c0c0c0"><span style="color:#ff0000">Änderung fehlgeschlagen! Bitte wiederholen!</span></th>
		 </tr>';
	}
}

vielleicht sieht ja von Euch wer den Fehler!!

Danke und l.g. Erwin
 
Gibt es denn eine Fehlermeldung? Setze mal die Sensibilität PHPs höher um etwaige unterdrückte Fehlermeldungen auszugeben:
PHP:
<?php

	ini_set('display_error', true);
	error_reporting(E_ALL);

	…

?>
Übrigens solltest du dir unbedingt mehr Gedanken über die Sicherheit deiner Skripte machen.
 
Bin mir jetzt nicht sicher, aber könnte es sein, dass dies "$HTTP_POST_VARS" einfach veraltet ist? probier doch mal $_POST
 
Das geht ja aber schnell

Das Script ist eh über passwort geschützt und ist nur ein Auszug,
und Fehlermeldungen gibt es auch keine.

Habe gerade das $HTTP_POST_VARS duch $_POST ersetzt, hilft leider auch nichts

Danke!
 
Folgende Fehlermeldung :

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'erer' WHERE id='2'' at line 2

ich kann aber keinen fehler finden

bin schon ganz am verzweifeln!!

Danke und l.g. erwin
 
Probier mal Folgendes:
PHP:
<?php

	if( !empty($_GET['editid']) ) {

		include '../news_config.php';
		$link = mysql_connect($host, $user, $pass);
		mysql_select_db($db);

		$query = '
			SELECT
			        *
			  FROM
			        `kundenlogin`
			  WHERE
			        `id` = '.intval($_GET['editid']).'
			';
		$result = mysql_query($query)
			or die(mysql_error());
		$row = mysql_fetch_array($result, MYSQL_ASSOC);

?>
<form action="news_admin.php?do=edit" method="post">
	<input type="hidden" name="id" value="<?php echo intval($_GET['editid']); ?>">
	<p><label>Kunde <input type="text" name="header" value="<?php echo htmlspecialchars($row['header']); ?>"></label></p>
	<p><label>Benutzer <input type="text" name="benutzer" value="<?php echo htmlspecialchars($row['benutzer']); ?>"></label></p>
	<p><label>Passwort <input type="text" name="passwort" value="<?php echo htmlspecialchars($row['passwort']); ?>"></label></p>
	<p><label>URL-Name <input type="text" name="urlname" value="<?php echo htmlspecialchars($row['urlname']); ?>"></label></p>
	<p><label>URL <input type="text" name="url" value="<?php echo htmlspecialchars($row['url']); ?>"></label></p>
	<p><input type="submit" value="Speichern"></p>
</form>
<?php

		mysql_close($link);

	} 

?>
PHP:
<?php

	$success = false;

	if( !empty($_GET['do']) && $_GET['do'] == 'edit' ) {

		if( $_POST['header'] != '' ) {
			include '../news_config.php';
			$link = mysql_connect($host, $user, $pass);
			mysql_select_db($db);

			$query = '
				UPDATE
				        `kundenlogin`
				  SET
				        `header`   = "'.mysql_real_escape_string($_POST['header']).'",
				        `benutzer` = "'.mysql_real_escape_string($_POST['benutzer']).'",
				        `passwort` = "'.mysql_real_escape_string($_POST['passwort']).'",
				        `urlname`  = "'.mysql_real_escape_string($_POST['urlname']).'",
				        `url`      = "'.mysql_real_escape_string($_POST['url']).'"
				  WHERE
				        `id` = "'.mysql_real_escape_string($_POST['id']).'"
				';
			$result = mysql_query($query)
				or die(mysql_error());
			mysql_close($link);
			$success = (bool) mysql_affected_rows($link);
	}
	if( $success ) {
		echo 'Kunde erfolgreich editiert!';
	} else {
		echo 'Änderung fehlgeschlagen! Bitte wiederholen!';
	}

?>
 
Zurück