Foros del Web » Programando para Internet » PHP »

Eliminar pagina

Estas en el tema de Eliminar pagina en el foro de PHP en Foros del Web. Tengo este problema, Tengo un modulo para crear paginas de fans, cuando le doy me gusta a una pagina, si la pagina de fans la ...
  #1 (permalink)  
Antiguo 29/04/2013, 12:59
Avatar de ChatDelMundo  
Fecha de Ingreso: abril-2013
Mensajes: 98
Antigüedad: 11 años
Puntos: 1
Eliminar pagina

Tengo este problema,

Tengo un modulo para crear paginas de fans, cuando le doy me gusta a una pagina, si la pagina de fans la eliminan sale lo que esta señalado en la imagen.

¿Alguien sabe como el usuario puede borrar eso?


Código PHP:
function like($uri=0) {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where uri='{$uri}' and type='page'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die('wrong page id');
        
$res sql_query("select * from ".tb()."page_users where pid='{$page['id']}' and uid='{$client['id']}'");
        if (!
sql_counts($res)) {
            
sql_query("insert into ".tb()."page_users (uid,pid) value ('{$client['id']}','{$page['id']}')");
        }
        
redirect('page/'.$page['uri'],1);
    }

    function 
unlike($uri=0) {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where uri='{$uri}' and type='page'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die('wrong page id');
        
sql_query("delete from ".tb()."page_users where uid='{$client['id']}' and pid='{$page['id']}'");
        
redirect('page/'.$page['uri'],1);
    }

    function 
create() {
        global 
$client;
        if (!
$client['id']) die('need login');
        
set_title(t('Create a page'));

        if (
$_POST['step'] == 2) {
            
$_POST['guri'] = strtolower($_POST['guri']);
            if (
strlen($_POST['guri']) < 6) {
                
$errors[] = 'The Page Address must be at least <strong>6</strong> characters long';
            }
            elseif (
strlen($_POST['guri']) > 50) {
                
$errors[] = 'The Page Address cannot be longer than 50';
            }
            elseif (!
ereg("^[0-9a-z]+$",$_POST['guri']) ) {
                
$errors[] = 'The Page Address can only contain 0-9,a-z';
            }
            else {
                
$res sql_query("select * from ".tb()."pages where uri='{$_POST['guri']}' and type='page'");
                if (
sql_counts($res)) {
                    
$errors[] = 'The page address is already in use: '.$_POST['guri'];
                }
            }
            if (!
strlen($_POST['name']) ) {
                
$errors[] = 'Please input a Page Name';
            }
            if (!
is_array($errors)) {
                
$page = array(
                    
'uid'=>$client['id'],
                    
'uri' => $_POST['guri'],
                    
'name'=>$_POST['name'],
                    
'type'=>'page',
                    
'updated'=>time(),
                    
'description'=>$_POST['description']
                    );
                
sql_insert($pagetb().'pages');
                
redirect('page/'.$_POST['guri'] ,1);
                exit;
            }
        }
        if (
is_array($errors)) {
            
sys_notice('Please fix the Error(s)');
                
c('<ul>');
                foreach (
$errors as $error) {
                    
c('<li>'.$error.'</li>');
                }
                
c('</ul>');
        }

        
c('
            <form action="" method="post">

        <br /><br />'
.label(t('Page Address')).'
        <span style="font-size:1.5em;color:#3A74AD">'
.url('page/','ohno').'</span> <input type="text" name="guri" value="'.$_POST['guri'].'" size="20" class="fpost" /><br />
        <span class="sub">(0-9,a-z),'
.t('Example').': http://'.url('page/').'<strong>abcdefg</strong></span><br /><br />
    


        '
.label(t('Page Name')).'<input type="text" name="name" value="'.h(stripslashes($_POST['name'])).'" size="20" class="fpost" />
        <br /><br />

        '
.label(t('Page Description').' ('.t('Optional').')').'
        <textarea name="description" rows="5" cols="55">'
.h($_POST['description']).'</textarea>
        <br /><br />
        <input type="submit" value="'
.t('Submit').'" class="fbutton" />
        <input type="hidden" value="2" name="step" />
        </form>
        '
);
        
section_close(t('Create a page'));
    }

    function 
manage($page_id) {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where id='{$page_id}'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die("wrong page id");
        if (
$page['uid'] != $client['id'] && !allow_access(3)) {
            die(
'access denied');
        }
        
set_title(h($page['name']));
        
c('
            <form action="'
.url('pages/managepost').'" method="post">

        '
.label(t('Page Name')).'<input type="text" name="name" value="'.h($page['name']).'" size="20" class="fpost" />
        <br /><br />

        '
.label(t('Page Description').' ('.t('Optional').')').'
        <textarea name="description" rows="5" cols="55">'
.h($page['description']).'</textarea>
        <br /><br />
        <input type="hidden" name="page_id" value="'
.$page['id'].'" />
        <input type="submit" value="'
.t('Save changes').'" class="fbutton" />
        '
.url('pages/deleteit/'.$page['id'],t('Delete')).'
        </form>

        '
);
    }

    function 
deleteit($page_id) {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where id='{$page_id}'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die("wrong page id");
        if (
$page['uid'] != $client['id'] && !allow_access(3)) {
            die(
'access denied');
        }
        if (
$_POST['confirm']) {
            
sql_query("delete from ".tb()."pages where id='{$page_id}'");
            
$res sql_query("select id from ".tb()."stories where page_id='{$page_id}'");
            while (
$story sql_fetch_array($res)) {
                
$res2 sql_query("select * from ".tb()."story_photos where sid='{$story['id']}'");
                while (
$photo sql_fetch_array($res2)) {
                    @
unlink($photo['uri']);
                    @
unlink($photo['thumb']);
                    
sql_query("delete from ".tb()."story_photos where id='{$photo['id']}'");
                }
                
sql_query("delete from ".tb()."stories where id='{$story['id']}'");
                
sql_query("delete from ".tb()."tag_ids where sid='{$story['id']}'");
            }
            
sql_query("delete from ".tb()."streams where wall_id='{$page_id}'");
            
redirect('pages/mine');
        }
        
set_title(h($page['name']));
        
c('
            <form action="'
.url('pages/deleteit/'.$page['id']).'" method="post">
        '
.t('Page').': '.url('page/'.$page['uri'],h($page['name'])).'<br /><br />
        <strong>'
.t('Are you sure to delete this Page?').'</strong><br />
        '
.t('All posts,blogs,photos,videos under this page will be deleted too.').'
        <br /><br />
        <input type="hidden" name="confirm" value="1" />
        <input type="hidden" name="page_id" value="'
.$page['id'].'" />
        <input type="submit" value="'
.t('Delete it anyway').'" class="fbutton" />
        </form>
        '
);
    }

    function 
managepost() {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where id='{$_POST['page_id']}'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die("wrong page id");
        if (
$page['uid'] != $client['id']) {
            die(
'access denied');
        }
        
$newpage = array(
            
'id'=>$page['id'],
            
'name'=>$_POST['name'],
            
'description'=>$_POST['description']
            );
        
sql_update($newpage,tb()."pages");
        
redirect('page/'.$page['uri'],1);
    }

    function 
logo($page_id) {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where id='{$page_id}'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die("wrong page id");
        if (
$page['uid'] != $client['id']) {
            die(
'access denied');
        }
        
set_title(h($page['name']));
        
c('<br />
        <form method="post" name="form1" action="'
.url('pages/logopost').'" enctype="multipart/form-data">
                    
                    <fieldset>
                    <legend>'
.t('Page logo').'</legend>
                    <p>
                    '
.page_logo($page,'big').'
                    </p>
                    <p>
                    '
.label(t('Upload')).'
                    <input name="logo" type="file" id="avatar" />
                    </p>
                    </fieldset>

                    <p>
                    <input type="hidden" name="page_id" value="'
.$page['id'].'" />
                    <input class="button" type="submit" value="'
.t('Save').'" />
                    </p>
                    </form>
        '
);
    }

    function 
logopost() {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where id='{$_POST['page_id']}'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die("wrong page id");
        if (
$page['uid'] != $client['id']) {
            die(
'access denied');
        }

        
// avatar
        
$newpage = array('id'=>$page['id']);
        if (
strlen($_FILES['logo']['tmp_name'])>&& $_FILES['logo']['tmp_name'] != "none") {
            include_once(
'includes/libs/resizeimage.inc.php');
            
$dir date("Ym",time());
            
$folder 'uploads/avatars/'.$dir;
            if (!
is_dir($folder))
                
mkdir($folder0777);
            
$s_folder 'uploads/avatars/s_'.$dir;
            if (!
is_dir($s_folder))
                
mkdir($s_folder0777);
            
$name date("H_i",time()).'_'.get_rand(5);
            
//small
            
$resizeimage = new resizeimage($_FILES['logo']['tmp_name'], $_FILES['logo']['type'], $s_folder.'/'.$name50,500,100,'white');
            
//big
            
$resizeimage = new resizeimage($_FILES['logo']['tmp_name'], $_FILES['logo']['type'], $folder.'/'.$name200,2000100,'white');
            
$newpage['logo'] = $dir.'/'.$name.".".$resizeimage->type;
            
sql_update($newpage,tb()."pages");
            if (
$page['logo']) {
                @
unlink('uploads/avatars/'.$page['logo']);
                @
unlink('uploads/avatars/s_'.$page['logo']);
            }
        }
        
redirect('page/'.$page['uri'],1);
    }

__________________
chatdelmundo.es
  #2 (permalink)  
Antiguo 29/04/2013, 13:28
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Eliminar pagina

No sé donde tienes la función para mostrar esa información, es difícil adivinar cómo solucionarlo, aunque sí tengo una idea.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 29/04/2013, 13:40
Avatar de ChatDelMundo  
Fecha de Ingreso: abril-2013
Mensajes: 98
Antigüedad: 11 años
Puntos: 1
Respuesta: Eliminar pagina

Cita:
Iniciado por Triby Ver Mensaje
No sé donde tienes la función para mostrar esa información, es difícil adivinar cómo solucionarlo, aunque sí tengo una idea.
Esta es la función que borra la pagina:

Código PHP:
  function deleteit($page_id) {
        global 
$client;
        
need_login();
        
$res sql_query("select * from ".tb()."pages where id='{$page_id}'");
        
$page sql_fetch_array($res);
        if (!
$page['id']) die("wrong page id");
        if (
$page['uid'] != $client['id'] && !allow_access(3)) {
            die(
'access denied');
        }
        if (
$_POST['confirm']) {
            
sql_query("delete from ".tb()."pages where id='{$page_id}'");
            
$res sql_query("select id from ".tb()."stories where page_id='{$page_id}'");
            while (
$story sql_fetch_array($res)) {
                
$res2 sql_query("select * from ".tb()."story_photos where sid='{$story['id']}'");
                while (
$photo sql_fetch_array($res2)) {
                    @
unlink($photo['uri']);
                    @
unlink($photo['thumb']);
                    
sql_query("delete from ".tb()."story_photos where id='{$photo['id']}'");
                }
                
sql_query("delete from ".tb()."stories where id='{$story['id']}'");
                
sql_query("delete from ".tb()."tag_ids where sid='{$story['id']}'");
            }
            
sql_query("delete from ".tb()."streams where wall_id='{$page_id}'");
            
redirect('pages/mine');
        }
        
set_title(h($page['name']));
        
c('
            <form action="'
.url('pages/deleteit/'.$page['id']).'" method="post">
        '
.t('Page').': '.url('page/'.$page['uri'],h($page['name'])).'<br /><br />
        <strong>'
.t('Are you sure to delete this Page?').'</strong><br />
        '
.t('All posts,blogs,photos,videos under this page will be deleted too.').'
        <br /><br />
        <input type="hidden" name="confirm" value="1" />
        <input type="hidden" name="page_id" value="'
.$page['id'].'" />
        <input type="submit" value="'
.t('Delete it anyway').'" class="fbutton" />
        </form>
        '
);
    } 
El problema es que los usuarios que le hayan dado me gusta les va salir eso en su panel si eliminan la pagina de fans.

al darle clic a eso les sale una pagina en blanco con este texto: wrong url
__________________
chatdelmundo.es
  #4 (permalink)  
Antiguo 29/04/2013, 13:49
 
Fecha de Ingreso: abril-2013
Mensajes: 34
Antigüedad: 11 años
Puntos: 3
Respuesta: Eliminar pagina

antes de mostrar las paginas a las que le ha dado me gusta, debes verificar que la pagina exista, si y solo si existe la muestras.

por el foro hay varios post para verificar si existe una página o no.
  #5 (permalink)  
Antiguo 29/04/2013, 13:56
Avatar de Dekadence  
Fecha de Ingreso: junio-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Eliminar pagina

Facil, simplemente cuando se borre una página debes borrar todo lo que le es relativo, en este caso los likes, para ello modifica la función de borrado por esta:
Código PHP:
Ver original
  1. function deleteit($page_id) {
  2.         global $client;
  3.         need_login();
  4.         $res = sql_query("select * from ".tb()."pages where id='{$page_id}'");
  5.         $page = sql_fetch_array($res);
  6.         if (!$page['id']) die("wrong page id");
  7.         if ($page['uid'] != $client['id'] && !allow_access(3)) {
  8.             die('access denied');
  9.         }
  10.         if ($_POST['confirm']) {
  11.             sql_query("delete from ".tb()."pages where id='{$page_id}'");
  12.             sql_query("delete from ".tb()."page_users where pid='{$page_id}'");
  13.             $res = sql_query("select id from ".tb()."stories where page_id='{$page_id}'");
  14.             while ($story = sql_fetch_array($res)) {
  15.                 $res2 = sql_query("select * from ".tb()."story_photos where sid='{$story['id']}'");
  16.                 while ($photo = sql_fetch_array($res2)) {
  17.                     @unlink($photo['uri']);
  18.                     @unlink($photo['thumb']);
  19.                     sql_query("delete from ".tb()."story_photos where id='{$photo['id']}'");
  20.                 }
  21.                 sql_query("delete from ".tb()."stories where id='{$story['id']}'");
  22.                 sql_query("delete from ".tb()."tag_ids where sid='{$story['id']}'");
  23.             }
  24.             sql_query("delete from ".tb()."streams where wall_id='{$page_id}'");
  25.             redirect('pages/mine');
  26.         }
  27.         set_title(h($page['name']));
  28.         c('
  29.            <form action="'.url('pages/deleteit/'.$page['id']).'" method="post">
  30.        '.t('Page').': '.url('page/'.$page['uri'],h($page['name'])).'<br /><br />
  31.        <strong>'.t('Are you sure to delete this Page?').'</strong><br />
  32.        '.t('All posts,blogs,photos,videos under this page will be deleted too.').'
  33.        <br /><br />
  34.        <input type="hidden" name="confirm" value="1" />
  35.        <input type="hidden" name="page_id" value="'.$page['id'].'" />
  36.        <input type="submit" value="'.t('Delete it anyway').'" class="fbutton" />
  37.        </form>
  38.        ');
  39.     }
Para que se vea mejor, pongo aquí la linea que he agregado, en la linea 12 de la función superior:
Código PHP:
Ver original
  1. sql_query("delete from ".tb()."page_users where pid='{$page_id}'");
He deducido la query de tu función de unlike, de todos modos si no es esa, debes agregar la query que elimine los likes de la BD.

Un saludo ^^
  #6 (permalink)  
Antiguo 29/04/2013, 13:58
Avatar de ChatDelMundo  
Fecha de Ingreso: abril-2013
Mensajes: 98
Antigüedad: 11 años
Puntos: 1
Respuesta: Eliminar pagina

Cita:
Iniciado por Triby Ver Mensaje
No sé donde tienes la función para mostrar esa información, es difícil adivinar cómo solucionarlo, aunque sí tengo una idea.

La función de esa información esta aqui:

Código PHP:
function mine() {
        global 
$content$db$apps$client$ubase$nav$offset$page$num_per_page$current_sub_menu;
        
need_login();
        
button('pages/create',t('Create a page'));
        
$res sql_query("select * from ".tb()."pages where type='page' and uid='{$client['id']}' order by updated DESC limit 100");
        
c('<style>
        .page_listings {
            width:230px;
            padding:5px;
            float:left;
    }
    </style>
    <div style="width:100%;clear:both"></div>'
);
        while (
$jcow_page sql_fetch_array($res) ) {
            if (!
$jcow_page['logo']) {
                
$jcow_page['logo'] = 'logo.jpg';
            }
            
$logo url('page/'.$jcow_page['uri'],'<img src="'.uhome().'/uploads/avatars/s_'.$jcow_page['logo'].'" width="25" height="25" />');
            
$i++;
            
c('<div class="page_listings"><table><tr><td>
            '
.url('page/'.$jcow_page['uri'],'<img src="'.uhome().'/uploads/avatars/s_'.$jcow_page['logo'].'" width="25" height="25" />').'</td><td>'.
                
url('page/'.$jcow_page['uri'],h($jcow_page['name'])).'<div class="sub">'.t('Updated').': '.get_date($jcow_page['updated']).'</div></td></tr></table>
            </div>'
);
        }
        
c('<div style="width:100%;clear:both"></div>');
        
section_close(t('Pages I created'));
        
        
c('<div style="width:100%;clear:both"></div>');
        
$res sql_query("select p.* from ".tb()."page_users as u left join ".tb()."pages as p on p.id=u.pid where u.uid='{$client['id']}' order by p.updated DESC limit 100");
        while (
$jcow_page sql_fetch_array($res) ) {
            if (!
$jcow_page['logo']) {
                
$jcow_page['logo'] = 'logo.jpg';
            }
            
$logo url('page/'.$jcow_page['uri'],'<img src="'.uhome().'/uploads/avatars/s_'.$jcow_page['logo'].'" width="25" height="25" />');
            
$i++;
            
c('<div class="page_listings"><table><tr><td>
            '
.url('page/'.$jcow_page['uri'],'<img src="'.uhome().'/uploads/avatars/s_'.$jcow_page['logo'].'" width="25" height="25" />').'</td><td>'.
                
url('page/'.$jcow_page['uri'],h($jcow_page['name'])).'<div class="sub">'.t('Updated').': '.get_date($jcow_page['updated']).'</div></td></tr></table>
            </div>'
);
        }
        
c('<div style="width:100%;clear:both"></div>');
        
section_close(t('Pages I liked'));
    } 
__________________
chatdelmundo.es
  #7 (permalink)  
Antiguo 29/04/2013, 14:00
Avatar de Dekadence  
Fecha de Ingreso: junio-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Eliminar pagina

Mejor que comprobar, o al menos, además de comprobar, deberías eliminar la información de la base de datos con el fín de mantenerla limpia, prueba la función que te he puesto en el mensaje anterior y me cuentas.

Un saludo ^^
  #8 (permalink)  
Antiguo 29/04/2013, 14:03
Avatar de ChatDelMundo  
Fecha de Ingreso: abril-2013
Mensajes: 98
Antigüedad: 11 años
Puntos: 1
Respuesta: Eliminar pagina

Cita:
Iniciado por Dekadence Ver Mensaje
Facil, simplemente cuando se borre una página debes borrar todo lo que le es relativo, en este caso los likes, para ello modifica la función de borrado por esta:
Voy a probarlo grax!
__________________
chatdelmundo.es
  #9 (permalink)  
Antiguo 29/04/2013, 14:36
Avatar de ChatDelMundo  
Fecha de Ingreso: abril-2013
Mensajes: 98
Antigüedad: 11 años
Puntos: 1
Respuesta: Eliminar pagina

Cita:
Iniciado por Dekadence Ver Mensaje
Mejor que comprobar, o al menos, además de comprobar, deberías eliminar la información de la base de datos con el fín de mantenerla limpia, prueba la función que te he puesto en el mensaje anterior y me cuentas.

Un saludo ^^
^^ Era eso muchas gracias!
__________________
chatdelmundo.es
  #10 (permalink)  
Antiguo 29/04/2013, 14:45
Avatar de Dekadence  
Fecha de Ingreso: junio-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Eliminar pagina

De nada para eso estamos :)

Recuerda marcar el tema como solucionado para mantener el foro ordenado, un saludo ^^

Etiquetas: select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:07.