Les hago caso y posteo mi primer código con sprintf... Como no, con errores. Echenle un ojo:
Código PHP:
Ver original<?php
if (isset($_SESSION['nivel'])) { $titulo = $_POST['titulo'];
$autor = $_POST['autor'];
$select_cat = $_POST['select_cat'];
$txt_alt = $_POST['txt_alt'];
$nombre_imagen = $_FILES['imagen']['name'];
$nombre_imagen = str_replace(" ", "_", $nombre_imagen); $nombre_imagen = str_replace("?", "_", $nombre_imagen); $nombre_imagen = str_replace("¿", "_", $nombre_imagen); $nombre_imagen = str_replace("-", "_", $nombre_imagen); $nombre_imagen = str_replace("¡", "_", $nombre_imagen);
echo '
<div class="container">
<div class="center-block logig-form">
<div class="panel panel-default">
<div class="panel-heading">Error</div>
<div class="panel-body">
<p>Debes llenar todos los campos, por favor, <a href="javascript:history.back(1)">vuelve</a> e intentelo nuevamente.</p>
</div>
</div>
</div>
</div> <!-- container -->
';
}else{
$carpeta = "img/imagenes/".$select_cat."/"."titulo"."/";
$destino = $carpeta.$_FILES['imagen']['name'];
copy($_FILES['imagen']['tmp_name'],$destino);
echo '<img src="'.$destino.'">';
if ($select_cat==='General') {
$sql = sprintf("INSERT INTO imagenes_general (titulo, autor, txt_alt, ruta, fecha) VALUES ('%s', '%s', '%s', '%s', NOW())",mysql_real_escape_string($titulo),mysql_real_escape_string($autor),mysql_real_escape_string($txt_alt),mysql_real_escape_string($destino)); echo 'yay';
}elseif ($select_cat === 'Distrito_comico') {
$sql = sprintf("INSERT INTO imagenes_distrito_comico (titulo, autor, txt_alt, ruta, fecha) VALUES ('%s', '%s', '%s', '%s', NOW())",mysql_real_escape_string($titulo),mysql_real_escape_string($autor),mysql_real_escape_string($txt_alt),mysql_real_escape_string($destino)); echo $sql;
echo 'Yay';
}else{
};
}
}
?>
El código se ejecuta de maravilla, imprimí los querys y se muestran tal y como debe ser, el problema es que no registra en la base de datos.
Esta es una página diferente a la que comentaba en anteriores mensajes pero me pareció bueno hacer el paralelo. ¿Alguna idea de por qué no escribe en la BD? Cabe resaltar que no bota error, tan solo no escribe.
Gracias :)
Una cosita... Leí por ahí que el uso de sprintf aumenta la seguridad del sitio ¿es esto cierto? ¿qué tiene de diferente a hacerlo de "la manera tradicional"?