Me he dado cuenta de que el action del form es incorrecto, en lugar de
<?=$_POST['PHP_SELF'];?>
debería ser:
<?=$_SERVER['PHP_SELF'];?>
$_SERVER['PHP_SELF'] contiene el nombre de la propia página, para que se envíe los datos del formulario a ella misma. <?= es equivalente a escribir <?echo .
Tanto $_SERVER como $_POST son variables predefinidas PHP, las cuales contienen datos de sistema la primera y datos de formulario POST la segunda. Echa un vistazo a este artículo para más detalles:
http://www.desarrolloweb.com/articulos/309.php?manual=12<?
if($_POST) {
//si se ha sometido el formulario, $_POST tendrá algún valor, entoces se entra en el if
$sql = $_POST['sql'];
//Si el parámetro Register_globals del php.ini está en On esta línea es prescindible
//Si está en Off sólo podremos acceder a los datos de formulario mediante $_POST['nombre_variable']
//Asignamos $_POST['sql'] a $sql para acortar el nombre de la variable
echo $sql."<br><br>";
//Mostramos el contenido de $sql
$link = mysql_connect("localhost", "root", "");
//conexión a mysql
mysql_select_db("base_de_datos");
//selección de la base de datos
$res = mysql_query($sql,$link);
//ejecución de la orden $sql
if($res) echo "ok<br><br>";
//si se ha ejecutado correctamente ecribimos ok
else echo "no<br>$res<br>";
//si se ha producido algún error (sintaxis) escribimos no
}
?>