Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: User settings upload

Parašė rokasbalsys· 2014 Kov. 31 11:03:23
#1

Tai va yra tokia problema, vartotojas gali savo duomenis pakeisti, tai yra varda, emaila, pavarde, tik yra tokia problema:


 
<?php	
		if(isset($_GET['success']) === true && empty($_GET['success']) === true){
			echo 'your details have been updated!';
		}	else 	{
		if(empty($_POST) === false && empty($errors) === true)	{
			$update_data = array(
 
				'first_name' => $_POST['first_name'],
				'last_name' => $_POST['last_name'],
				'email' => $_POST['email']
			);
			update_user($update_data);
			header('Location: settings.php?success');
			exit();
 
		}	else if (empty($errors) === false)	{
			echo output_errors($errors);
		}
?>	

kur yra

$update_data = array(
 
				'first_name' => $_POST['first_name'],
				'last_name' => $_POST['last_name'],
				'email' => $_POST['email']
			);

man pakeicia tik emeila, o jeigu koda parasyciau sitaip:

$update_data = array(
 
				'email' => $_POST['email']
				'first_name' => $_POST['first_name'],
				'last_name' => $_POST['last_name'],
			);
pakeicia tik last_name. Tai yra tik paskutini array duomeni pakeicia.

mano funkcija:

 
function update_user($update_data)	{
	global $session_user_id;
	$update = array();
	array_walk($update_data, 'array_sanitize');
 
	foreach($update_data as $field=>$data);	{
		$update[] = '`' . $field . '` = \'' . $data . '\'';
	}
	mysql_query("UPDATE `users` SET " . implode(', ', $update) . " WHERE `USER_id` = $session_user_id");
}
 


kas cia gali buti per problema ?

Redagavo rokasbalsys· 2014 Kov. 31 11:03:15

Parašė Inkaras· 2014 Kov. 31 20:03:23
#2

Visų pirma, patariu atsikratyti mysql_* , geriau naudok mysqli arba PDO.
Antra, tavo klaida kode:

foreach($update_data as $field=>$data); {
 

padėjai ; po foreach ciklo, ištrinus simbolį ";" (be kabučių) viskas veikia.
Ir beje, bent jau man, array_walk rodo klaidą:

Warning: array_walk() expects parameter 2 to be a valid callback, function 'array_sanitize' not found or invalid function name

Redagavo Inkaras· 2014 Kov. 31 20:03:12

Parašė rokasbalsys· 2014 Bal. 1 00:04:01
#3

Aciu! ilgai ieskojau klaidos ir niekaip negalejau rasti. man nemeta erroro. zodzoi, kodel naudoti mysqli arba pdo? pora argumentu

Parašė Pakartoti slaptažodį· 2014 Bal. 1 15:04:48
#4

* saugumas
* lankstumas
* naujesnis standartas
* tolimesnis palaikymas

Parašė Inkaras· 2014 Bal. 1 22:04:13
#5

Didesnė apsauga nuo SQL injekcijų (jeigu bindinsi parametrus, ir nepaliksi skylių kode dėl savo kaltės).
Palaiko MySQL 5.1+ funkcijas.
mysql_* nebebus vystoma, ir planuojama jos ateityje atsisakyti.
Šiek tiek daugiau informacijos: http://php.net/manual/en/mysqlin...oosing.php

Parašė rokasbalsys· 2014 Bal. 1 23:04:31
#6

Gerai, o dabar kaip geriausia ir is kur pradeti mokintis PDO ?

Parašė Žmogus· 2014 Bal. 2 22:04:17
#7

rokasbalsys parašė:
Gerai, o dabar kaip geriausia ir is kur pradeti mokintis PDO ?


http://wiki.hashphp.org/PDO_Tuto...Developers