Llevo toda la semana peleándome con este problema y tras reducirlo casí al absurdo sigo sin saber cuál es la causa. Os cuento.
Tengo alojada una base de datos en un servidor remoto de pago. Funcionaba hasta que un día me dí cuenta de que no codificaba bien los acentos y las eñes. A su vez algunas de las funciones, como por ejemplo, modificar un registro existente, también dejaron de funcionar.
Así que pensé: primero soluciona lo de las codificaciones y luego veremos el código a ver que pasa.
Lo que cambié fué lo siguiente:
- tanto en la base de datos como en las páginas puse codificación UTF-8
- las páginas web las tenía en XHTML 1.0 Transitional, las pasé a HTML5
- de paso corregí un error que se me escapó de haber puesto la línea de enlace con los estilos fuera de la etiqueta head
No toqué ninguna línea de código.
Tras esto ya no conseguí conectar con el servidor. Siempre me daba error en la línea 1.
Comparé el código php de la nueva página con el de la antigua por si por error había cambiado algo. Iguales.
Ya ni recuerdo la cantidad de pruebas que hice para tratar de detectar el problema.
Al borde de cortarme las venas, decidí volver a poner la antigua y estudiar poco a poco qué podía pasar.
Sorpresa, la antigua funcionaba. ¿Pero si sólo cambié html y codificaciones?
Empecé de cero. Sencillito. Una página index con el formuario de login que con post te lleva a página validación php. No funciona.
Dejo la página de validación pelada. Solo conexión a la base de datos. Tampoco.
Y aparece el odioso mensaje que no pasa de la línea 1:
Fatal error: Call to undefined function phpmysql_connect() in /home/...../...../..../validar1.php on line 1
Aquí el código de la página index.html
Código:
Aquí el código de la página validación1.php<form class="formulario" action="validar1.php" method="post"> <fieldset> <legend>Identifícate </legend> <div class="divform"> <label> Usuario:</label> <input class="cajaform" name="nome_us" type="text" /> </div> <div class="divform"> <label>Password:</label> <input class="cajaform" name="pass_us" type="password" /> </div> <div> <input class="botform" name="iniciar" type="submit" value="Iniciar Sesión" /> </div> </fieldset> </form>
Código:
Tras esto sólo me quedaba pensar dos cosas:<?php mysql_connect('localhost','miusuario','mipass') or die("Error al conectar " . mysql_error()); mysql_select_db('fpgrafic_fcts') or die ("Error al seleccionar la Base de datos: " . mysql_error()); ?>
1) El código php es antiguo y puede estar "deprecated". Entonces ¿por qué sí funciona la página inicial antigua con el mismo código? Creo que no es la razón
2) Te estas equivocando en los datos de conexión. Son los mismos que la antigua.
Así que antes de llamar a mi proveedor y contarle mis quitas me gustaría saber algo para armarme de argumentos. O si es una tontería no hacer el ridículo.
Muchas gracias