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
Mesaje:4343
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
Mesaje:80
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
Mesaje:4343
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
Mesaje:80
Merci, am rezolvat; aveam adresa unui folder inexacta...