Foros del Web » Programando para Internet » PHP »

T_string?¿?¿?¿?¿

Estas en el tema de T_string?¿?¿?¿?¿ en el foro de PHP en Foros del Web. Veran estoy intentando crear un registro de usuarios y me da error, tengo este codigo: <?php $link=mysql_connect("","",""); function quitar($mensaje) { $mensaje = str_replace("<","<",$mensaje); $mensaje = ...
  #1 (permalink)  
Antiguo 22/03/2007, 12:39
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 2 meses
Puntos: 5
Pregunta T_string?¿?¿?¿?¿

Veran estoy intentando crear un registro de usuarios y me da error, tengo este codigo:
<?php
$link=mysql_connect("","","");
function quitar($mensaje)
{
$mensaje = str_replace("<","<",$mensaje);
$mensaje = str_replace(">",">",$mensaje);
$mensaje = str_replace("'","'",$mensaje);
$mensaje = str_replace('"','"',$mensaje);
$mensaje = str_replace("\\","\",$mensaje);
return $mensaje;
}

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

el error es que el navegador me dice: Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\apache etc\xampp\htdocs\registrar.php on line 13
  #2 (permalink)  
Antiguo 22/03/2007, 13:18
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 1 mes
Puntos: 4
Re: T_string?¿?¿?¿?¿

El datalle del error esta aqui:
Cita:
Iniciado por juanitTo Ver Mensaje

$mensaje = str_replace("\\","\",$mensaje);
Prueba esto:
Código PHP:
$mensaje str_replace("\\\\","\\",$mensaje); 
Saludos
__________________

  #3 (permalink)  
Antiguo 22/03/2007, 13:24
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años
Puntos: 33
De acuerdo Re: T_string?¿?¿?¿?¿

jejeje se me adelantaron , bueno el uso de $HTT_POST_VARS ya no es recomendable, como por comvención como por seguridad. Mejor usa $_POST

Saludillos
  #4 (permalink)  
Antiguo 22/03/2007, 13:45
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 2 meses
Puntos: 5
Re: T_string?¿?¿?¿?¿

Gracias, se soluciono, pero ahora tengo otros dos problemas, si me los saben solucionar se lo agradeceria mucho:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/z/o/zonachatt/site/registrar.php on line 17
Registro exitoso!
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/z/o/zonachatt/site/registrar.php on line 32

Pone registro exitoso pero en la base de datos pone registros 0. no se que quiere decir mysql_free_result() y mysql_fetch_array(), que hago?
  #5 (permalink)  
Antiguo 22/03/2007, 14:16
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 1 mes
Puntos: 4
Re: T_string?¿?¿?¿?¿

Error tipico, tu select esta mal. agrega el "die" para q puedas ver que problema tiene tu SELECT
Código PHP:
 $sql "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result mysql_query($sql);
 if (!
$result) {
    die(
'Error: ' mysql_error());

Saludos
__________________

  #6 (permalink)  
Antiguo 24/03/2007, 06:15
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 2 meses
Puntos: 5
Re: T_string?¿?¿?¿?¿

Otro error, siento ser tan cansino, pero es que no se nada de php, simplemente sigo los manuales, que puede causar este error:
Parse error: syntax error, unexpected '}' in /www/sites/1/iespana.es/z/o/zonachatt/site/usuarios/registrar.php on line 34
  #7 (permalink)  
Antiguo 24/03/2007, 06:18
 
Fecha de Ingreso: noviembre-2006
Mensajes: 146
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: T_string?¿?¿?¿?¿

Un consejo, tabula el código. Es error de sintaxis, te habrás olvidado cerrar algún if y si pones todo el código del tirón sin tabular es muy difícil verlo a simple vista.
Un saludo
edit: si pones el código completo podremos ayudarte mejor
  #8 (permalink)  
Antiguo 24/03/2007, 06:50
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 2 meses
Puntos: 5
Re: T_string?¿?¿?¿?¿

el codigo completo esta arriba del todo
  #9 (permalink)  
Antiguo 24/03/2007, 06:57
 
Fecha de Ingreso: noviembre-2006
Mensajes: 146
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: T_string?¿?¿?¿?¿

una duda, que quieres que hagan exactamente los str_replace?si el search y el replace es el mismo $mensaje se queda igual...
  #10 (permalink)  
Antiguo 24/03/2007, 07:14
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 2 meses
Puntos: 5
Re: T_string?¿?¿?¿?¿

no lo se, el codigo lo copie de una guia de maestros del web, http://www.maestrosdelweb.com/editorial/phpreusr/ , y lo puse, repito que no se nada de php.
  #11 (permalink)  
Antiguo 24/03/2007, 07:18
 
Fecha de Ingreso: noviembre-2006
Mensajes: 146
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: T_string?¿?¿?¿?¿

Prueba...

Código PHP:
<?php

$link
=mysql_connect("","","");

function 
quitar($mensaje) {
    
$mensaje str_replace("<","<",$mensaje);
    
$mensaje str_replace(">",">",$mensaje);
    
$mensaje str_replace("'","'",$mensaje);
    
$mensaje str_replace('"','"',$mensaje);
    
$mensaje str_replace("\\\\","\\",$mensaje);
    return 
$mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "") {
    
$sql "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
    
$result mysql_query($sql);
    if(
$row mysql_fetch_array($result))
        echo 
"Error, nick escogido por otro usuario";
    else {
        
$sql "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
        
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
        
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
        
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
        
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
        
$sql .= ")";
        
$result=mysql_query($sql);
            if (!
$result)
                die(
'Error: ' mysql_error());  
            else
                echo 
"Registro exitoso!";
    }
    
mysql_free_result($result);
}
else
    echo 
"Debe llenar como minimo los campos de email y password";

mysql_close();

?>
  #12 (permalink)  
Antiguo 24/03/2007, 07:52
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 2 meses
Puntos: 5
Re: T_string?¿?¿?¿?¿

no, no funciona
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 15:17.