Foros del Web » Programando para Internet » PHP »

Problema creando una variable

Estas en el tema de Problema creando una variable en el foro de PHP en Foros del Web. Hola de nuevo. Estoy creando un sistema de registro en el que para finalizar el registro el administrador debe autorizar al registrante mediante un email. ...
  #1 (permalink)  
Antiguo 18/07/2008, 09:54
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Exclamación Problema creando una variable

Hola de nuevo.

Estoy creando un sistema de registro en el que para finalizar el registro el administrador debe autorizar al registrante mediante un email. En el email que se envia al administrador cuando el registrante ha completado el formulario, se da un enlace desde el que si se entra en el, se insertan dentro de la base de datos los datos del registro, y tambien da opción de no aceptar el registro mediante otro enlace. Bien el proceso que he creado va a la perfección, el problema surge al crear el archivo .php con el contenido para crear la base de datos, y el problema es el siguiente:

Código PHP:
$content =  "<? 
include('config.php');
if (
mysql_query("INSERT INTO usuarios (nick,contrasena,email,fecha,nombre,apellidos,dni,telefono,pais,provincia,cpostal,direccion,sexo,boletin,ip,conectado,puntos,n_dia,n_mes,n_ano) 
VALUES ('$nick','$contrasena','$email','$fecha','$nombre','$apellidos','$dni','$telefono','$pais','$provincia','$cpostal','$direccion','$sexo','$boletin','$ip','$fecha','$puntos','$n_dia','$n_mes','$n_ano')
"
)){
echo 
'Se ha insertado la tabla con exito';
}
else{ 
echo 
'no se han podido insertar las tablas';
}

?>";
en teoria está bien, pero claro al poner Comillas( " ) para indicar el contenido de la variable, solo puedo utilizar dentro de ella las comillas ( ' ) y no utilizar de nuevo las ( " ) ya que sino, no incluye eso dentro del contenido de la variable y eso es necesario ya que sino me da un error en la linea 3 de T_string ya que no puedo poner las comillas ( ' ) para indicar el insert into y en la linea 10 al finalizar pasa lo mismo. Alguien sabe de alguna solución? he probado editando el archivo manualmente cuando ya se ha creado sustituyendo las ( ' ) del insert to y del final por las ( " ) y funciona, pero yo no quiero que cada dos por tres que se registre un usuario se tenga que editar manualmente. También he probado con las comillas ( `) y no funciona, indica el "else"

Espero que me puedan ayudar. Un saludo.
  #2 (permalink)  
Antiguo 18/07/2008, 10:13
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: Problema creando una variable

Hola tld32
Pues su es posible tener comillas (") dentro las mismas, lo que tienes que hacer es escapar la comilla asi \":

Salud2
__________________

  #3 (permalink)  
Antiguo 18/07/2008, 10:28
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema creando una variable

Hola gracias por responder gerson, Pero poniendolo como me has indicado me suelta el siguiente error:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\AppServ\www\web\23425.php on line 3

y

Parse error: syntax error, unexpected $end in C:\AppServ\www\web\23425.php on line 12


La página 23425.php es el código que he puesto en el 1er post.

Un saludo.
  #4 (permalink)  
Antiguo 18/07/2008, 10:35
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: Problema creando una variable

Creo ese error es por que solo escapaste una comilla, mas no las otra
Código HTML:
$content =  "<? 
include('config.php');
if (mysql_query(\"INSERT INTO usuarios (nick,contrasena,email,fecha,nombre,apellidos,dni,telefono,pais,provincia,cpostal,direccion,sexo,boletin,ip,conectado,puntos,n_dia,n_mes,n_ano) 
VALUES ('$nick','$contrasena','$email','$fecha','$nombre','$apellidos','$dni','$telefono','$pais','$provincia','$cpostal','$direccion','$sexo','$boletin','$ip','$fecha','$puntos','$n_dia','$n_mes','$n_ano')
\")){
echo 'Se ha insertado la tabla con exito';
}
else{ 
echo 'no se han podido insertar las tablas';
}

?>";
Suerte
__________________

  #5 (permalink)  
Antiguo 18/07/2008, 10:42
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema creando una variable

Nada, sigue dando el mismo problema :S

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\AppServ\www\web\23425.php on line 3

y

Parse error: syntax error, unexpected $end in C:\AppServ\www\web\23425.php on line 12
  #6 (permalink)  
Antiguo 18/07/2008, 12:24
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema creando una variable

Si alguien tiene la solución, porfavor que me ayude.

Un saludo.
  #7 (permalink)  
Antiguo 18/07/2008, 13:26
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: Problema creando una variable

Hola de nuevo tld32
pues diferencia bien en que momento te sale el error al crearlo o al usarlo, pues dudo mucho q sea al momento de crearlo, pues si haces esta prueba en una archivo aparte:
Código:
<?php
$content =  "<? 
include('config.php');
if (mysql_query(\"INSERT INTO usuarios (nick,contrasena,email,fecha,nombre,apellidos,dni,telefono,pais,provincia,cpostal,direccion,sexo,boletin,ip,conectado,puntos,n_dia,n_mes,n_ano) 
VALUES ('\$nick','\$contrasena','\$email','\$fecha','\$nombre','\$apellidos','\$dni','\$telefono','\$pais','\$provincia','\$cpostal','\$direccion','\$sexo','\$boletin','\$ip','\$fecha','\$puntos','\$n_dia','\$n_mes','\$n_ano')
\")){
echo 'Se ha insertado la tabla con exito';
}
else{ 
echo 'no se han podido insertar las tablas';
}

?>";

echo $content;
?>
No te deberia de salir el error q mencionas, y si fuera el caso pues eso seria algun problema de configuracion.

Creo el problema esta al momento de usar la variable.

Suerte
__________________

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:53.