base de datos

Buenos dias:

Llevo un buen rato leyendo en el foro pero no encuentro ningun tema parecido al mio. Vereis!!! he creado una pagina web con un formulario para introducir datos en una base de datos, pero cuando quiero que los datos se guarden me sale que no hay conexion a internet. Os mando la página del formulario, el config.php y el insertadatosentabla.php. Os agradezco la solución por anticipado. Muchas muchas gracias.

FORMULARIO

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=iso-8859-1">
<title>Page title</title>
<link rel="stylesheet" href="../estilo-general.css" type="text/css" media="all">
</head>
<body>
<div id="global">
<!--INICIO CODIGO DE CABECERA - NO TOCAR -->
<div id="curva-superior"></div>
<div id="cabecera">
<div id="logotipo">
<a href="../index.html">
<img src="../objetos/logotipo.gif"alt="Haz clic aquí para volver a la página de inicio">
</a>
</div>
</div>
<!--INICIO DE FORMULARIO-->
<div id="formulario">
<form method="post"action="../insertardatosentabla.php">
<input type="text"name="nombre"value="Introduzca su nombre"size="50"maxlength="50"><br />
<input type="text"name="apellido1"value="Introduzca su primer apellido"size="50"maxlength="50"><br />
<input type="text"name="apellido2"value="Introduzca su segundo apellido"size="50"maxlength="50"><br />
<input type="text"name="email"value="Introduzca su email"size="80"maxlength="80"><br />
<input type="Submit"value="Enviar datos"name="Enviar la información al servidor"><br />

</form>
</div>
<div id="curva-inferior"></div>
</body>
</html>

CONFIG.PHP

<?php
//rellena los espacios entre comillas de abajo con los datos que te da
// el servidor al activar la base de datos.
//Este dato de abajo suele ser localhost casi siempre
$server="sql213.arredemo.org";

//Aqui abajo escribe el nombre de la base de datos.
//Si tu servidor tiene cpanel normalmente va primero tu nombre de username,
//por ejemplo:username_nombredelabasededatos
$database="adm_11233155_datosclientes";

// Aquí abajo el nombre de username de la base de datos para acceder a ella.
$db_user="adm_11233155"

//Y ahora la contraseña:
$db_pass="CONTRASEÑA";
?>


INSERTARDATOSENTABLA.PHP

<?php
//leer datos de ususraio y contraseña de la base de datos
include("../config.php");

//conexion con el servidor
mysql_connect($server,$db_user,$db_pass)or die("error1.mysql_error());

//seleccion de Base de Datos
mysql_select_db($database)or die("error2.mysql_error());

mysql_query ("INSERT INTO `adm_11233155_datosclientes`.`CLIENTES` (`NOMBRE`, `APELLIDO1`, `APELLIDO2`, `EMAIL`) VALUES ('$_POST', '$_POST[APELLIDO1]', '$_POST[APELLIDO2]', '$_POST[correo eliminado]') ");
?>
Hola conchacerezo

$server="sql213.arredemo.org";

prueva con eso

$server="localhost";

loa harchivos en php se escriven asi
<?php
include("/home/tu_usuario/public_html/archivo_tal/lo_que_sea_.php");
?>

asi no ../

//leer datos de ususraio y contraseña de la base de datos
include("../config.php");

asi si

include("/tu_archivo/config.php");

creo que tamvien te falta la tabla

mysql_query ("INSERT INTO `adm_11233155_datosclientes`.`CLIENTES` (`NOMBRE`, `APELLIDO1`, `APELLIDO2`, `EMAIL`) VALUES ('$_POST', '$_POST[APELLIDO1]', '$_POST[APELLIDO2]', '$_POST[correo eliminado]') ");
?>

tabla

mysql_query ("INSERT INTO tu_tabla (`NOMBRE`, `APELLIDO1`, `APELLIDO2`, `EMAIL`) VALUES ('$_POST', '$_POST[APELLIDO1]', '$_POST[APELLIDO2]', '$_POST[correo eliminado]') ");
?>

no

<form method="post"action="../insertardatosentabla.php">

mejor asi
<form method="post"action="tu-archivo/insertardatosentabla.php">

ejemplo

formulario.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>formulario</title>
<meta name="robots" content="noindex"/>
<style type="text/css">
/*<=!=[=C=D=A=T=A=[*/
body {
background-color: #808000;
}
div.c1 {text-align: center}
/*]=]=>*/
</style>
</head>
<body>
<div class="c1">
<br />
<form method="post" action="insertar_datos_en_tabla.php">
<input type="text"name="algo1" value=
"algo1" size="80" maxlength=
"500" /><br />
<input type="text"name="algo2" value=
"algo2" size="80" maxlength=
"500" /><br />
<input type="text" name="algo3" value=
"algo3" size="80" maxlength=
"500" /><br />
<textarea rows='6'input type="text" name="algo4" value=
"algo4" size="80" maxlength=
"500" /></textarea><br />
<input type="text" name="algo5" value=
"algo5" size="80" maxlength=
"500" /><br />
<input type="SUBMIT" value="Enviar" name=
"Enviar la informaci&oacute;n al servidor" /><br />
</form>
</div>
</body>
</html>


insertar_datos_en_tabla.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>istr</title>
<meta name="robots" content="noindex"/>
</head>
<body>
<?php echo $_POST[algo1];
?><br />
<?php echo $_POST[algo2];
?><br />
<?php echo $_POST[algo3];
?><br />
<?php echo $_POST[algo4];
?><br />
<?php echo $_POST[algo5] ;
?>
<?php
$bd=@mysql_connect("localhost", "usuario", "contraseña");
if (!$bd) {
echo ("Error, no se pudo conectar con la base de datos en este momento intentelo mas tarde");
exit();
}
$sel=@mysql_select_db("base");
if (!$sel) {
echo("Error, no se puede acceder a la base de datos en este momento, intentalo mas tarde");
exit();
}
@mysql_query ("INSERT INTO tu_tabla (`ago1`, `algo2`, `algo3`, `ago4`, `algo5`) VALUES ('$_POST[algo1]', '$_POST[algo2]', '$_POST[algo3]', '$_POST[algo4]', '$_POST[algo5]')");
?>
</body>
</html>

luego te falta el escript para trer los datos de la base de datos y presentarlos en la web un saludo
Sigue mostrandome "el sitio web no puede mostrar la página", despues de haber hecho todos los cambios que me dijiste. Aún asi muchas gracias por tu interes.
Hola conchacerezo esos escripts en php funcionan asi, si te muestra el sitio web y no la pagina que deseas que te muestre tiene que ser otra cosa la que no te funciona bien normalmente si en la base de datos lo hiciste todo bien los datos de usuario y contaseña ademas de crear una tabla y sus campos son correctos y el script no tiene ningun error ademas de que pusiste un script que te devuelba los campos de la tabla o tablas a la pagina web que deseas sin errores contando que esa pagina tambien la tengas creada en php ejemplo mi_pagina.php etc, tendrias que darnos mas datos ademas de poner la url de tu web porque un script es un script y tiene su sintaxis para que funcione correctamente no tiene nada que ver el script con que te muestre o no una pagina si no tiene ningun error en concreto, tiene que ser otro motivo, puedes hacer una cosa puedes ir a tu hosting mirar tu base de datos y tu tabla campos etc aver si el formulario inserto los datos que envias con el formulario sino tiene nada insertado nunca te enviara nada i no veras la pagina o datos que deseas si todo esta bien entonces sera algo que no esta bien configurado en el escript de vuelta de presentacion de datos en web un saludo
Hola despues de leer esto y repasar mi codigo, la verdad es que sigo hecho un lio
Estoy siguiendo el curso de php y hasta el punto de los formularios va todo bien, al primer formulario, es el que pasa a la pagina siguiente el resultado.
hasta ahí todo bien y php contesta.
Pero llego al final del siguiente, donde se supone que debería agregarse los datos a la tabla de la base de datos y nada, ahí no se agrega nada y no da ningun error.
Pongo el codigo del programa insertardatosentabla.php y a continuación el config.php
Ya perdonareis que insista en el tema pero es que sigo hecho un lio.
un saludo a todos.
insertardatosentabla.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Insertar datos en la tabla</title>
</head>

<body>
<form method="post" action="insertardatosentabla.php">
<input type="text" name="NOMBRE" value="Escribe tu nombre" size="30" maxlength="50"><br/>
<input type="text" name="EMAIL" value="tuemail@correcto" size="30" maxlength="50"><br/>
<input type="text" name="URL" value="http//:www.tudirecciondepagina.web" size="30" maxlength="50"><br/>
<input type="hidden" name="ESTADO" value="Activo"/>
<input type="submit" name="Enviar la información al servidor" value="Botón de envío estandard"><br/>
</form>
<?
// Llamar al config para leer los datos de la base de datos
include ("config.php");
// Conexion con el servidor
mysql_connect($server,$db_user,$db_pass) or die ("error1".mysql_error());
// Selección base de datos
mysql_select_db($database) or die ("error2".mysql_error());
mysql_query("insert into 'u883910172_pruebas'.'USUARIOS'('NOMBRE','EMAIL','URL','ESTADO') values('$_POST','$_POST[correo eliminado]','$_POST','$_POST')");
echo $_POST;
?>

</body>
</html>

Config.php

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>

<body>
<?php
// Rellena los espacios ente comillas de abajo con los datos que te da
// el servidor al activar la base de datos.
// Este dato de abajo suele ser localhost casi siempre:
// En mi caso Host MySQL lo he encontrado abrinedo mysql en el servidor junto a los datos de la base de datos
// Localhost me daba un error.
$server ="mysql.hostinger.es";
// Aqui abajo escribe el nombre de la base de datos.
// Si tu servidor tiene cpanel normalmente va primero tu nombre de username,
// por ejemplo: username_nombredelabasededatos
$database="u883910172_pruebas";
// Aqui abajo el nombre de username de la base de datos para acceder a ella.
$db_user = "u883910172_jose";
// Y ahora la contraseña:
$db_pass = "contraseña";
?>
por si lo quereis ver el enlace del ejercicio es http://www.joseignacio.hol.es/insertardatosentabla.php
y el anterior que si que funciona es http://www.joseignacio.hol.es/mostrardatosenpagina.php
Un saludo y gracias de antemano.



</body>
</html>
@joseteec:

Intenta con esto:

<!DOCTYPE html><!-- Este es el Doctype para HTML5 -->
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Insertar datos en la tabla</title>
  </head>
  <body>
    <form method="post" action="insertardatosentabla.php">
      <input type="text" name="NOMBRE" value="Escribe tu nombre" size="30" maxlength="50"><br/>
      <input type="text" name="EMAIL" value="tuemail@correcto" size="30" maxlength="50"><br/>
      <input type="text" name="URL" value="http//:www.tudirecciondepagina.web" size="30" maxlength="50"><br/>
      <input type="hidden" name="ESTADO" value="Activo"/>
      <input type="submit" name="submitBtn" value="Botón de envío estandard"><br/>
    </form>
    <?php // Siempre utiliza esta forma en lugar de solo <?
      if( isset( $_POST['submitBtn'] ) ) { // Solo si esta presente el botón de envío se hace algo:
        include ("config.php");

        $con = mysql_connect($server,$db_user,$db_pass) or die ("error1".mysql_error());
        if( ! $con ) {
          echo "No se pudo conectar a la base de datos. " . mysql_error();
        }

        if( ! mysql_select_db( $database ) ) {
          echo "No se pudo seleccionar la base de datos ($database). " . mysql_error( $con );
          exit;
        }

        // Los nombres de las columnas no necesitan ir entre comillas, solo los valores (VALUES ('v1', 'v2', 'v3')) y sólo si son cadenas de caracteres.
        // Las comillas que se usan para encerrar el nombre de la base de datos y tablas, en realidad no son comillas, sino que son tildes.
        // Mira la diferencia:
        // correcto -> `
        // incorrecto -> '
        $query = "INSERT INTO u883910172_pruebas.USUARIOS (NOMBRE, EMAIL, URL, ESTADO) VALUES('$_POST[NOMBRE]', '$_POST[EMAIL]', '$_POST[URL]', '$_POST[ESTADO]')";
        $res = mysql_query( $query );

        if( $res !== false ) {
          if( mysql_affected_rows( $con ) > 0 )
            echo "Datos guardados";
          else
            echo "No se pudieron guardar los datos. " . mysql_error( $con );
        } else {
          echo "Falló la inserción de datos: " . mysql_error( $con );
        }
      }
?>
  </body>
</html>

El archivo config.php no necesita código HTML, basta con esto:

<?php
  $server ="mysql.hostinger.es";
  $database="u883910172_pruebas";
  $db_user = "u883910172_jose";
  $db_pass = "contraseña";
?>

Ojalá te funcione :). Ah, lee los comentarios que escribí en el código para que entiendas un par de cosas.
Gracias por la respuesta skaparate, ahora estoy en el trabajo y no la puedo ver detenidamente, luego en casa lo miro despacio y te cuent.
un saludo y muchas gracias.
Gracias me ha funcionado a la primera, aunque no lo he terminado de comprender, cosas de novatos.
En el codigo viejo he cambiado las comillas por tildes e quitado las comillas de los nombres de los campos y he camviado el name del boton y sigue sin funcionar.
El codigo es incorrecto o faltaba de poner alguna parte para que subiera los datos al servidor?
He leido todas tus aclaraciones y es posible que te haga alguna preguntilla, como ya te he dicho antes soy demasiado novato.
El doctype lo tendre en cuenta, lo que pasa que tengo un dreanweaver 8 y la version mas moderne que te deja es la html 4.1 estricta o transicional que tampoco se nunca cual escoges
Un saludo y muchas gracias.
El codigo es incorrecto o faltaba de poner alguna parte para que subiera los datos al servidor?

El código es incorrecto por el problema de las comillas simples, pero aparte de eso no debería tener ningún problema. En realidad si hay otro problema...

PHP es un lenguaje del lado del servidor, por ende, esto se ejecuta antes de que se muestre la página con el código HTML al cliente (el navegador - Firefox, Opera, Safari, Google Chrome, Internet Explorer, etc.). Teniendo esto en cuenta, la primera vez que se ejecuta el script, al menos debería haber aparecido un error diciendo "Undefined Index 'NOMBRE' in ruta/nombre_archivo.php on line XXX", haciendo alusión a que el índice del arreglo $_POST llamado NOMBRE no existe (te aparecería una advertencia por cada índice del arreglo). Esto ocurre porque la primera vez que se ejecuta el scritp, el formulario aún no ha sido enviado al servidor y por ende el arreglo $_POST esta vacío.

Para evitar el error o advertencia anterior es que he agregado el atributo name="submitBtn" al botón submit, así podré saber si se han enviado los datos:

if( isset( $_POST['submitBtn'] ) ) // isset() comprueba si el índice existe o no y devuelve true, en caso de existir y false en caso contrario.

Puede que los errores no se muestren porque el servidor se configuró así. Si tal es el caso, entonces escribe esto al comienzo del script (lo puedes poner incluso antes del DOCTYPE):

<?php
  error_reporting( E_ALL ); // De esta manera mostrará todas las advertencias y errores que ocurran
?>

Ponlo en el primer script para que veas todos los errores (si es que hay).
La linea error_reporting(E_ALL) me ha sido de mucha utilidad me ha ayudado a ver casi todo el problema con el primer codigo, adelanto que ahora me funcionan los dos.
efectivamente sin añadirle el codigo del isset me da el fallo que tu comentabas, lo que pasa que no me lo mostraba.
otro fallo que tenia era que tenia puesto la base de datos y el nombre de la base de datos, primero entre comas y luego con tildes, se lo he quitado todo como lo pones tu en la solucion alternativa que me diste y se ha puesto a funcionar a la primera.
Un saludo y muchas gracias de nuevo.
Por cierto, no se poner el codigo dentro de una caja como lo pones tu a lo mejor tengo que activar algo para que me salga una barra de herramienta o algo asi.
Que bueno que lo has resuelto.

Respecto a las "cajas", utiliza una de estas dos formas:

<?php // Código ?>
Código


No necesitas ninguna barra. Además, los códigos habilitados se pueden ver en el enlace que aparece en el pie del foro, que dice Códigos BB.

Saludos.