Jump to content
php.lv forumi

Recommended Posts

Posted

Vai ir kāds veids likt pašdefinētās funckijās strādāt tiem mainīgajiem, kas ir definēti ārpus šīs funkcijas?

 

$a = "aaabols";

function aablele()
{
$b = "bumbieris";
echo "Man ir".$a."un".$b;
}

 

P.S. šāds variants neapmierina mani (neder):

 

function aablele($a='')
{
$b = "bumbieris";
echo "Man ir".$a."un".$b;
}

$a = "aaabols";
aabele($a);

Posted (edited)

var padot ar &$mainigais VAi defineet kaa Globalo mainiigo, bet neviens ne otrs variants nav parak labs, labak tomer pietureties pie taa ka f-jai tiek padots kaads mainiigais standarta varianta.

Kaa arii tomer labak pasaa f-ja neizmantot echo bet gan return $atgriezjamaa_vertiiba

un tad jau izvadiit vertiibu pasaa kodaa ..

echo mana_funkcija();

Tas dod krietni lielaku koda elastiibu --> iespejams ne tikai izvadiit, bet teiksim pie vajadziibas arii saglabat vertiibu DB (faila) , parbaudiit vai rezultaats vispar ir, un tad tikai izvadiit ... respektiivi krietni plasakas pielietosanas iespejas...

 

P.S. Man agrak arii likaas ka nav risinajumu kaa vieniigi globalo mainiigo izmantosana, bet tomeer taa nav Praktiski VIENMER bez taa var iztikt...

Edited by Grey_Wolf
Posted (edited)

Nu ar echo bija tikai piemērs. Ir funckijas, kurās strādā mysql_query, un tur vajag ieviest kaut kādus drošības pasākumus. Doma bija lietot šo te:

function quote_smart($value)
{
	// Stripslashes
	if (get_magic_quotes_gpc())
	{
		$value = stripslashes($value);
	}
	// Quote if not a number or a numeric string
	if (!is_numeric($value))
	{
		$value = "'" . mysql_real_escape_string($value) . "'";
	}
	return $value;
}

 

martins256, tev droši vien šis te liksies pazīstams :)

 

 

Vispār, ja godīgi, es neesmu īpaši iedziļinājies tajā aizsardzības veidošanā. Varbūt var likties mierā un iztikt vienkārši ar to real escape string ?

Edited by hackerman
Posted

galiigi nekaa nesaprotu :( Un kapeec nevari to $value padot pa taisno ??

$sql= quote_smart($sql);

???

pilniigi normals risinajums un nekaadu Perversiju ;)

×
×
  • Create New...