Jump to content

Recommended Posts

Posted
<?
$pagina = "http://localhost/link.php"; //localizacao da pagina

$ligacao = mysql_connect("localhost","root",""); //ligacao a base de dados
mysql_select_db("link", $ligacao);

$action = $_GET['action']; //verificacao da accao a realizar
switch ($action) {

case "redir": 
$id = addslashes($_GET['id']);
$query = mysql_query("SELECT * FROM link WHERE id = '$id'"); //query correspondente ao id do link
$num = mysql_num_rows($query);
if ($num < 1) {
echo "Erro, ligação inexistente!"; //se o id nao existir
}
else
{
$endereco = mysql_result($query, 0, "link"); //passar o link para a variavel
echo "<meta http-equiv=\"refresh\" content=\"0;url=$endereco\">"; //redireccionar
}
break;
case "add":
$hora = time();
$link = addslashes($_POST['link']);
$query = mysql_query("INSERT INTO link (id, link, time) VALUES (NULL, '$link', '$hora')"); //inserir dados na base de dados
if (!$query) {
echo "Erro na inserção na base de dados.<br />Por favor contacte o administrador";
}
else
{
$ver = mysql_query("SELECT * FROM link WHERE link = '$link' AND time = '$hora'"); //verificar o id atribuido pelo mysql
$num = mysql_num_rows($ver);
if ($num < 1) {
echo "Erro! Por favor tente novamente.";
}
else
{
$id = mysql_result($ver, 0, "id");
echo "Endereço inserido com sucesso!<br />Pode testar o seu link aqui: <a href=\"$pagina?action=redir&id=$id\">Link</a>"; //ligacao para o link recem-criado
}
}
break;
default: //form de insercao
echo "<form action=\"link.php?action=add\" method=\"post\" />
Insira o endereço a redireccionar:<br />
<input type=\"text\" name=\"link\" value=\"http://\"><br />
<input type=\"submit\" value=\"Submeter\" />";

}
?>

Fica aqui a query para o mysql:

CREATE TABLE `link` (
  `id` int(12) NOT NULL auto_increment,
  `link` text collate latin1_general_ci NOT NULL,
  `time` int(64) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=11 ;

Espero que curtam 😉

BUG detectado:

se o endereço não começar por http:// , ele vai dar erro, vou tentar resolver o assunto

Proud LEIC-A@IST student!

Posted

O sistema parece-me porreiro, no entanto, faltam-lhe alguns comentários para compreenção e alguma organização do código para melhor leitura. 😉

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

O sistema parece-me porreiro, no entanto, faltam-lhe alguns comentários para compreenção

done

Proud LEIC-A@IST student!

Posted

Ele refere-se por exemplo, à formatação do código, podia estar bem melhor, tudo organizado por níveis, etc... 😉

<3 life

Posted

Então começa a fazer tudo certinho, pois vai ajudar-te a ti próprio e aos outros a entender o código.

Se queres uma boa linguagem para aprender isso tentar escrever código em Python pois obriga-te a usar os níveis de formatação correctos. 😉

<3 life

Posted

Python é que não 😧 😉

Sim, convem sempre organizar o nosso código. Para perceber o cód do karva tive quase que o copiar po notepad e organizá-lo eu 😕

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

BUG detectado:

se o endereço não começar por http:// , ele vai dar erro, vou tentar resolver o assunto

Isso é fácil de resolver:
# trocar o echo da tag meta por:
if(!headers_sent()) header("Location: $endereco");
else echo '<script type="text/javascript">
window.location = "$endereco"
</script>
<noscript><meta http-equiv="refresh" content="0;url=$endereco"></noscript>';

Desculpem o off-topic, mas Python não porquê? 🙂

Porque tás a tentar-me a ir aprender python quando eu devia tar a fazer o trab de mat para entregar amnh 😉

nota, trocar o http://www.google.com/ por $pagina :\

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

"NÃO,  NÃO SOU O ÚNICOOOOOOOOOOOO!" 😄

[me=djthyrax]<- chanfrado da mona. completamente.[/me]

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

Teste de mat amanhã e tou aqui por isso não se queixem, não estudei para este teste 🙂

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Posted

Teste de mat amanhã e tou aqui por isso não se queixem, não estudei para este teste 🙂

mas mat nao e assim mt de estudar...

Proud LEIC-A@IST student!

Posted

Teste de mat amanhã e tou aqui por isso não se queixem, não estudei para este teste 🙂

Pois, mas eu nnc estudo para os testes e safo-me. O trabalho tenho mesmo que o fazer.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

Já agora parece-me que tens ai uma falha de segurança 🙂

Não podes pegar no ID passado no GET e ler algo directamente da base de dados. Com essa falha qq pessoa tem acesso a tudo o que lá tens e pior, podem fazer update e apagar coisas!

Posted

Já agora parece-me que tens ai uma falha de segurança 🙂

Não podes pegar no ID passado no GET e ler algo directamente da base de dados. Com essa falha qq pessoa tem acesso a tudo o que lá tens e pior, podem fazer update e apagar coisas!

sim, mas ainda não chegámos aí 😉

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

  • 4 weeks later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.