joaocasta Posted July 22, 2012 at 11:15 AM Report Share #469640 Posted July 22, 2012 at 11:15 AM Boas tardes, tenho aqui este código que mostra os dados de cada membro do meu site perfil.php <?php require_once "funcoes.php"; require_once "template.php"; if(!(isset($_GET['id']) || isset($_SESSION["id"]))) { header("Location: index.php"); exit(); } $userid = !empty($_GET['id']) ? $_GET['id'] : $_SESSION["id"]; $result = mysql_query("SELECT 1 FROM users WHERE `id` = '".$userid."' AND DATE_SUB(NOW(), INTERVAL 10 MINUTE) < ultima_visita") or die(mysql_error()); $userISonline = mysql_num_rows($result); if($userISonline) { echo "<img title='O membro está online' src='online.png'/>"; } else { echo "<img title='O membro está offline' src='offline.png'/>"; } $sql = mysql_query( "SELECT * FROM users WHERE `id`='".$userid."'" ); // call the $_SESSION['id'] which stores the user id, we've set from log-in echo "<h2>Profile</h2> <div align='center'> <form method='post' action='editprofile.php'> <table border='1'>"; $row=mysql_fetch_array($sql); $query = "select username, tipo from users inner join users_cargo on users.id_usertipo = users_cargo.id WHERE users.id = '$userid'"; $result = mysql_query($query); $usertipo = mysql_fetch_array($result); echo "<tr><td>Name: </th><td>".$row['username']."</td></tr> <tr><td>Email: </th><td>".$row['email']."</td></tr> <tr><td>Data de Registo: </th><td>".$row['data_de_registo']."</td></tr> <tr><td>Ultima vez visto: </th><td>".$row['ultima_visita']."</td></tr> <tr><td>Uploads: </th><td>" . $row['downloads'] . "</td></tr> <tr><td>Classe: </th><td>" . $usertipo['tipo'] . "</td></tr>"; if($row['avatar'] !='') $thumb = $row['avatar']; else $thumb = 'ava.png'; echo "<tr><td>Avatar</td><td><img src='avatars/".$thumb."'></td></tr>"; echo "</table>"; if($_SESSION['id'] == $userid) echo "<input type='submit' value='Editar Perfil' />"; echo "</form></div>"; ?> só que o meu problema está, em que eu quero mostrar a pagina de diferentes maneiras. Passo a explicar. Quero implementar o seguinte código no código da pagina de perfil, de modo a que possa mostrar o perfil quando escrevesse no link "perfil.php?id=" ou "perfil.php". Mas não sei como o implementar no meu codigo....: <?php if(isset($_GET['id'])) { //display the profile for user where id = $_GET['id'] } elseif(isset($_SESSION['id'])) { //display the profile for the logged in user } else { //no user logged in or $_GET['id'] doesnt exist } ?> Agradecia uma dica.... Link to comment Share on other sites More sharing options...
MoshMage Posted July 22, 2012 at 02:10 PM Report Share #469644 Posted July 22, 2012 at 02:10 PM será que o que tu queres é um include? <?php if ((isset($_GET['id'])) || (isset($_SESSION['id']))) { include 'profile.php'; } else { echo 'You must be <a href="index.php?login=true">logged</a> in to see this area'; include 'not-online.php'; } ?> If all Else fails, use Else If; Link to comment Share on other sites More sharing options...
joaocasta Posted July 22, 2012 at 02:44 PM Author Report Share #469646 Posted July 22, 2012 at 02:44 PM (edited) talvez funcione vou testar.... EDIT: testei mas nao deu porque eu quando meto no link por exemplo um id que nao existe aparece os dados e queria que retornasse para a pagina de perfil da pessoa ou pra index.php Edited July 22, 2012 at 02:59 PM by joaocasta Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 22, 2012 at 09:50 PM Report Share #469685 Posted July 22, 2012 at 09:50 PM (edited) if ((isset($_GET['id'])) || (isset($_SESSION['id']))) { header("Location: index.php"); die(); } ajuda ? Edited July 22, 2012 at 09:50 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
MoshMage Posted July 23, 2012 at 12:21 PM Report Share #469743 Posted July 23, 2012 at 12:21 PM (edited) Terás que fazer qualquer coisa deste género - e eu nao testei este codigo. [a nao ser a função, que uso] function getLastId($tbl) { $q = 'SELECT MAX(id) FROM '.$tbl; $result = to_db($q); $row = mysql_fetch_array($result); return $row['0']; } utiliza esta função para saber qual o ultimo ID, <?php if ((isset($_GET['id'])) || (isset($_SESSION['id']))) { if (!empty($_GET['id'])) $id = getLastId('tabela_que_queres_saber_o_ultimo_id'); if ((!empty($id)) && ($_GET['id'] <= $id)) include 'profile.php'; elseif ((!empty($id)) && ($_GET['id'] > $id)) header('Location: index.php'); else { //se GET_id estiver vazio ou errado, então SESSION_id existe, inclui o profile do utilizador include 'profile.php'; } } else { echo 'You must be <a href="index.php?login=true">logged</a> in to see this area'; include 'not-online.php'; } ?> Edited July 24, 2012 at 12:05 PM by MoshMage If all Else fails, use Else If; Link to comment Share on other sites More sharing options...
joaocasta Posted July 24, 2012 at 07:58 AM Author Report Share #469911 Posted July 24, 2012 at 07:58 AM (edited) HappyHippyHippo nao ajudou... Eu queria que quando o user entrasse na conta dele e se quisesse entrar na pagina de perfil dele fazia. perfil.php, mas se quisesse entrar no perfil de outro membro escrevia perfil.php?id=(aqui fica o id).... e se esse tal id nao existisse voltava para o perfil dele... E MoshMage isso tb nao ajuda Edited July 24, 2012 at 08:43 AM by joaocasta Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 24, 2012 at 09:52 AM Report Share #469929 Posted July 24, 2012 at 09:52 AM (edited) HappyHippyHippo nao ajudou... Eu queria que quando o user entrasse na conta dele e se quisesse entrar na pagina de perfil dele fazia. perfil.php, mas se quisesse entrar no perfil de outro membro escrevia perfil.php?id=(aqui fica o id).... e se esse tal id nao existisse voltava para o perfil dele... E MoshMage isso tb nao ajuda olha bem para o que tens logo no início do código // se não existir i parâmetro "id" ou existir um parâmetros "session" "id" // para ser redirecionado para o "index.php" if(!(isset($_GET['id']) || isset($_SESSION["id"]))) { header("Location: index.php"); exit(); } isto contradiz o que pretendes de só colocar o login.php o que pretendes será algo do genero $user_id = 0; // se existir o parâmetro "id" então vamos tentar ver o perfil desse utilizador if(isset($_GET['id'])) $user_id = (int)$_GET['id']; // caso contrario vamos ver o perfil da pessoa autenticada (se existir a info de autenticacao) else if (isset($_SESSION['id'])) $user_id = (int)$_SESSION['id']; // caso nao exista informacao do utilizador a ser apresentado // entao sim, vais para o index.php if ($user_id == 0) { header("Location: index.php"); die(); } // ler a informacao do utilizador a ser apresentado $sql = "QUERY DE PESQUISA PELO UTILIZADOR COM O ID PRETENDIDO"; $rs = mysql_query($sql); // verificar se o utilizador a ser apresentado existe na base de dados if (mysql_num_rows($rs) == 0) { header("Location: index.php"); exit(); } agora, não sei se existe algum tipo de restrição na visualização de perfis por parte de pessoas não autenticadas para isso seria necessário verificar também se existe informação de autenticação à cabeça Edited July 24, 2012 at 09:55 AM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted July 24, 2012 at 10:00 AM Author Report Share #469932 Posted July 24, 2012 at 10:00 AM (edited) <?php require_once "funcoes.php"; require_once "template.php"; $user_id = 0; // se existir o parâmetro "id" então vamos tentar ver o perfil desse utilizador if(isset($_GET['id'])) $user_id = (int)$_GET['id']; // caso contrario vamos ver o perfil da pessoa autenticada (se existir a info de autenticacao) $userid = !empty($_GET['id']) ? $_GET['id'] : $_SESSION["id"]; $result = mysql_query("SELECT 1 FROM users WHERE `id` = '".$userid."' AND DATE_SUB(NOW(), INTERVAL 10 MINUTE) < ultima_visita") or die(mysql_error()); $userISonline = mysql_num_rows($result); if($userISonline) { echo "<img title='O membro está online' src='online.png'/>"; } else { echo "<img title='O membro está offline' src='offline.png'/>"; } $sql = mysql_query( "SELECT * FROM users WHERE `id`='".$userid."'" ); // call the $_SESSION['id'] which stores the user id, we've set from log-in echo "<h2>Profile</h2> <div align='center'> <form method='post' action='editprofile.php'> <table border='1'>"; $row=mysql_fetch_array($sql); $query = "select username, tipo from users inner join users_cargo on users.id_usertipo = users_cargo.id WHERE users.id = '$userid'"; $result = mysql_query($query); $usertipo = mysql_fetch_array($result); echo "<tr><td>Name: </th><td>".$row['username']."</td></tr> <tr><td>Email: </th><td>".$row['email']."</td></tr> <tr><td>Data de Registo: </th><td>".$row['data_de_registo']."</td></tr> <tr><td>Ultima vez visto: </th><td>".$row['ultima_visita']."</td></tr> <tr><td>Uploads: </th><td>" . $row['downloads'] . "</td></tr> <tr><td>Classe: </th><td>" . $usertipo['tipo'] . "</td></tr>"; if($row['avatar'] !='') $thumb = $row['avatar']; else $thumb = 'ava.png'; echo "<tr><td>Avatar</td><td><img src='avatars/".$thumb."'></td></tr>"; echo "</table>"; if($_SESSION['id'] == $userid) echo "<input type='submit' value='Editar Perfil' />"; echo "</form></div>"; else if (isset($_SESSION['id'])) $user_id = (int)$_SESSION['id']; header("Location: perfil.php"); ?> Fiz assim porque aquela parte do // caso nao exista informacao do utilizador a ser apresentado // entao sim, vais para o index.php if ($user_id == 0) { header("Location: index.php"); die(); } não é precisa.... Mas continua a dar erro no else. Edited July 24, 2012 at 10:07 AM by joaocasta Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 24, 2012 at 10:17 AM Report Share #469936 Posted July 24, 2012 at 10:17 AM não é precisa.... se está lá é porque é precisa caso exemplo : não tiver autenticação e não tiveres parâmetro "id" no pedido Mas continua a dar erro no else. isso não é post que mereça resposta, e a razão já te foi dita várias vezes ... não vou dizer novamente IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted July 24, 2012 at 10:34 AM Author Report Share #469938 Posted July 24, 2012 at 10:34 AM pus todo o codigo q me deste, mas ainda nao percebi qual o erro do else.... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 24, 2012 at 10:37 AM Report Share #469939 Posted July 24, 2012 at 10:37 AM pus todo o codigo q me deste, mas ainda nao percebi qual o erro do else.... nem eu, sabes porque ? PORQUE NÃO SEI QUAL A MENSAGEM DE ERRO !!!! 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted July 24, 2012 at 10:40 AM Author Report Share #469941 Posted July 24, 2012 at 10:40 AM (edited) HappyHippyHippo não precisas de gritar, ok? O erro é este Parse error: syntax error, unexpected 'elseif' (T_ELSEIF) in C:\wamp\www\novo tema v1\perfil.php on line 66 linha 66: elseif(isset($_SESSION['id'])) // LINHA 66 { $user_id = (int)$_SESSION['id']; header("Location: perfil.php"); } Edited July 24, 2012 at 10:40 AM by joaocasta Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 24, 2012 at 10:49 AM Report Share #469945 Posted July 24, 2012 at 10:49 AM HappyHippyHippo não precisas de gritar, ok? O erro é este quantas vezes já te disse para apresentares a mensagem de erro ???? basta ler a mensagem de erro que saberias qual é o erro - "Parse error: " >> erro de leitura do script - "syntax error, " >> erro de interpretação do script - "unexpected 'elseif' (T_ELSEIF) in " >> o comando "elseif" é inesperado, isto implica que o "else/elseif" não deveria aparecer aqui porque a instrução anterior não é uma instrução do um "if" if($_SESSION['id'] == $userid) echo "<input type='submit' value='Editar Perfil' />"; // instrução do IF echo "</form></div>"; // instrução fora do IF else if (isset($_SESSION['id'])) // erro : a instrução anterior não faz parte do bloco de instruções do IF $user_id = (int)$_SESSION['id']; usa chavetas IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted July 24, 2012 at 10:57 AM Author Report Share #469947 Posted July 24, 2012 at 10:57 AM tentei isto mas nao deu... if($_SESSION['id'] == $userid) { echo "<input type='submit' value='Editar Perfil' />"; } echo "</form></div>"; elseif (isset($_SESSION['id'])) { $user_id = (int)$_SESSION['id']; header("Location: perfil.php"); } Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 24, 2012 at 11:05 AM Report Share #469950 Posted July 24, 2012 at 11:05 AM (edited) epa ... nem sei o que responder ... so mesmo assim http://www.php.net/manual/en/control-structures.if.php http://www.php.net/manual/en/control-structures.else.php http://www.php.net/manual/en/control-structures.elseif.php Edited July 24, 2012 at 11:06 AM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
ruimcosta Posted July 24, 2012 at 11:51 AM Report Share #469960 Posted July 24, 2012 at 11:51 AM epa ... nem sei o que responder ... so mesmo assim http://www.php.net/manual/en/control-structures.if.php http://www.php.net/manual/en/control-structures.else.php http://www.php.net/manual/en/control-structures.elseif.php O pessoal hoje em dia quer TAMBÉM tirar licenciaturas ao domingo, por fax, com equivalências so por saber pescar, etc... Amigos: LEIAM e se não entenderem , perguntem. Agora perguntar sem fazer a menor ideia do que estão a perguntar..... Abraços e beijinhos,Rui Costa Link to comment Share on other sites More sharing options...
joaocasta Posted July 24, 2012 at 11:56 AM Author Report Share #469961 Posted July 24, 2012 at 11:56 AM mas ainda nao vi qual foi o meu erro, coloquei as chavetas todas... nao sei mesmo Link to comment Share on other sites More sharing options...
MoshMage Posted July 24, 2012 at 12:04 PM Report Share #469967 Posted July 24, 2012 at 12:04 PM (edited) nem eu, sabes porque ? PORQUE NÃO SEI QUAL A MENSAGEM DE ERRO !!!! Trolololol xD Happy Hippo pwns Edited July 24, 2012 at 06:44 PM by MoshMage If all Else fails, use Else If; Link to comment Share on other sites More sharing options...
taviroquai Posted July 24, 2012 at 12:10 PM Report Share #469968 Posted July 24, 2012 at 12:10 PM nem eu, sabes porque ? PORQUE NÃO SEI QUAL A MENSAGEM DE ERRO !!!! lol Outra forma... $user_id = !empty($_GET['id']) ? (int) $_GET['id'] : $_SESSION['id']; if (empty($user_id)) { header("Location: index.php"); exit(); } Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 24, 2012 at 12:12 PM Report Share #469970 Posted July 24, 2012 at 12:12 PM Outra forma... $user_id = !empty($_GET['id']) ? (int) $_GET['id'] : $_SESSION['id']; if (empty($user_id)) { header("Location: index.php"); exit(); } epa ... se ele nem sabe por chavetas achas que vai perceber o operador ternário ??? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now