Foros del Web » Programando para Internet » PHP »

Sera de variables?

Estas en el tema de Sera de variables? en el foro de PHP en Foros del Web. Hola! Con esto del paso de variables en php no muy le entiendo, tengo un formulario para agregar un comentario a una noticia: FORM NAME="miFormu" ...
  #1 (permalink)  
Antiguo 14/11/2002, 16:58
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Sera de variables?

Hola!

Con esto del paso de variables en php no muy le entiendo, tengo un formulario para agregar un comentario a una noticia:

FORM NAME="miFormu" ACTION="agregacomentario.php" METHOD="post">
<INPUT TYPE="hidden" NAME="id" VALUE="<? echo $id; ?>">
<strong> Nick :
<INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20>
<BR>
Comentario:
<textarea name="comentario" cols="28"></textarea>
<BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Enviar Comentario">
</strong>
</FORM>

El script de agregacomentario.php es el siguiente:

Código PHP:

include("conf.php");


$connection mysql_connect($host$user$pass) or die ("Adios");

mysql_select_db($db) or die ("Unable to select database!");

if(isset(
$_POST['id']) && isset($_POST['nick']) && isset($$_POST['comentario'])) 

if(
$_POST['comentario'] != ""

if(
$_POST['nick'] == ""

$nickNuevo "anonimo"

else 

$nickNuevo $_POST['nick']; 

$resultCom2 mysql_query("SELECT id FROM comentarios ORDER BY id DESC LIMIT 0,1"); 
$rowCom2 mysql_fetch_array($resultCom2); 
$con $rowCom2["id"]; 
mysql_free_result($resultCom2); 

$con++; 
$idNoticia $_POST['id']; 
$comentarioNoticia $_POST['comentario']; 

mysql_query("INSERT INTO comentarios VALUES 
('$con','$idNoticia','$nickNuevo','$comentarioNoticia')"
); 

echo 
"Comentario Enviado Con Exito.<BR>Espere Unos Segundos...<SCRIPT LANGUAGE="javascript">window.location.href = "".getenv('HTTP_REFERER')."";</SCRIPT>"

else 

echo 
"Debe Introducir Un Comentario."

 
mysql_close($connection);



El archivo conf.php es el que tiene las variables de acceso a la base de datos.

El erorr que manda el script es el siguiente:

Parse error: parse error, expecting `','' or `';'' in c:\scripts\ag2\noticias\agregacomentario.php on line 35

Y la linea 35 es:

Código PHP:
echo "Comentario Enviado Con Exito.<BR>Espere Unos Segundos...<SCRIPT LANGUAGE="javascript">window.location.href = "".getenv('HTTP_REFERER')."";</SCRIPT>"
Recupero mal las variables? o cual es el error?

Gracias..
__________________
Equívocos sin importancia
  #2 (permalink)  
Antiguo 14/11/2002, 17:24
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 22 años, 2 meses
Puntos: 0
bueno, el error es algo normal:

Código PHP:
echo "Comentario Enviado Con Exito.<BR>Espere Unos Segundos...<SCRIPT LANGUAGE="javascript">window.location.href = "".getenv('HTTP_REFERER')."";</SCRIPT>"
fijate que estas poniendo comillas dentro del string definido entre comillas, sin escaparlas... cual es la traducción de esto? la linea debería quedar algo asi:

Código PHP:
echo "Comentario Enviado Con Exito.<BR>Espere Unos Segundos...<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"".getenv('HTTP_REFERER')."\";</SCRIPT>"
fijate que a las comillas(") que deben ir dentro del string les debes anteponer una barra invertida (\), de modo que quedan "escapadas" (vas a escuchar este termino muchas veces).

saludos,

chubu
__________________
:pensando:hay algo mal que no anda bien
  #3 (permalink)  
Antiguo 14/11/2002, 21:42
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Kul!

Funciona!

Tnks chubu
__________________
Equívocos sin importancia
  #4 (permalink)  
Antiguo 15/11/2002, 08:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
<comentario> ...

Ese mensaje de "su tal fue ok .. espere y será redireccionado .. ba bla abl" .. Lo muestras en el mismo script (flujo de codigo) q haces el proceso de insertar ese registro en la base de datos ...

Tu forma de actuar Puede ocasinar que si te hacen una recarga de la pagina q muestra ese mensaje (q es la misma q gestiona el insertar el registro en la BD) .. creen registros duplicados .. tantos como hasta q se canse el usuario "malicioso" de recargar la página ...

Usa redirecionamiento automatico al procesar la inserccion del registro en la BD .. y muestra los mensajes de estado del proceso en la página q redirecciones ...

El redirecionamiento automatico lo haces con un:
header ("location: pagina_de_vuelta.php");

Y el mensaje de error/estado q debas mostrar .. lo haces en "pagina_de_vuelta.php ..

Puedes usar una página para dar un "gracias . bla bla bla" .. y otra para "ha ocurrido un error ..." .. y su link correspondiente a "pinche aquí para ir a tal sitio .." . Con eso simplemente eviatará el efecto "recarga" ...

Igualmente puedes gestionar una simple variable de "estado" q generaras su valor segun el proceso de insertar ese registro a la base de datos ... tipo:
header ("location: pagina_de_vuelta.php?estado=$estado");

$estado .. le das valor segun fué el proceso de insertar ese registro .... y será en pagina_de_vuelta.php .. donde tendrás esa variable $estado q deberas gestionar para mostrar uno u otro mensaje segun su valor ...

A todo esto .. en tu scritp.php q precesa ese insertar registro .. NO debe existir ningun "echo" ni cabeceras .. (he de ahi el tema de la variable $estado .. para usarla en otro script.php)

</comentario>

Un saludo,
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 03:15.