For the creation of articles on my website I use a simple form:
<form class="inicio_sesion" enctype="multipart/form-data" action="https://www.laxtore.com/nuevo_post.php" method="post">
<div class="">
<input style="width:100%; max-width:800px; margin: auto" class="col-70" type="text" name="titulo" placeholder="Introduce el título del artículo" value="">
</div>
<div class="">
<select style="width:100%; max-width:800px; margin: auto" class="select" name="creador">
<option name="Egoi" value="Egoi Cantero" selected="">Egoi Cantero</option>
</select>
</div>
<div class="">
<select style="width:100%; max-width:800px; margin: auto" class="select" name="categoria">
<option name="Articulo" value="Articulo" selected="">Articulo</option>
<option name="Analisis" value="Analisis">Análisis</option>
</select>
</div>
<div class="">
<select style="width:100%; max-width:800px; margin: auto" class="select" name="juego">
<option name="ninguno" value="ninguno">Ninguno</option>
<option name="" all_star"___smash_mouth"="" value="" all="" star"="" -="" smash="" mouth"="">"All Star" - Smash Mouth</option>
</select>
</div>
<div class="">
<select style="width:100%; max-width:800px; margin: auto" class="select" name="plataforma">
<option name="XboxOne" value="Xbox One" selected="">Xbox One</option>
<option name="PS4" value="Play Station 4">Play Station 4</option>
</select>
</div>
<div class="">
<input style="width:100%; max-width:800px; margin: auto" class="col-70" type="text" name="meta_descripcion" placeholder="Introduce la metadescripción" value="">
</div>
<div class="">
<input style="width:100%; max-width:800px; margin: auto" class="col-70" type="text" name="etiqueta" placeholder="Introduce las etiquetas" value="">
</div>
<div style="width:100%; max-width:800px; margin: auto" class="botones_crear_hilo">
<button style="background: #5DC21E;" type="button" accesskey="b" data-code="[b]" data-close="[/b]" onclick="getSel('[b]','[/b]');" title="Negrita: [b]texto[/b] (Alt+B)">
<i class="fa fa-bold fa-fw"></i>
</button>
<button style="background: #5DC21E;" type="button" accesskey="i" data-code="[i]" data-close="[/i]" onclick="getSel('[i]','[/i]');" title="Cursiva: [i]texto[/i] (Alt+I)">
<i class="fa fa-italic fa-fw"></i>
</button>
<button style="background: #5DC21E;" type="button" accesskey="u" data-code="[u]" data-close="[/u]" onclick="getSel('[u]','[/u]');" title="Subrayado: [u]texto[/u] (Alt+U)">
<i class="fa fa-underline fa-fw"></i>
</button>
<button style="background: #5DC21E;" type="button" accesskey="q" data-code="[quote]" data-close="[/quote]" onclick="getSel('[quote]','[/quote]');" title="Cita: [quote]texto[/quote] (Alt+Q)">
<i class="fa fa-quote-right fa-fw"></i>
</button>
<button style="background: #5DC21E;" type="button" accesskey="q" data-code="[highlight]" data-close="[/highlight]" onclick="getSel('[highlight]','[/highlight]');" title="Resaltado: [highlight]texto[/highlight] (Alt+Q)">
<i class="fa fa-pencil" aria-hidden="true"></i>
</button>
<button style="background: #5DC21E;" type="button" name="img" accesskey="p" onclick="getSel('[img]','[/img]');" title="Imagen: [img]http://www.ejemplo.com/imagen.jpg[/img] (Alt+P)">
<i class="fa fa-picture-o fa-fw"></i>
</button>
<button style="background: #5DC21E;" type="button" name="url" accesskey="w" onclick="getSel('[url]','[/url]');" title="URL: [url]http://www.ejemplo.com[/url] o [url=http://www.ejemplo.com]texto[/url] (Alt+W)">
<i class="fa fa-link fa-fw"></i>
</button>
<button style="background: #5DC21E;" type="button" name="twitter" accesskey="t" onclick="getSel('[twitter]','[/twitter]');" title="URL de Twitter: [twitter]http://www.ejemplo.com[/twitter]">
<i class="fa fa-twitter" aria-hidden="true"></i>
</button>
<button style="background: #5DC21E;" type="button" name="youtube" accesskey="y" onclick="getSel('[youtube]','[/youtube]');" title="URL de Youtube: [youtube]http://www.ejemplo.com[/youtube]">
<i class="fa fa-youtube-play" aria-hidden="true"></i>
</button>
<button style="background: #5DC21E;" type="button" name="giphy" accesskey="y" onclick="getSel('[giphy]','[/giphy]');" title="Gif: [giphy]http://www.ejemplo.com[/giphy]">
<i class="fa fa-github-alt" aria-hidden="true"></i>
</button>
<button style="background: #5DC21E;" type="button" accesskey="s" data-code="[spoiler]" data-close="[/spoiler]" onclick="getSel('[spoiler]','[/spoiler]');" title="Spoiler: [spoiler]texto[/spoiler]">
<i class="fa fa-list-alt fa-fw"></i>
</button>
<button style="background: #5DC21E;" type="button" name="mention" accesskey="y" onclick="getSel('[mencion]','[/mencion]');" title="Menciona a un usuario: [mencion]usuario[/mencion]">
<span class="fa-fw" style="display: inline-block">@</span>
</button>
</div>
<textarea id="txt1" style="width:100%; max-width:800px; margin: 5px auto; min-height: 800px" name="articulo"></textarea>
<div style="width:100%, border:none;" class="">
<input style="margin:auto" class="fichero" type="file" name="thumb">
</div>
<input type="hidden" name="foto_hidden" value="">
<input class="submit" type="submit" name="enviar" value="Crear nuevo post">
<input class="submit" type="submit" name="previa" value="Vista previa">
<input class="submit" type="submit" name="borrador" value="Guardar borrador">
</form>
And the data I receive:
$creador = isset($_POST['creador']) ? $_POST['creador'] : 'Egoi Cantero';
$categoria = isset($_POST['categoria']) ? $_POST['categoria'] : 'Articulo';
$juego = isset($_POST['juego']) ? $_POST['juego'] : 'Ninguno';
$plataforma = isset($_POST['plataforma']) ? $_POST['plataforma'] : 'Xbox One';
$errores = "";
if (isset($_POST['enviar']) AND $conexion) {
$titulo = trim($_POST['titulo']);
$publicado = $creador;
$categoria = $categoria;
$thumb = $_FILES['thumb']['tmp_name'];
$thumb_db = $_FILES['thumb']['name'];
$etiquetas = $_POST['etiqueta'];
$meta_description = $_POST['meta_descripcion'];
$articulo = $_POST['articulo'];
$articulo = str_replace("|||anuncio|||","<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-9760114271660976\" data-ad-slot=\"6286127442\" data-ad-format=\"auto\"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script>", $articulo);
$articulo = str_replace("|||anuncio2|||","<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-9760114271660976\" data-ad-slot=\"4525103377\" data-ad-format=\"auto\"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script>", $articulo);
$juego_asociado = $juego;
$plataforma = $plataforma;
$hay_ya_foto = false;
//miramos si la foto ya se ha subido, si el hidden de foto guardada tiene un valor es que ya se ha subido
//cogemos el valor de ese input para meterlo en la base de datos
if (empty($thumb_db)) {
$thumb_db = $_POST['foto_hidden'];
$hay_ya_foto = true;
}
$ruta_imagen = 'imagenes/articulos/' . $thumb_db;
if (empty($titulo)) {
$errores .= "El título es obligatorio </br>";
} else {
if (strlen($titulo) > 90) {
$errores .= "El título no puede tener más de 70 caracteres </br>";
}
}
if (empty($publicado)) {
$errores .= "Es obligatorio indicar el autor del artículo </br>";
}
if (empty($meta_description)) {
$errores .= "Es obligatorio indicar la meta-descripción </br>";
} else if (strlen($meta_description) > 150) {
$errores .= "La meta-description no puede superar los 150 caracteres </br>";
}
if (empty($publicado)) {
$errores .= "Por favor introduce etiquetas para catalogar el artículo </br>";
}
if (empty($articulo)) {
$errores .= "El artículo está vacío </br>";
}
if (empty($errores)) {
$articulo = nl2br($articulo);
$statement = $conexion->prepare("INSERT INTO art (plataforma, juego_asociado, titulo, thumb, publicado_por, etiquetas, categoria, articulo, meta_description, borrador) VALUES
('$plataforma','$juego_asociado','$titulo', '$thumb_db', '$publicado', '$etiquetas', '$categoria', '$articulo', '$meta_description', 0)");
$statement->execute();
//si la imagen se recibe por el input hidden, es porque ya se ha subido antes
if (!$hay_ya_foto) {
move_uploaded_file($thumb, $ruta_imagen);
}
header("Location: " . $ruta . "index_admin.php");
}
}
if (isset($_POST['borrador']) AND $conexion) {
$titulo = trim($_POST['titulo']);
$publicado = $creador;
$categoria = $categoria;
$thumb = $_FILES['thumb']['tmp_name'];
$thumb_db = $_FILES['thumb']['name'];
$etiquetas = $_POST['etiqueta'];
$meta_description = $_POST['meta_descripcion'];
$articulo = $_POST['articulo'];
$articulo = str_replace("|||anuncio|||","<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-9760114271660976\" data-ad-slot=\"6286127442\" data-ad-format=\"auto\"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script>", $articulo);
$articulo = str_replace("|||anuncio2|||","<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-9760114271660976\" data-ad-slot=\"4525103377\" data-ad-format=\"auto\"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script>", $articulo);
$juego_asociado = $juego;
$plataforma = $plataforma;
$hay_ya_foto = false;
//miramos si la foto ya se ha subido, si el hidden de foto guardada tiene un valor es que ya se ha subido
//cogemos el valor de ese input para meterlo en la base de datos
if (empty($thumb_db)) {
$thumb_db = $_POST['foto_hidden'];
$hay_ya_foto = true;
}
$ruta_imagen = 'imagenes/articulos/' . $thumb_db;
if (empty($titulo)) {
$errores .= "El título es obligatorio </br>";
} else {
if (strlen($titulo) > 90) {
$errores .= "El título no puede tener más de 70 caracteres </br>";
}
}
if (empty($publicado)) {
$errores .= "Es obligatorio indicar el autor del artículo </br>";
}
if (empty($meta_description)) {
$errores .= "Es obligatorio indicar la meta-descripción </br>";
} else if (strlen($meta_description) > 150) {
$errores .= "La meta-description no puede superar los 150 caracteres </br>";
}
if (empty($publicado)) {
$errores .= "Por favor introduce etiquetas para catalogar el artículo </br>";
}
if (empty($articulo)) {
$errores .= "El artículo está vacío </br>";
}
if (empty($errores)) {
$articulo = nl2br($articulo);
$statement = $conexion->prepare("INSERT INTO art (plataforma, juego_asociado, titulo, thumb, publicado_por, etiquetas, categoria, articulo, meta_description, borrador) VALUES
('$plataforma','$juego_asociado','$titulo', '$thumb_db', '$publicado', '$etiquetas', '$categoria', '$articulo', '$meta_description', 1)");
$statement->execute();
//si la imagen se recibe por el input hidden, es porque ya se ha subido antes
if (!$hay_ya_foto) {
move_uploaded_file($thumb, $ruta_imagen);
}
header("Location: " . $ruta . "index_admin.php");
}
}
if (isset($_POST['previa']) AND $conexion) {
$titulo = trim($_POST['titulo']);
$publicado = $creador;
$categoria = $categoria;
$thumb = $_FILES['thumb']['tmp_name'];
$thumb_db = $_FILES['thumb']['name'];
$etiquetas = $_POST['etiqueta'];
$meta_description = $_POST['meta_descripcion'];
$articulo = $_POST['articulo'];
$articulo = a_html($articulo);
$articulo = para_vista_previa($articulo);
$juego_asociado = $juego;
$plataforma = $plataforma;
$articulo = str_replace("|||anuncio|||","<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-9760114271660976\" data-ad-slot=\"6286127442\" data-ad-format=\"auto\"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script>", $articulo);
$articulo = str_replace("|||anuncio2|||","<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-9760114271660976\" data-ad-slot=\"4525103377\" data-ad-format=\"auto\"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script>", $articulo);
$hay_ya_foto = false;
//miramos si la foto ya se ha subido, si el hidden de foto guardada tiene un valor es que ya se ha subido
//cogemos el valor de ese input para meterlo en la base de datos
if (empty($thumb_db)) {
$thumb_db = $_POST['foto_hidden'];
$hay_ya_foto = true;
}
$ruta_imagen = 'imagenes/articulos/' . $thumb_db;
move_uploaded_file($thumb, $ruta_imagen);
if (empty($titulo)) {
$errores .= "El título es obligatorio </br>";
} else {
if (strlen($titulo) > 90) {
$errores .= "El título no puede tener más de 70 caracteres </br>";
}
}
if (empty($publicado)) {
$errores .= "Es obligatorio indicar el autor del artículo </br>";
}
if (empty($meta_description)) {
$errores .= "Es obligatorio indicar la meta-descripción </br>";
} else if (strlen($meta_description) > 150) {
$errores .= "La meta-description no puede superar los 150 caracteres </br>";
}
if (empty($publicado)) {
$errores .= "Por favor introduce etiquetas para catalogar el artículo </br>";
}
if (empty($articulo)) {
$errores .= "El artículo está vacío </br>";
}
$articulo_previa = "<p>" . $articulo . "</p>";
}
I do not understand the reason why in local it does work for me but on the web I do not enter the records in the database.