» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 65486 de mesaje.
  • 7732 de topicuri.
  • 1231 de utilizatori.
  •  
  • Kopotosa e ultimul utilizator inregistrat.
[Detalii]

 

| |
Pagini: [1]
Print

intrebare legat de o functie php [662 afisari]

sabbatha



Mesaje: 9
OfflineOffline


cu ce as putea inlocui acesta functie

$_SESSION['rand'] = date("Hz");
am incercat sa schimb cu asta

$_SESSION['rand'] = date_default_timezone_set ('GMT');
pe de o parte am scapat de o eroare pe de alta parte din cauza asta ma delogheaza de cate ori fac click pe ceva
Logged
19-06-2009, 16:54 Twitt ::
Agkelos
*


Mesaje: 7196
OfflineOffline

WWW

Daca scriptul asteapta data intr-un anumit mod si tu ii modifici formatul e normal sa apara ciudatenii.

De ce vrei sa schimbi formatul datei? Poate gasesti o metoda ocolitoare.
Logged

19-06-2009, 19:05 Twitt ::
sabbatha



Mesaje: 9
OfflineOffline


imi da eroare acolo la codul asta si m-am gandit ca e formatul de vina.
nu este codul meu... am luat ceva de pe net si incerc sa modific eu
si cum nu prea ma pricep inca nu stiu cum se poate ocoli eroarea
Logged
19-06-2009, 19:22 Twitt ::
Agkelos
*


Mesaje: 7196
OfflineOffline

WWW

Da mai multe detalii sa vad despre ce e vorba Smile
Logged

19-06-2009, 19:33 Twitt ::
sabbatha



Mesaje: 9
OfflineOffline


asta e codul complet
Code:
<?php
##########################################################################
/*
@ Rol fiºier: definirea functiilor utilizate global in aplicatie

* Puncte de stop: alocate - 1 - 50
                 definite - 1 - 18
*/
##########################################################################



###########################################################################

//                       DEFINIREA FUNCTIILOR

// user defined error handling function
function userErrorHandler ($errno, $errmsg, $filename, $linenum, $vars) {

global $depanare, $template;

$errortype = array (
1=>  "Error",
2=>  "Warning",
4=>  "Parsing Error",
8=>  "Notice",
16  =>  "Core Error",
32  =>  "Core Warning",
64  =>  "Compile Error",
128 =>  "Compile Warning",
256 =>  "Eroare",
512 =>  "Atenþionare",
1024=>  "Notificare"
);
$eroare = $errortype[$errno]."<br>$errmsg";

if ($depanare)
$eroare .= "<br> în fiºierul <tt>$filename</tt> la linia <tt>$linenum</tt> <br> $vars <br> ".mysql_error();
$reusita_include = @include("templates/$template/stop.php");
if ($reusita_include !== true)
print "($nr_eroare) ".$eroare;
die();



// timestamp for the error entry
$dt = date("Y-m-d H:i:s (T)");



// define an assoc array of error string
// in reality the only entries we should
// consider are 2,8,256,512 and 1024
$errortype = array (
1=>  "Error",
2=>  "Warning",
4=>  "Parsing Error",
8=>  "Notice",
16  =>  "Core Error",
32  =>  "Core Warning",
64  =>  "Compile Error",
128 =>  "Compile Warning",
256 =>  "User Error",
512 =>  "User Warning",
1024=>  "User Notice"
);
// set of errors for which a var trace will be saved
$user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

$err = "<errorentry>
";
$err .= " <datetime>".$dt."</datetime>
";
$err .= " <errornum>".$errno."</errornum>
";
$err .= " <errortype>".$errortype[$errno]."</errortype>
";
$err .= " <errormsg>".$errmsg."</errormsg>
";
$err .= " <scriptname>".$filename."</scriptname>
";
$err .= " <scriptlinenum>".$linenum."</scriptlinenum>
";

if (in_array($errno, $user_errors))
$err .= " <vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>
";
$err .= "</errorentry>

";

// for testing
echo "<pre>";
echo $err;
echo "</pre>";

die();

}

$old_error_handler = set_error_handler("userErrorHandler");

/**
opreste scriptul si afiseaza un mesaj de eroare
@argument string - mesajul de eroare care se afiseaza
string - interogarea (eventual)
@return -
 */
function stop($nr_eroare = 0, $mesaj = "", $query = "")
{
global $depanare, $template;

if ($depanare)
$eroare = "($nr_eroare) $mesaj <br> $query <br> ".mysql_error();
else
    $eroare = $mesaj;
$reusita_include = @include("templates/$template/stop.php");
if ($reusita_include !== true)
print "($nr_eroare) ".$eroare;
die();
} // end func stop

/**
realizeaza conectarea la serverul de baze de date si selectarea bazei de date aferente aplicatiei
@argument -
@return resouce - indicatorul de conectare
 */
function conect()
{
global $server, $username, $pass, $db;
$conectare = mysql_connect($server, $username, $pass) or stop(1, "Nu se poate realiza conectarea la server");
mysql_select_db($db) or stop(2, "Nu se poate selecta baza de date");
return $conectare;
} // end func conect


/**
verifica daca un utilizator are acces la o anumita categorie
@argument integer - id utilizator
integer - id categorie
@return bool - true - are acces / false - nu are acces
 */
function vf_acces($ut, $categ_vf)
{
global $tabel_autori, $tabel_categorii;

$ut = intval($ut);
$categ_vf = intval($categ_vf);
$query = "SELECT t2.stg as stg, t2.dr as dr FROM $tabel_autori as t1, $tabel_categorii as t2 WHERE t1.categoria=t2.id AND t1.id=$ut LIMIT 1";
$result = mysql_query($query) or stop(3, "Eroare la verificarea accesului la categorie", $query);
$arr = mysql_fetch_array($result);
extract($arr);
$query = "SELECT id FROM $tabel_categorii WHERE id=$categ_vf AND stg>=$stg AND dr<=$dr";
$result = mysql_query($query) or stop(4, "Eroare la verificarea accesului la categorie", $query);
if( mysql_num_rows($result) == 1 )
return true;
else
return false;
} // end func vf_acces


/**
parcurgerea categoriilor, cu afisarea superioarelor ierarhice si a subordonatelor nemijlocit
@argument integer - categoria selectata
@return array:         
- $categorii['sup_id'][0] = false; - nu exista superiori
sau
$categorii['sup_id'][$i] - id superior - ordinea e data de nivelul ierarhic
$categorii['sup_den'][$i] - denumire superior
- $categorii['selectat']
- $categorii['sub_id'][0] = false; - nu exista subordonati
sau
$categorii['sub_id'][$i] - id subordonat
$categorii['sub_den'][$i] - denumire subordonat
 */
function browse($categoria=1)
{
global $tabel_categorii;

if (!is_numeric($categoria)) $categoria = 1;
//aflu valorile stg si dreapta a categoriei selectate
$query = "SELECT id, stg, dr, nivel, denumire FROM $tabel_categorii WHERE id=$categoria";
$result = mysql_query($query) or stop(5, "", $query);
if (mysql_num_rows($result)!=1)
{
//daca nu exista categoria dorita, se selecteaza categoria radacina
$query = "SELECT stg, dr, nivel, denumire FROM $tabel_categorii WHERE nivel=0 LIMIT 1";
$result = mysql_query($query) or stop(6, "", $query);
}
$arr = mysql_fetch_array($result);
$stg = $arr['stg'];
$dr = $arr['dr'];
$nivel = $arr['nivel'];
$categorii['selectat'] = $arr['denumire'];
//aflu categoriile superioare ierarhic, le ordonez de la general la particular
$query = "SELECT id, denumire FROM $tabel_categorii WHERE stg<$stg AND dr>$dr ORDER BY nivel ASC";
$result = mysql_query($query) or stop(7, "", $query);
if (mysql_num_rows($result)!=0)
{
$i = 0;
    while ($arr = mysql_fetch_array($result))
    {
        $categorii['sup_id'][$i] = $arr['id'];
$categorii['sup_den'][$i] = $arr['denumire'];
$i  ;
    }
}
else
$categorii['sup_id'][0] = false;//nu exista superiori
//aflu categoriile subordonate nemijlocit
$query = "SELECT id, denumire FROM $tabel_categorii WHERE nivel=$nivel 1 AND stg>$stg AND dr<$dr";
$result = mysql_query($query) or stop(8, "", $query);
if (mysql_num_rows($result)!=0)
{
$i = 0;
    while ($arr = mysql_fetch_array($result))
    {
        $categorii['sub_id'][$i] = $arr['id'];
$categorii['sub_den'][$i] = $arr['denumire'];
$i  ;
    }
}
else
$categorii['sub_id'][0] = false;//nu exista subordonati

//ascund id-urile categoriilor superioare celei la care are acces utilizatorul
if ( isset($_SESSION['id']) and (isset($categorii['sup_id'][0])) and ($categorii['sup_id'][0]!==false) )
{
foreach ($categorii['sup_id'] as $k=>$v)
{
if (vf_acces($_SESSION['id'], $v)==true)
{
break;
}
else
    $categorii['sup_id'][$k] = 0;
}
}

return $categorii;
} // end func browse


/**
adaugarea unei subcategorii cu denumirea '$denumire' in categoria cu id-ul '$superior'
@argument string - denumirea categoriei de adaugat
@argument integer - id-ul categoriei in care se face adaugarea
@return bool - succesul functiei (TRUE) sau insuccesul (FALSE)
 */
function adauga($denumire, $superior)
{
    global $tabel_categorii;

$query = "SELECT stg, dr, nivel FROM $tabel_categorii WHERE id=$superior";
    $result = mysql_query($query) or stop(9, "", $query);
if (!is_string($denumire))
return false;
elseif (mysql_num_rows($result) == 1)
{
$arr = mysql_fetch_array($result);
$stg = $arr['stg'];
$dr = $arr['dr'];
$nivel = $arr['nivel'];
//fac loc
$query = "UPDATE $tabel_categorii SET dr=(IF(dr>=$dr, dr 2, dr)), stg=(IF(stg>$dr, stg 2, stg))";
$result = mysql_query($query) or stop(9, "", $query);
//inserez
$query = "INSERT INTO $tabel_categorii VALUES('', $nivel 1, $dr, $dr 1, '$denumire')";//inserare la dreapta
$result = mysql_query($query) or stop(10, "", $query);
return true;
}
else return false;
} // end func

/**
stergerea subcategoriei goale cu id-ul '$categoria'
@argument integer - id-ul categoriei de sters
@return bool - succesul functiei(TRUE) sau insuccesul (FALSE)
 */
function sterge($categoria)
{
global $tabel_categorii;

$query = "SELECT stg, dr, nivel FROM $tabel_categorii WHERE id=$categoria AND nivel>0 LIMIT 1";
$result = mysql_query($query) or stop(11, "", $query);
if (mysql_num_rows($result)==1)
{
$arr = mysql_fetch_array($result);
$stg = $arr['stg'];
$dr = $arr['dr'];
$nivel = $arr['nivel'];
//sterg inreg
$query = "SELECT id FROM $tabel_categorii WHERE stg<$stg AND dr>$dr AND nivel=$nivel-1";
$result = mysql_query($query) or stop(12, "", $query);
$id_superior = mysql_result($result, 0);
$query = "DELETE FROM $tabel_categorii WHERE id=$categoria AND stg=dr-1 AND nivel>0 LIMIT 1";
$result = mysql_query($query) or stop(13, "", $query);
if (mysql_affected_rows() == 1)
{
$query = "UPDATE $tabel_categorii SET stg=stg-2 WHERE stg>$stg";
$result = mysql_query($query) or stop(14, "", $query);
$query = "UPDATE $tabel_categorii SET dr=dr-2 WHERE dr>$dr";
$result = mysql_query($query) or stop(15, "", $query);
return $id_superior;
}    
else
return false;
}
else
return false;
} // end func sterge


/**

@argument -
@return integer: 0 - nelogat / -1 - date de autentificare incorecte (tot nelogat) / 1 - logat

 */
function login()
{
global $tabel_autori, $valabilitate_login;

session_start();
if ( isset( $_REQUEST['logout'] ) )
{
    //se distruge eventuala sesiune, utilizatorul nu mai este logat
$_SESSION = array();
}
else
{
$ses_valabila = false;
if ( isset( $_SESSION['id'] ) ) //verific valabilitatea sesiunii
{
$ses_valabila = true;
if( !isset( $_SESSION['rang'] ) ) $ses_valabila = false;
elseif( !isset( $_SESSION['nume'] ) ) $ses_valabila = false;
elseif( !isset( $_SESSION['utilizator'] ) ) $ses_valabila = false;
elseif( !isset( $_SESSION['rand'] ) ) $ses_valabila = false;//contine ora, in forma date("Hz")
elseif( !isset( $_SESSION['parola'] ) ) $ses_valabila = false;
elseif( !isset( $_SESSION['time'] ) or ( $_SESSION['time'] < time()) ) $ses_valabila = false;
else
{
//am verificat integritatea datelor sesiunii
//verific autenticitatea sesiunii
$query = "SELECT parola FROM $tabel_autori WHERE id=".$_SESSION['id'];
$result = mysql_query($query) or stop(16, "Nu se poate extrage parola pentru verificarea sesiunii", $query);
$pass = mysql_result($result, 0);
if( md5($pass.date("Hz")) != $_SESSION['parola'])
{
$ses_valabila = false;
//verific valabilitatea sesiunii - $_SESSION['rand'] tb sa fie cu maxim o ora in urma fata de timpul curent
if ( $_SESSION['rand'] != date("Hz") ) //ora (00-23) si ziua din an (0-366)
{
$timp = time()-3600;
if ( $_SESSION['rand'] == date("Hz", $timp) )
{
//indicatorul este cu o ora in urma, il actualizez si recalculez parola din sesiune in functie de noul indicator
$_SESSION['rand'] = date("Hz");
$_SESSION['parola'] = md5($pass.$_SESSION['rand']);
$ses_valabila = true;
}
}
}
}
}

if ($ses_valabila)
{
$_SESSION['time'] = time()   $valabilitate_login * 60;//actualizez timpul sesiunii
return 1;
}
//return 1 - utilizatorul este logat
else
{
$_SESSION = array();//reinitializez sesiunea
if ( isset( $_REQUEST['auth_utilizator'] ) and isset( $_REQUEST['auth_parola'] ) )
{
    $query = "SELECT * FROM $tabel_autori WHERE utilizator='".$_REQUEST['auth_utilizator']."' AND parola=PASSWORD('".$_REQUEST['auth_parola']."')";
    $result = mysql_query($query) or stop(17, "Nu se poate verifica parola în baza de date", $query);
    if ( mysql_num_rows($result) != 1 )
return -1;
//return -1 - date de autentificare incorecte (utilizatorul nu este logat)
else
{

$arr = mysql_fetch_array($result);
$_SESSION['id'] = $arr['id'];
$_SESSION['rang'] = $arr['rang'];
$_SESSION['categoria'] = $arr['categoria'];
$_SESSION['nume'] = $arr['nume'];
$_SESSION['utilizator'] = $arr['utilizator'];
$_SESSION['rand'] = date("Hz");
$_SESSION['time'] = time()   $valabilitate_login * 60;//timpul sesiunii

$query = "SELECT PASSWORD('".$_REQUEST['auth_parola']."')";
$result = mysql_query($query) or stop(18, "", $query);
$pass = mysql_result($result, 0);
$_SESSION['parola'] = md5($pass.$_SESSION['rand']);
return 1;
//return 1 - utilizatorul este logat
}
}
else
return 0;
//return 0 - utilizatorul nu este logat
}    
}
} // end func login



/**
realizeaza stergerea unui item din baza de date
- modifica instantele intrebarii sa directioneze catre un item gol
- sterge itemul si raspunsurile
@argument - $id - id-ul itemului
@return -
 */
function sterg_item($id)
{
    global $tabel_itemi,
$tabel_inst_itemi,
$tabel_itemi_teste,
$tabel_raspunsuri,
$tabel_rezolvare,
$tabel_testare;

//caut instantele intrebarii corespunzatoare rezolvarii online a unui test
$query = "";
$result = mysql_query($query) or stop(19, "", $query);

} // end func sterg_item

$conectare = conect();
$login = login();
?>
Logged
21-06-2009, 17:52 Twitt ::
emi



Mesaje:

^ ai dat macar o cautare pentru functia aia (in caz ca nu ai avut rabdare sa citesti sursa) sa vezi unde e folosita ? normal ca te scoate.
Logged
23-06-2009, 08:11 Twitt ::
sabbatha



Mesaje: 9
OfflineOffline


da am cautat dar nu am gasit de aia am intrebat- nu sunt programator profesionist sa imi dau seama care e buba, sunt doar o incepatoare in artele programarii care incerca sa faca ceva functional.
evident ca m-am uitat peste codul sursa.. doar ca ne fiind programator e usor cam greu sa ma prind de anumite chestii, nu se gaseste asa ceva in cartile pe care mi le-am luat pt a invata(sau poate nu stiu sa caut).
Logged
25-06-2009, 08:56 Twitt ::
emi



Mesaje:

Da cautare la sirul de caractere: date("Hz in sursa de mai sus.
Daca schimbi functia intr-un loc, macar schimba peste tot, logic nu ?
Logged
25-06-2009, 09:00 Twitt ::
Pagini: [1]
Print
SkullBox Forum  |  Development  |  Web Development  |  PHP Snippets  |  Topic: intrebare legat de o functie php