Links rotos con PHP y MySQL

Buenos días expertos. Haber si me podéis ayudar con un pequeño problema que me ha surgido.
Estoy haciendo una página con links, y quisiera poner un vinculo por si algún link no funciona, me informaran de ello. Llevo ya buena parte del código echo pero no me añade nada.
Aquí te paso el código de la primera página, Links.php:
<?
include ("../config.php");
$myconn = mysql_connect($servidor,$usuario,$password);
mysql_select_db($BD,$myconn);
$result = mysql_query("SELECT link,descripcion FROM links",$myconn);
echo "<table width=\"100%\" bgColor=\"#ffffff\" border=\"0\" background=\"../Imagenes/STARS.jpg\">";
while ($row = mysql_fetch_row($result)){
$linkroto = $row[0];
echo "<tr background=\"../Imagenes/STARS.jpg\"><td><div align=\"left\"><font face=\"Comic Sans MS\"><a href=\"$row[0]\">$row[0]</a></font></div></td><td><a href=\"linkroto.php\">link roto</a></td></tr>";
echo "<tr background=\"../Imagenes/STARS.jpg\"><td><font face=\"Comic Sans MS\" size=3> $row[1]</font></td></tr>";
}
echo "</table>";
?>
Y este otro es el código de la página linkroto.php:
<?
include ("../config.php");
$myconn = mysql_connect($servidor,$usuario,$password);
mysql_select_db($BD,$myconn);
$linkroto =$HTTP_POST_VARS["$linkroto"];
$sql = "INSERT INTO linkroto (linkroto)";
$sql .= "VALUES ('$linkroto')";
$result = mysql_query($sql);
echo "¡Gracias! Por avisar. \n";
?>
Por si lo necesitas, la tabla de SQL solo tiene dos campos ID y linkroto.
Un saludo, y gracias.

1 respuesta

Respuesta
1
Tu problema se enfoca a la percepción que tienes sobre las variables de ambiente de servidor. Las variables que se pasan a través de formularios se almacenan en $HTTP_[METODO]_VARS donde MÉTODO es el método (valga la rebuznancia) por el que pasas las variables desde el Formulario, si es por POST o por GET, para tu caso tu script no funciona porque no estas pasando ninguna variable a esa página, para pasarla por el método GET también se aceptan por la URL, por lo tanto tendrías que modificar tu script para pasar la variable que llevará el link que está roto, para ello tendrías que modificar el Links.php en la línea:
echo "<tr background=\"../Imagenes/STARS.jpg\"><td><div align=\"left\"><font face=\"Comic Sans MS\"><a href=\"$row[0]\">$row[0]</a></font></div></td><td><a href=\"linkroto.php\">link roto</a></td></tr>";
por:
echo "<tr background=\"../Imagenes/STARS.jpg\"><td><div align=\"left\"><font face=\"Comic Sans MS\"><a href=\"$row[0]\">$row[0]</a></font></div></td><td><a href=\"linkroto.php?linkroto=".$row[0]."\">link roto</a></td></tr>";
y en linkroto.php modificar:
$linkroto =$HTTP_POST_VARS["$linkroto"];
por:
$linkroto =$HTTP_GET_VARS["linkroto"];
y:
$sql = "INSERT INTO linkroto (linkroto)";
por:
$sql = "INSERT INTO linkroto ($linkroto)";
Debido a que haces una referencia a una cadena "linkroto" en vez de una variable $linkroto.
Checate el manual de PHP para referencia sobre como emplear variables y funciones y en que casos aplicar cual de ellas.
Saludos !
Atentamente: Mack
----------------------------------------
Al principio era UNIX, y UNIX habló y dijo:
"Hello World\n",
no dijo: "Hello New Jersey\n",
ni "Hello USA\n"...
Si respondí a tu pregunta, puntúala.
Si no, puedes seguirme preguntando para aclarar cualquier otra duda.
Saludos !
-------------------------------------------------
Atentamente. Mack
Live free or Die ... UNIX

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas