Loop al pagnii dupa Stergere cont de catre user

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
adrian_ady
Mesaje: 80

Loop al pagnii dupa Stergere cont de catre user

Salut,
in site-ul meu, cand un user doreste sa stearga contul trebuie sa trimita un mail prin care sa solicite operatiunea. Eu vreau ca el insusi sa poata face asta din pagina personala. Tot incerc sa gasesc metoda insa rezultatul este un loop continuu al paginii (specific ca datele userului sunt eliminate cu succes din tabel). Trebuie sa fie o ordine a operatiunilor, nu stiu, probabil trebuie sa faca logOFF inainte, sa se stearga cookie, etc.
Ma ajutati?

Cod: Selectaţi tot

if(isset($_GET['sterge'])){
$id = $membru->getValue('id',$username);       
$path = "foldere/anunturi/id_".$id;
 function deleteDir($path) {
  if(is_dir($path) === true) {
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($files as $file) {
      if(in_array($file->getBasename(), array('.', '..')) !== true) {
        if($file->isDir() === true) rmdir($file->getPathName());
        else if (($file->isFile() === true) || ($file->isLink() === true)) unlink($file->getPathname());
          }
        }
    return rmdir($path);
   }
  else if((is_file($path) === true) || (is_link($path) === true)) return unlink($path);
    return false;
 }
deleteDir($path);
$db->delete("DELETE  FROM membri WHERE id = ".$id." ");
$db->delete("DELETE  FROM anunturi WHERE id_membru = ".$id." ");
} 

MarPlo
Salut
Dupa ce datele sunt sterse, ncearca sa stergi toate sesiunile si sa faci redirect catre pagina principala (sau ce pagina vrei).
Cam asa:

Cod: Selectaţi tot

if(isset($_GET['sterge'])){
  // sterge datele ...

  session_destroy();  // sterge sesiuniile
  header('Location: /'); // redirect la "/"
  exit;
} 

adrian_ady
Am incercat, tot bucla de redirectionare-mi rezulta.

Cod: Selectaţi tot

if(isset($_GET['sterge'])){
$id = $membru->getValue('id',$username);       
$path = "foldere/anunturi/id_".$id;
 function deleteDir($path) {
  if(is_dir($path) === true) {
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($files as $file) {
      if(in_array($file->getBasename(), array('.', '..')) !== true) {
        if($file->isDir() === true) rmdir($file->getPathName());
        else if (($file->isFile() === true) || ($file->isLink() === true)) unlink($file->getPathname());
          }
        }
    return rmdir($path);
   }
  else if((is_file($path) === true) || (is_link($path) === true)) return unlink($path);
    return false;
 }
deleteDir($path);
$db->delete("DELETE  FROM membri WHERE id = ".$id." ");
$db->delete("DELETE  FROM anunturi WHERE id_membru = ".$id." ");

  session_destroy();  // sterge sesiuniile
  header('Location: autentificare/'); // redirect la "/"
  exit;
} 

In site, in folderul 'config' am:

Cod: Selectaţi tot

	function logOff()
	{
		foreach($this->fields as $value)	unset($_SESSION[$value]);		
		//session_destroy();
		$this->username='';
		$this->password='';
		$this->deleteCookie();
	}
	private function writeCookie() 
	{
		// setez cookie
		setcookie(self::$cookie_name."[".$this->fields[0]."]", $this->username, time() + (3600 * 24 * 60)); //expira in 60 de zile
		setcookie(self::$cookie_name."[".$this->fields[1]."]", $this->password, time() + (3600 * 24 * 60));
	}
	private function deleteCookie() 
	{
		// delete cookie
		setcookie(self::$cookie_name."[".$this->fields[0]."]", '', time() - 3600);
		setcookie(self::$cookie_name."[".$this->fields[1]."]", '', time() - 3600);
	}
	
In pagina PHP am:

Cod: Selectaţi tot

<a  href="javascript:void(0)" onClick="confirmare('contul-meu/?sterge=<?=$membru->id?>','Ne pare rau, trebuie sa va intrebam: \nSunteti sigur ca doriti sa va stergeti definitiv contul?\n\nActiunea este ireversibila!')">Sterge cont</a>

MarPlo
Daca face redirect catre aderesa pusa la header(), nu stiu ce anume sau de ce apare bucla de redirectionare.
Apeleaza si functia logOff() inainte de header(), pe care o ai in "config".
Daca tot nu merge, nu stiu cauza.

adrian_ady
Merci, am rezolvat; aveam adresa unui folder inexacta...

Subiecte similare