Foros del Web » Programando para Internet » PHP »

un error con formulario de registro

Estas en el tema de un error con formulario de registro en el foro de PHP en Foros del Web. miren tengo esto: <?php // Inicio de sessión session_start(); // Servidor de la Base de Datos $servidorBD="localhost"; // Usuario de la Base de Datos $usuarioBD="admin107026"; ...
  #1 (permalink)  
Antiguo 10/09/2006, 23:40
Avatar de foreneo  
Fecha de Ingreso: mayo-2005
Mensajes: 102
Antigüedad: 18 años, 11 meses
Puntos: 0
un error con formulario de registro

miren tengo esto:

<?php
// Inicio de sessión
session_start();

// Servidor de la Base de Datos
$servidorBD="localhost";
// Usuario de la Base de Datos
$usuarioBD="admin107026";
// Contraseña de la Base de Datos
$passBD="empalme";
// Nombre de la Base de Datos
$nombreBD="db_foroxxx_gratishost_com";
// Conecto con la base de datos
$conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die ("Imposible conectar con la base de datos");
// Selecciono la BBDD
mysql_select_db($nombreBD,$conectar) or die ("Imposible conectar con la base de datos");


function quitar($mensaje)
{
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}

if(trim($_POST["nick"]) != "" && trim($_POST["email"]) != "")
{
$sql = "SELECT id FROM usuarios WHERE nick='".quitar($_POST["nick"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo 'Error, nick escogido por otro usuario
<br>
<a href="formulario.html?'. SID .'">Registro</a>
';
}
else
{
$sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "'".quitar($_POST["nick"])."'";
$sql .= ",md5('".quitar($_POST["password"])."')";
$sql .= ",'".quitar($_POST["nombre"])."'";
$sql .= ",'".quitar($_POST["email"])."'";
$sql .= ")";
mysql_query($sql);
echo 'Registro exitoso!
<br>
<a href="index.php?'. SID .'">Index</a>
';
}
mysql_free_result($result);
}
else
{
echo 'Debe llenar como minimo los campos de email y password
<br>
<a href="formulario.html?'. SID .'">Registro</a>
';
}
mysql_close();
?>



y cuando lo habro me sale este error

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/virtual/sitio107026/www/login/registrar.php on line 29

como lo arreglo]?
__________________
COmo DiJo Un InDIo MeXiCanO: El PueBLo k KiErA SEr LibrE, Lo SeRa
  #2 (permalink)  
Antiguo 11/09/2006, 05:23
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
;)

el error esta aqui:

$mensaje = str_replace("\\\\","\",$mensaje);

prueba asi haber:

$mensaje = str_replace("\\\\","\"",$mensaje);
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 11/09/2006, 05:42
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Cita:
Iniciado por ZiTAL Ver Mensaje
el error esta aqui:

$mensaje = str_replace("\\\\","\",$mensaje);

prueba asi haber:

$mensaje = str_replace("\\\\","\"",$mensaje);
Está cambiando dobles barras por una sola, no por comillas.

Código PHP:
$mensaje str_replace("\\\\","\\",$mensaje); 
Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #4 (permalink)  
Antiguo 11/09/2006, 20:33
Avatar de foreneo  
Fecha de Ingreso: mayo-2005
Mensajes: 102
Antigüedad: 18 años, 11 meses
Puntos: 0
bieeeeeeeen

pues si efectivamente era esa de las barras dobles, pero tengo otro problema miren tengo este codigo en el php del login:

<?php
// Inicializamos las variables
$loginCorrecto = false;
unset($_SESSION['id']);
$nickUsuarioL="";
$emailUsuarioL="";
$nombreUsuarioL="";
//Inicializamos el nº de recargas de la página si no está inicializado
if(!isset($_SESSION['recarga'])){$_SESSION['recarga'] = 0;}
//Inicializamos la variable sid para utilizarla más tarde
$sid = md5(SID);

//Incluimos el script que detecta el navegador y la IP del usuario
include('identificar.inc.php');
//Hayamos la variable que le corresponde al navegador que se está usando
//para luego compararla con la de la base de datos
$identificador = md5(get_full_ip() .'-'. browser_detection());

if(isset($_COOKIE["Acepta"]))// Comprueba si acepta cookies
{
echo 'Acepto cookies, que pasa?!!??<br>';

// Comprueba que existan las cookies de nick y password
if(isset($_COOKIE["usNick"]) && isset($_COOKIE["usPass"]))
{
// Comprueba q haya un usuario en la BD con esos datos
$result = mysql_query("SELECT * FROM usuarios WHERE
nick = '".$_COOKIE["usNick"]."' AND
sid = '".$_COOKIE["usPass"]."' AND
identificador = '".$identificador."'");
if($row = mysql_fetch_array($result))
{
$sql = "Update usuarios Set
sid = '".$sid."',
ultima_visita = NOW()
Where id = '".$row['id']."'";
mysql_query($sql) or die (mysql_error());

// Si es que existe regraba las cookies y registra unas cuantas variables q pueden ser utiles
setcookie("usNick",$_COOKIE["usNick"],time()+7776000);
setcookie("usPass",md5(SID),time()+7776000);

$_SESSION['usNick'] = $_COOKIE["usNick"];
$_SESSION['usPass'] = md5(SID);
$_SESSION['id'] = $row['id'];

$loginCorrecto = true;
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
}
else
{
// Si no existe, destruimos las cookies.
setcookie("usNick","x",time()-3600);
setcookie("usPass","x",time()-3600);
}
mysql_free_result($result);// Libera la consulta
}
}
else // Si es que no acepta cookies
{
// Comprueba si ya ha probado a escribir la cookie y si ya ha probado es que no se aceptan
if (!isset($_COOKIE['Acepta']) && $_SESSION['recarga'] > 1)
{
echo 'No acepto cookies, que pasa?!!??<br>';
}

// Comprueba las variables de nick y password pero esta vez en variables de sesión
if(isset($_SESSION["usNick"]) && isset($_SESSION["usPass"]))
{
// Comprueba q haya un usuario en la BD con esos datos
$result = mysql_query("SELECT * FROM usuarios WHERE
nick = '".$_SESSION["usNick"]."' AND
sid = '".$_SESSION["usPass"]."' AND
identificador = '".$identificador."'");
if($row = mysql_fetch_array($result))
{
$sql = "Update usuarios Set
ultima_visita = NOW()
Where id = '".$row['id']."'";
mysql_query($sql) or die (mysql_error());

// Si es que existe registra unas cuantas variables q pueden ser utiles
$_SESSION['id'] = $row['id'];
$loginCorrecto = true;
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
}
else
{
// Si no existe destruimos las sesiones.
unset($_SESSION['usNick']);
unset($_SESSION['usPass']);
unset($_SESSION['id']);
}
mysql_free_result($result);// Libera la consulta
}
}
// Esto indica que la ya se ha probado a escribir la cookie
$_SESSION['recarga'] = $_SESSION['recarga']+1;
?>


pero cuando me logueo me manda este error:

Warning: Cannot modify header information - headers already sent by (output started at /home/virtual/sitio107026/www/login/login.php:21) in /home/virtual/sitio107026/www/login/login.php on line 40

Warning: Cannot modify header information - headers already sent by (output started at /home/virtual/sitio107026/www/login/login.php:21) in /home/virtual/sitio107026/www/login/login.php on line 41

hay alguna forma de solucionarlo?, por si quieren ver mas el login entren a este link:

http://foroxxx.gratishost.com/login/index.php

gracias
__________________
COmo DiJo Un InDIo MeXiCanO: El PueBLo k KiErA SEr LibrE, Lo SeRa
  #5 (permalink)  
Antiguo 11/09/2006, 23:06
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 21 años, 5 meses
Puntos: 4
debes enviar cabeceras al navegador solo antes de enviar cualquier salida por pantalla
__________________
Blog | Tecnosquad
  #6 (permalink)  
Antiguo 11/09/2006, 23:07
Avatar de foreneo  
Fecha de Ingreso: mayo-2005
Mensajes: 102
Antigüedad: 18 años, 11 meses
Puntos: 0
tons tiene algo que ver con los <HEAD> o algo asi, por que casi no se nada de php
__________________
COmo DiJo Un InDIo MeXiCanO: El PueBLo k KiErA SEr LibrE, Lo SeRa
  #7 (permalink)  
Antiguo 11/09/2006, 23:23
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 21 años, 5 meses
Puntos: 4
generalmente se asocia a las funciones header o setcookie
vi que antes de los setcookie tienes unos echo quizas para probar si alguna condicion se cumple. si ya te funcionan comenta o borra los echo
__________________
Blog | Tecnosquad
  #8 (permalink)  
Antiguo 12/09/2006, 00:24
Avatar de foreneo  
Fecha de Ingreso: mayo-2005
Mensajes: 102
Antigüedad: 18 años, 11 meses
Puntos: 0
es exactamente lo que te iva a decir que hice hace como 20 segundos antes de que escribir el mensaje, se la rifan neta, no se que haria sin ustedes :D
__________________
COmo DiJo Un InDIo MeXiCanO: El PueBLo k KiErA SEr LibrE, Lo SeRa
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 06:40.