Foros del Web » Programando para Internet » PHP »

Crear short url para enviar por mail

Estas en el tema de Crear short url para enviar por mail en el foro de PHP en Foros del Web. Hola No soy experto en PHP y tengo este pequeño problema que tal vez puedan ayudarme a solucionar. Necesito crear una url corta y enviarla ...
  #1 (permalink)  
Antiguo 08/06/2011, 15:44
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Crear short url para enviar por mail

Hola

No soy experto en PHP y tengo este pequeño problema que tal vez puedan ayudarme a solucionar.

Necesito crear una url corta y enviarla en el body del mail

Encontre en este sitio (no es necesario registrarse) que crea la url corta

http://to.ly/api.php?longurl=http://www.forosdelweb.com/f18/

Si copian y pegan el link en su navegador van a ver que devuelve en forma de texto la url corta.

Ahora mi problema es:

Yo necesito "get" esa url corta y luego poder agregarla al body del mail que se envia

ejemplo:

$sitio = "http://to.ly/api.php?longurl=http://www.forosdelweb.com/f18/";


$texto="Hola<br><br>Ingresa en el siguiente enlace<br>";
$texto.="<a href='<$sitio;'>Click Aqui</a><br>";

sendHTMLmail($mailenvia,$email,'Para ingresar',$texto);

Mi problema es que no me crea el "link" o sea.. se recibe por mail bien pero al hacer click en el link en realidad lo que muestra es el texto con la url corta y no "redirecciona" al sitio como deberia

Espero haberme explicado
Gracias por la ayuda que puedan prestarme

Saludos
  #2 (permalink)  
Antiguo 08/06/2011, 15:56
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 14 años, 8 meses
Puntos: 336
Respuesta: Crear short url para enviar por mail

a mi si me resultó, puse esto que tiene una variable get:

http;//to.ly/api.php?longurl=http://www.forosdelweb.com/f18/?x=1

y me entregó esto:

http://to.ly/aDfS

y si entro ahí si incluye la variable get

por otro lado en cuanto a tu código, esta mal, intenta así:

$texto.="<a href='$sitio'>Clic aqui</a><br>";
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 08/06/2011, 16:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años, 6 meses
Puntos: 2135
Respuesta: Crear short url para enviar por mail

Creo que lo que te falta como tal es hacer el request HTTP, lee lo siguiente:

http://www.forosdelweb.com/f18/aport...equest-724214/
  #4 (permalink)  
Antiguo 09/06/2011, 05:30
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Crear url corta para enviar por email

Hola
No soy experto en PHP.
Necesito crear un url corta que se pueda enviar por email.

Encontre un sitio que permite crear url cortas sin necesidad de estar registrados.

Ejemplo:

pueden copiar este link en el explorer

http://to.ly/api.php?longurl=http://www.forosdelweb.com/f18/

y veran que se devuelve la url corta en forma de texto

Lo que intente hacer fue algo asi:

$mensaje = "http://to.ly/api.php?longurl=http://www.forosdelweb.com/f18/";

$texto="Hola";
$texto.="<a href='<$mensaje;'>Click para ingresar</a>";

sendHTMLmail($mailenvia,$email,'Ingresar',$texto);


Esto se envia por mail y se recibe pero el "link" que se muestra en el mail al hacer click en el va y muestra el texto de la url corta y no redirecciona al sitio que yo quiero que vaya.

Espero haberme explicado.

Desde ya gracias por la atención.

Saludos
  #5 (permalink)  
Antiguo 09/06/2011, 06:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 6 meses
Puntos: 1517
Respuesta: Crear url corta para enviar por email

Algo así
Código PHP:
Ver original
  1. <?php
  2. $url = 'http://to.ly/create.php';
  3. $body = 'url=http://forosdelweb.com';
  4. $c = curl_init($url);
  5. curl_setopt($c, CURLOPT_POST, true);
  6. curl_setopt($c, CURLOPT_POSTFIELDS, $body);
  7. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  8. $page = curl_exec($c);
  9.  
  10. $doc = @DOMDocument::loadHTML($page);
  11. $xpath = new DOMXPath($doc);
  12. echo $xpath->query('//div[@style="margin-top: 20px;"]/a')
  13.     ->item(0)
  14.     ->firstChild
  15.     ->nodeValue;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 09/06/2011, 06:14
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Crear url corta para enviar por email

Gracias por la respuesta.
Me da un error en la linea 11

<?php
$url = 'http://to.ly/create.php';
$body = 'url=http://forosdelweb.com';
$c = curl_init($url);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $body);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($c);
curl_close($c);
*
$doc = @DOMDocument::loadHTML($page);
$xpath = new DOMXPath($doc);
echo $xpath->query('//div[@style="margin-top: 20px;"]/a')
* * ->item(0)
* * ->firstChild
* * ->nodeValue;
* *
?>

Parse error: syntax error, unexpected T_VARIABLE in /home/tttt/public_html/urlcorta.php on line 11
  #7 (permalink)  
Antiguo 09/06/2011, 06:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 6 meses
Puntos: 1517
Respuesta: Crear url corta para enviar por email

¿Y esos * de donde salen?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 09/06/2011, 06:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 14 años, 10 meses
Puntos: 845
Respuesta: Crear url corta para enviar por email

Que tal mireley,

to.ly tiene un API con ejemplos de uso, lo has visto ?, te dejo el link.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #9 (permalink)  
Antiguo 09/06/2011, 06:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 6 meses
Puntos: 1517
Respuesta: Crear url corta para enviar por email

Yo no lo vi , y se me ocurrió lo del API y como me concentré en otra cosa se me olvidó buscar por ahí
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 09/06/2011, 06:33
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 14 años, 10 meses
Puntos: 845
Respuesta: Crear url corta para enviar por email

Esta en la pagina principal, aunque podrían resaltar algo mas el link, algo interesante es que tienen soporte para JSONP.
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 09/06/2011, 06:56
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Crear url corta para enviar por email

abimaelrc

esos ** los puso el foro cuando hice el copy & paste .. en realidad son espacios en blanco

masterpuppet
exacto.. de ahi saque la info pero por lo que creo no tengo habilitado el curl ya que copiando el ejemplo de tot.ly me da este mensaje de error

Fatal error: Call to undefined function: curl_init() in /home/xxxx/public_html/urlcorta1.php on line 5

gracias
  #12 (permalink)  
Antiguo 09/06/2011, 07:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 6 meses
Puntos: 1517
Respuesta: Crear url corta para enviar por email

Pasa por el área de aportes para que veas un tema que te va a ayudar a desenvolverte con curl.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #13 (permalink)  
Antiguo 09/06/2011, 07:03
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 14 años, 10 meses
Puntos: 845
Respuesta: Crear url corta para enviar por email

En ese caso tienes dos opciones, solicitar al hosting que te habilite CURL o en el caso de que esto no pueda ser, utilizar(si confías en el servicio) JSONP.
__________________
http://es.phptherightway.com/
thats us riders :)
  #14 (permalink)  
Antiguo 09/06/2011, 07:22
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Crear url corta para enviar por email

Gracias Abimael

Masterpuppet ... jeje.. ahora mi problema es..

como "armo" ese jquerry?

puse eso

<html>
<head>
</head>
<body>
<SCRIPT LANGUAGE="JAVASCRIPT" TYPE="text/javascript">

function CompressURL(url,success)
{

var link = 'http://to.ly/api.php?json=1&longurl=' + encodeURIComponent(url) + '&callback=?';

$.getJSON(link, function(data){
success && success(data.shorturl);
});



CompressURL("http://www.twitter.com/jonasl", function(shorturl) {

alert(shorturl);

});
</script>

</body>
</html>

pero obviamente no creo que sea asi verdad?
gracias y disculpas por tanta pregunta
  #15 (permalink)  
Antiguo 09/06/2011, 07:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 6 meses
Puntos: 1517
Respuesta: Crear url corta para enviar por email

En ese ejemplo usan la librería jquery.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 09/06/2011, 08:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años, 6 meses
Puntos: 2135
Respuesta: Crear short url para enviar por mail

Temas unidos, por favor NO dupliques temas.

Etiquetas: corta, email, mail, url
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 06:06.