Loop al pagnii dupa Stergere cont de catre user

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