Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vitor Ferrari

[Resolvido] Gerar Nomes aleatórios.

Recommended Posts

Minha dúvida é a seguinte...

Criei um sistema simples de encurtar URL,

é exatamente como um sistema de cadastro mais tem um pequeno problema...

Eu gostaria que quando o usuário encurtasse uma url ela gerasse um nome aleatório ;

Ex: http://localhost/AdOSf5f1 entenderam?

no meu caso ela simplesmente faz um cadastro no banco de dados, gera um id e url original;

e na página de redirecionar eu uso assim: link.php?url=http://localhost/

Caso vocês não tenham entendido fala ai no post;

Compartilhar este post


Link para o post
Compartilhar em outros sites

nunca crie nomes aleatórios engraçado kkkkkkkkkk,

 

Será que isso rola?

$tamanho = mt_rand(5,9);
$all_str = "abcdefghijlkmnopqrstuvxyzwABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$nome = "";
for ($i = 0;$i <= $tamanho;$i++){
  $nome .= $all_str[mt_rand(0,61)];
}
echo $nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara ficou perfeito o seu código de gerar um nomes aleatórios,

coloquei ele em uma hiddenField fiel no seguinte modo:

 

<input type="hidden" name="hiddenField" id="hiddenField" value="http://localhost/<?php 
$tamanho = mt_rand(5,9);
$all_str = "abcdefghijlkmnopqrstuvxyzwABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$nome = "";
for ($i = 0;$i <= $tamanho;$i++){
  $nome .= $all_str[mt_rand(0,61)];
}
echo $nome
?>" />

 

Tenho mais uma dúvida, após isso ele esta gerando normalmente no MySql o url encurtado,

na seguinte forma: http://localhost/URL como você me mandou o script

 

agora eu gostaria de saber como eu faço para quando o usuário clicar em Encurtar na próxima tela ele exibir o url encurtado, ou seja ele vai puchar o url do seu script e emprimir na proxima página.

 

Caso precise do código da minha página segue em Spoiler:

 

  Mostrar conteúdo oculto

 

 

Se precisar de mais algo fala ai ;D

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 11/12/2012 at 23:29, Dellacurtais disse:

Para você fazer algo do tipo

 

http://localhost/JasdojAJds, você vai ter de pesquisar sobre urls Amigáveis...

 

tem um artigo bem interessante!

 

Clique aqui

 

Amigo, dei uma olhada no artigo, é até interessante mas eu vou ter que ficar fazendo isso manualmente, o encurtador é instantâneo, você já deve ter visto alguns encurtadores né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mais de qualquer forma se usa "url amigaveis" para que dominio.com.br/kdsadaskda seja redirecionado para o link contido no SQL

 

você faaria algo assim

 

pagina link.php

 

<?php
       $url = $_GET['url'];
if(!empty($url))
{
	$sql = mysql_fetch_array(mysql_query("SELECT..."));
	if(isset($sql['url']) && !empty($sql['url'])) {
		header('Location: '. $sql['url']);
               }else{
                  header('Location: index.php');
               } 
else
{
	header('Location: index.php');
}
?>

 

no arquivo .htaccess coloque

 

RewriteEngine on
RewriteRule    ^([a-zA-Z0-9_]+)$ link.php?url=$1 [L]

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 12/12/2012 at 00:51, Dellacurtais disse:

Sim, mais de qualquer forma se usa "url amigaveis" para que dominio.com.br/kdsadaskda seja redirecionado para o link contido no SQL

 

você faaria algo assim

 

pagina link.php

 

<?php
       $url = $_GET['url'];
if(!empty($url))
{
	$sql = mysql_fetch_array(mysql_query("SELECT..."));
	if(isset($sql['url']) && !empty($sql['url'])) {
		header('Location: '. $sql['url']);
               }else{
                  header('Location: index.php');
               } 
else
{
	header('Location: index.php');
}
?>

 

no arquivo .htaccess coloque

 

RewriteEngine on
RewriteRule    ^([a-zA-Z0-9_]+)$ link.php?url=$1 [L]

 

Poderia explicar melhor o código ? não entendi muito bem..

caso precise da tabela do mysql segue abaixo:

 

-- Estrutura da tabela `url`
--

CREATE TABLE IF NOT EXISTS `url` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `url_original` varchar(500) NOT NULL,
 `url_encurtada` varchar(250) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu vou te dar uma ajudinha ai..

 

Começando :

 

1. Va edite seu arquivo .htaccess

 

e bote ::

#redicionamento by: mk
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule    ^([a-zA-Z0-9_]+)$ link.php?url=$1 [L]
</IfModule>

 

2. Agora crie a pagina link.php

com o codigo

<?php
       $url = $_GET['url'];
	include_once "config.php";
       if($url)
       {
               $sql =mysql_query("SELECT * FROM url WHERE url_encurtada = '$url' ");
       if(mysql_num_rows($sql) == 1){
while($l = mysql_fetch_array($sql)){
               $vai  = $l['url_original'];
               }
			echo '<script>location.href="'.$vai.'";</script>';   
}
else{
echo "Nao Achada !";
}
}
else
{
//ele nao tem uma url ex localhost/link.php
echo '<script>location.href="index.php";</script>';
}
?>

 

Bom assim ele ja ira redicionar se ex: na bd tiver url_original abc

e você for localhost/abc ele ira se redicionar para url_encurtada

 

Simples agora você so faz a pagina para registrar na bd essas URL's

 

Tomara que te ajude isso dai

 

"caso tenha algum erro me fale ai"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei usar o código, mesmo assim não pego, quando eu coloco o URL Encurtado ex: http://localhost/WE7H8KpL ele simplesmente da erro 404, imaginei que você tinha trocado o url_encurtado pelo url_original, colocando depois do / o url_original e redirecionando para o url_encurtado, mesmo assim da erro 404.

 

Quando eu coloco http://localhost/link.php?url=r5xZlEHgO ele redireciona normalmente para o url_original (http://www.google.com), mais quando eu coloco

http://localhost/r5xZlEHgO não pega.

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkkkkkkkkkkk.

eu tentei agora a pouco e eu vi isso.

e agora eu ja corigi ali o erro grave .

Sory

 

ah cara ai eh outra historia.

pq ai o você n pode usa o mod_rewrite

tenta a dica ai do cara de baixo

http://forum.imasters.com.br/topic/465559-solucao-para-urls-amigaveis-que-nao-funcionam/

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifica no httpd.conf se o mod_rewrite está ativo!

 

tente algo como

 

e no htacces tenta algo que vi em outr post

retira o if e deixa somente

 

Options FollowSymLinks
RewriteEngine on

RewriteBase /
RewriteRule  ^([a-zA-Z0-9_]+)$ link.php?url=$1 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até agora o script de criar nomes aleatório, o de redirecionar estão pegando

unica coisa que não ta dando é a de usar a URL Amigável, já tentei de tudo mais não ta dando :s

 

Bom...

Oque eu queria neste tópico eu já consegui fazer, que era criar nomes aleatórios, então eu abri um novo tópico sobre URL amigáveis,

http://forum.imasters.com.br/topic/482124-url-amigavel/

 

Moderadores podem fechar este tópico

Por favor respondam no outro;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele quer gerar nome aleatorio para encurtar url, com md5 ele vai gerar um hash de 32 caracteres, que seria enorme para um link...

 

A solução do post #2 não é adequada para esse caso.

 

A aleatoriedade é feita, no entanto não há garantia de strings únicas.

 

Esse tópico pode ser útil:

http://forum.imasters.com.br/topic/427112-criptografar-o-get-no-php/page__p__1686364#entry1686364

 

Outro tópico relacionado:

http://forum.imasters.com.br/topic/469639-qual-o-algoritmo-para-encurtar-url/

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 12/12/2012 at 21:45, Vitor Ferrari disse:

Até agora o script de criar nomes aleatório, o de redirecionar estão pegando

unica coisa que não ta dando é a de usar a URL Amigável, já tentei de tudo mais não ta dando :s

 

Bom...

Oque eu queria neste tópico eu já consegui fazer, que era criar nomes aleatórios, então eu abri um novo tópico sobre URL amigáveis,

http://forum.imasters.com.br/topic/482124-url-amigavel/

 

Moderadores podem colocar RESOLVIDO neste tópico

Por favor respondam no outro;

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 13/12/2012 at 07:18, hinom disse:

A solução do post #2 não é adequada para esse caso.

 

A aleatoriedade é feita, no entanto não há garantia de strings únicas.

 

Esse tópico pode ser útil:

http://forum.imasters.com.br/topic/427112-criptografar-o-get-no-php/page__p__1686364#entry1686364

 

Outro tópico relacionado:

http://forum.imasters.com.br/topic/469639-qual-o-algoritmo-para-encurtar-url/

ele gera tipo

$gerada = $nome // fica tipo xF4aD4t...

ai ele pega essa variavel e registra no sql

to pensando que voce nao pensa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas aí é que esta a graça de da "técnica" de AlphaID: Você não precisa do fominha do UNIQUE pois a função vai transformar um inteiro em uma string e esse inteiro na grande maioria das vezes é o ID da chave-primária que é sequencial e impossível, tanto quanto eu sei, de ser duplicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.