¿Como solucionar el problema con el parseador de PHP que me da un error de Sintaxis?

Wocker

Épsilon
Social Media
Verificación en dos pasos desactivada
Desde
31 May 2011
Mensajes
923
Hola Beta, me encuentro haciendo un par de paginas webs y estoy teniendo el problema de que intento crear un formulario en el cual una persona introduzca su email y sea guardado en una base de datos MySql, pero con el código que lo estoy haciendo me da un error de sintaxis, a continuación les adjunto el código para ver si me pueden hechar una mano :) :
Index.html
HTML:
<section><form action="/scripts/send.php" method=”post” name=”correo”><label for=”correo”><h2>Introduce tu Email y te mantendremos informado:</h2></label><input type=”email” name=”correo” id=”correo” autofocus required=”required”/><input type="submit" value="Enviar"/></form></section>
Connect.php
PHP:
<?php$hostname="localhost";$username="prueba";$password="prueba";$dbname="prueba";?>
Send.php
PHP:
<?php
include("/scripts/connect.php");
if (ISSET($_POST['email']) && !empty($_POST['email']) &&
$connect = mysql_connect($hostname,$username,$password) or die("Hubo un problema a conectarse a nuestra base de datos, intentelo mas tarde")
mysql_select_db($bdname,$connect) or die("Hubo un problema al conectarse con nuestra base de datos, intentelo mas tarde");
mysql_query("INSERTO INTO suscriptores (Emaill) VALUES ('$_POST[email]')",$connect;
echo <meta http-equiv="refresh" content="0; url=http://localhost/gracias">;
}else{
    echo "Hubo un problema al conectarse con nuestra base de datos, intentelo mas tarde");
}
?>
Saludos y muchas gracias de antemano por su ayuda.
 
Última edición:

Lordwar

Beta
Programador
Verificación en dos pasos desactivada
Desde
2 Ene 2012
Mensajes
62
Edad
31
Tu archivo conect seria esto:

PHP:
<?php
$hostname = "localhost";
$username = "prueba";
$password = "prueba";
$dbname = "prueba";

$database = @mysql_connect ($hostname, $username, $password);
@mysql_select_db ($dbname);
if (!$database) {
   echo "Error, no se pudo conectar al servidor, porfavor intentelo nuevamente";
   exit;
}
?>
Tu archivo PHP que recibe el codigo seria el siguiente:

PHP:
$email = $_POST['email'];

if($email){
	require_once("/scripts/connect.php");
	$r = mysql_query("SELECT email FROM  suscriptores WHERE email = '$email'", $database);
	if(mysql_num_rows($r))
		echo 'El email ya se encuentra registrado';
	else if(mysql_query("INSERTO INTO suscriptores (Email) VALUES ('$email')", $database))
		echo '<meta http-equiv="refresh" content="0; url=http://localhost/gracias"';
	else
		echo 'Los datos no pudieron ser guardados';
}
Mi recomendación es que trates de usar algun editor web como dreamweaver ya que habian muchos errores de sintaxis.

Lo otro simplifique varias cosas, si vas a tener un conect simplemente dejalo en un archivo aparte y recién cuando la validación de datos sea correcta lo llamas, no antes solo por seguridad.

Le agregue una consulta por si el correo ya existe en la base de datos, ahi lo puedes pulir a gusto.

Finalmente al email agregale una función que valide que efectivamente sea un email o se llenara de basura tu base de datos

Espero haber sido de ayuda

Saludos!!
 

Wocker

Épsilon
Social Media
Verificación en dos pasos desactivada
Desde
31 May 2011
Mensajes
923
Tu archivo conect seria esto:

PHP:
<?php
$hostname = "localhost";
$username = "prueba";
$password = "prueba";
$dbname = "prueba";

$database = @mysql_connect ($hostname, $username, $password);
@mysql_select_db ($dbname);
if (!$database) {
   echo "Error, no se pudo conectar al servidor, porfavor intentelo nuevamente";
   exit;
}
?>
Tu archivo PHP que recibe el codigo seria el siguiente:

PHP:
$email = $_POST['email'];

if($email){
    require_once("/scripts/connect.php");
    $r = mysql_query("SELECT email FROM  suscriptores WHERE email = '$email'", $database);
    if(mysql_num_rows($r))
        echo 'El email ya se encuentra registrado';
    else if(mysql_query("INSERTO INTO suscriptores (Email) VALUES ('$email')", $database))
        echo '<meta http-equiv="refresh" content="0; url=http://localhost/gracias"';
    else
        echo 'Los datos no pudieron ser guardados';
}
Mi recomendación es que trates de usar algun editor web como dreamweaver ya que habian muchos errores de sintaxis.

Lo otro simplifique varias cosas, si vas a tener un conect simplemente dejalo en un archivo aparte y recién cuando la validación de datos sea correcta lo llamas, no antes solo por seguridad.

Le agregue una consulta por si el correo ya existe en la base de datos, ahi lo puedes pulir a gusto.

Finalmente al email agregale una función que valide que efectivamente sea un email o se llenara de basura tu base de datos

Espero haber sido de ayuda

Saludos!!
Hola, ante todo muchisimas gracias por la ayuda que me has dado, la cual me ha servido bastante. Estuve probando el codigo que me diste y al momento de ingresar el email me manda a la pagina de send.php y esta queda en blanco sin redireccionar a ningun lado.
 

JarC

No recomendado
Programador
Verificación en dos pasos desactivada
Desde
10 Feb 2011
Mensajes
231
Edad
31
La pagina que asi porque tu codigo php solo cumple la funcion de guardar, te dejo el codigo sencillo q te arroja un mensaje q guardo bn y te devuelve a tu formulario para ingresar otro dato

echo "<script language=javascript>alert('se guardo correctamente'); location.href='tuformulario.html'; </script>";
 

jpmaster

Gamma
Programador
Verificación en dos pasos desactivada
Desde
22 Jun 2011
Mensajes
439
tambien puedes hacerlo con header

PHP:
$email = $_POST['email'];

if($email){
    require_once("/scripts/connect.php");
    $r = mysql_query("SELECT email FROM  suscriptores WHERE email = '$email'", $database);
    if(mysql_num_rows($r)){
        echo 'El email ya se encuentra registrado';
   } else if(mysql_query("INSERTO INTO suscriptores (Email) VALUES ('$email')", $database)){
        header("Location: http://localhost/gracias.html");
    }else{
        echo 'Los datos no pudieron ser guardados';
    }
}else{
echo 'no estas recogiendo email';
}
 

shadowhck

Lambda
Programador
Verificación en dos pasos desactivada
Desde
18 Ago 2009
Mensajes
2.780
Veo que ya te ayudaron, y mi recomendacion es que no utilices DreamWeaver, utiliza mejor Notepad++ y su coloreo de sintaxis, lo que yo digo que fue el error:

Mala estructura. Colocaste <?php$var // Pegados.

Si estructuras bien el codigo no tendras problemas de sintaxis y ademas que sera mas comprensible a la hora de querer hacer cambios:
PHP:
<?php
// Comentario
if ( $var ) {
    echo "La variable es correcta.';
} else {
    echo 'La variable es incorrecta.';
}

// Y es muy diferente que poner:

if ($var){echo "La variable es correcta.';}else{echo 'La variable es incorrecta.';}

?>
 

Arriba