Foros del Web » Programando para Internet » PHP »

sesiones y checkbox

Estas en el tema de sesiones y checkbox en el foro de PHP en Foros del Web. Mira, estoy metiendo todos los valores de la formula en una sesion, y todo pasa y regresa pura vida, pero no se como pasar los ...
  #1 (permalink)  
Antiguo 04/04/2003, 16:03
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
sesiones y checkbox

Mira, estoy metiendo todos los valores de la formula en una sesion, y todo pasa y regresa pura vida, pero no se como pasar los valores de las chekbox, lo hago asi

la chek box es:
<input type="checkbox" name="tourism" value="checkbox" <? if($e="y"){echo $session_turism;}else{echo marked($tourism);}?>>

lo recibo y convierto en 1 o 0
if (isset($tourism)==1){
$tu = 1;
}else{
$tu = 0;
}
lo meto en la sesion
session_register("session_turism");
$session_turism = $tu;

Pero al ir a la formula de regreso, no le lo lee,
entonces intenté:

session_register("session_turism");
$session_turism = $turism;

y tampoco lo lee.

Ayuda!

Gracias
  #2 (permalink)  
Antiguo 04/04/2003, 16:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para leer ese valor del array no tienes que hace un sessin_register() .. eso ya lo haces cuando "guardas" esa variable en la sesión ..

Tan solo un:

Código PHP:
<?
session_start
();
echo 
$session_turism;
?>
Tampoco es necesario que "recogas" tu checkbox como lo haces .. Si te das cuenta .. el checkbox que te entra es el único que está(n) seleccionado(s) y con estado "TRUE" (si, un boolenao .. true/false) .. Eso mismo lo puedes guardar en la session y no andar con "recoger y convertir a tu valor ...".

Te recomiendo que NOOOOO asumas las variable de sesion como GLOBALES .. usa los arrays asociados $_SESSION .. (en las FAQ's tienes un comentario al respecto ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 04/04/2003, 16:42
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Cluster.
1' gracias por tu ayuda.


Mira, me dices que entonces lo defina asi en la pagina que procesa la formula
$HTTP_POST_VARS[$wname, $tourim,$rest]

donde $wname es un texto, un nombre y $turism,$rest son dos chekbox y entonces en la pagina donde los recibo los meto a las cajas de texto mediante
en el caso de la de texto
<input name="wname" type="TEXT" id="title" size="40" value="<? echo $wname ?>">

o
<input type="checkbox" name="tourism" value="checkbox" <? marked($tourism)?>></td>


Es asi.
Mira, lei las faqus y el manual de php me deja

gracias.
  #4 (permalink)  
Antiguo 04/04/2003, 16:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esto no es correcto .. $HTTP_POST_VARS es un array .. así q no puedes hacerlo...
$HTTP_POST_VARS[$wname, $tourim,$rest]

En tal caso debería ser:
$HTTP_POST_VARS[$wname];
$HTTP_POST_VARS[$tourim];
etc ..

Ademas .. el array $HTTP_POST_VARS .. no es el array de sessiones q es en su defecto $HTTP_SESSION_VARS ..

Pon el código completo que usas en tu formulario y en tu escript que procesas eso datos y los devuelves al formulario .. El código fuera de contexto no suele ayudar nada a resolver un problema ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 04/04/2003, 17:17
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
gracias cluester, pero este formulario es muy grande con muchas validaciones, if then etc.

primero quiero quemar esta opcion.
Entender uno pequeño, cómo funciona.

Hay alguno online donde pueda estudiar de qué forma son pasadas las variables y en caso de error sea devuelto a la misma formual para corregirla?

Graicas.
  #6 (permalink)  
Antiguo 04/04/2003, 17:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm Pues alguna vez en el foro he hecho algunos ejemplos usando sessiones .. pero ahora no recuerdo en que mensaje jeje como comprenderas xD .. Usa el buscador del foro a ver si sale algo ..

Pero .. lo principal que tienes que entender es a trabajar con sessiones a nivel básico .. En las FAQ's tienes unos ejemplos básicos para que los pruebes .. (y también el porqué de usar $_SESSION y no session_register() por ejemplo) ..

Tambien te comenté (creo?) alguna vez que el array $_POST es el que puedes guardar "entero" en tu session para que en caso de que no se cumplan las condiciones de tus validaciones .. redirecciones al formulario y leas el array $_POST para usarlos en tus "value" de tu formulario .. (pero el array post de la session será en este caso ..).

algo tipo:
formulario.php
Código PHP:
<?
session_start
(); // incio uso sessiones
$variables=$_SESSION['variables']; // leeo el array con mis variabels del $_POST .. si lo envié ..
?>
<form action="procesa_formulario.php" method="post">
  <input type="text" name="esta" value="<?php echo $variables['esta']; ?>">
</form>
procesa_formulario.php
Código PHP:
<?
session_start
();
$_SESSION['variables']=$_POST// guardo el array POST ...
//validas tus variables $_POST['eso'] .. etc del formulario ...

// Si no se cumplen tus validaciones:
header("location: formulario.php");
?>
Bueno, al final te hice un pequeño ejemplo .. la base es esa .. ahora te falta a ti algunos detalles ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 04/04/2003 a las 17:35
  #7 (permalink)  
Antiguo 04/04/2003, 22:06
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Bueno, Cluster hagamos un ejemplo entre los dos:
Este es un ejemplo de cómo lograr que un cliente no pueda meter un nombre existente en la BD y por eso cuando la info enviada es tratada de meter, al hacer la verificación se le redirige a la formula para que cambie lo que tiene repetido, en este caso sera Title.

Esta es básicamente la formula que tengo:

<?
session_start(); // incio de uso de sesiones.
?>

<FORM METHOD="POST" ACTION="bdb3.php" name="data" onSubmit="return check(this)">

//Si la formula viene de editar un item entonces lee $title
// Si la formula viene devuelta de la pagina que la procesa por ke metio
//un title existente entonces $e="y"

<input name="title" type="TEXT" id="title" size="40" value="<? if($e="y"){echo $session_title;}else{echo $title;} ?>">


<input name="lifeestile" type="checkbox" id="lifeestile" value="checkbox" <? if($e="y"){echo $session_lifeestile;}else{ echo marked($lifeestile);}?>>


if($m=='c'){
if($e!="y"){echo "<input type='SUBMIT' value='Change' name='change'>";}
if($e!="y"){echo "<input type='SUBMIT' value='Delete' name='del'>";}
if($e!="y"){echo "<input type='SUBMIT' value='Add New' name='addnew'>";}else{
echo "<input type='SUBMIT' value='Add' name='add'>";}
}else{
echo "<input type='SUBMIT' value='Add' name='add'>";
}

ahora la pagina que llena la BD. Llamada bdb3

<?
session_start();
?>

//voy a chekear si metio un titulo existente, si lo es redirijo a la formula
if ($HTTP_POST_VARS['add']!=""){

$title2= htmlspecialchars($title);

$sql =mysql_query("SELECT * FROM Comercials WHERE cTitle='$title2'")
or die(mysql_error());

if ($sql){
$cant =mysql_num_rows($sql);
}
if($cant >0){
$HTTP_POST_VARS['']; //con esto paso todas la variable a la formula para cabiar title
echo "that Comercial Name: <B>".$title."</B> is already taken -go back and chose another one.<B> Now you are redirecting to the form</B>.";
echo "<script>document.location.href='addprofile2.php?e =y&m=c'</script>";
}else{
el insert aqui
}


Nota, tal como esta me está pasando todo, excepto los checkbox.


Gracias por su ayuda!
  #8 (permalink)  
Antiguo 05/04/2003, 11:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te pongo un ejemplo completo usando mi técnica y un checkbox ..

formulario.php
Código PHP:
<?
session_start
(); // incio uso sessiones
$variables=$_SESSION['variables']; // leeo el array con mis variabels del $_POST .. si lo envié ..
session_unregister('variables'); // Elimito variables de la sesion.
?>
<form action="procesa_formulario.php" method="post">
  <input type="text" name="variable" value="<?php echo $variables['variable']; ?>">
  <input type="checkbox" name="micheckbox" value="marcado" <? if ($variables['micheckbox']=="marcado"){echo " checked ";} ?> >
  <input type="submit" name="medaigual" value=" Probar ">
</form>

procesa_formulario.php
Código PHP:
<?
session_start
();
$_SESSION['variables']=$_POST// guardo el array POST ...
//validas tus variables $_POST['eso'] .. etc del formulario ...


// Si no se cumplen tus validaciones:
if ($_POST['variable'] != "probando"){
    
header("location: formulario.php");
    exit;
}

echo 
"Validación correcta.<br>";
echo 
"El valor del checkbox nombre: michecbox es -> ".$_POST['micheckbox'];
?>
Fijate bien en la definición del CHECKBOX .. Si indicas value="algo" .. el checbox tendrá ese valor (esto es HTML no PHP) .. Si no le indicas value= .. solo obtendras un TRUE o FALSE dependiendo si está seleccionado o nó ..

Por lo tanto esa línea se podría quedar en:
Código PHP:
<input type="checkbox" name="micheckbox"  <? if ($variables['micheckbox']){echo " checked ";} ?> >
Tambien veo q en tu código usas una función por ahí: marked() .. supongo q es javascript? .. El caso que para preseleccionar el estado de un checkbox . se puede hacer simplemetne con HTML y el parámetro 'checked' ...

Para que lo pruebes .. en el campo input indica: probando para que veas como pasa la validación .. y cualquier otra cosa para que veas como se recoge el valor de ese "input" y del estado que tengas en el checkbox ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 05/04/2003, 14:04
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Creo que he hecho tal como me sugieres, pero tengo problemas en la formula:


<?
session_start(); // incio de uso de sesiones.
//$variable=$_SESSION['$title']; // asignamos a $variable la
// variable de la session áctiva.
//session_register("$title");
if($e="y"){
$variables=$_SESSION['title, turism'];
}
session_unregister(' title, turism '); // Elimito variables de la sesion.
?>

<input name="title" type="TEXT" id="title" size="40" value="<? if($e="y"){echo $variables('title');}else{echo $title;} ?>">


<input type="checkbox" name="tourism" value="checkbox" <? if($e="y"){if ($variables['tourism']=="checkbox"){echo " checked ";}}else{echo marked($tourism);}?>>

echo "<input type='SUBMIT' value='Add' name='add'>";

Pero esta pagina me da error en esta linea:
<input name="title" type="TEXT" id="title" size="40" value="<? if($e="y"){echo $variables('title');}else{echo $title;} ?>">

me tira estos errores:
Notice: Undefined index: title, turism, in C: \TMP57w85cu3wh.php on line 7
En linea 7 tengo:
$variables=$_SESSION['title, turism'];


y me marca otro error en:

<input name="title" type="TEXT" id="title" size="40" value="<? if($e="y"){echo $variables('title');}else{echo $title;} ?>">

Fatal error: Call to undefined function: () in C:\ TMP57w85cu3wh.php on line 212


Gracias por cambiar tu primer respuesta, este ejemplo me ha orientado mucho!
  #10 (permalink)  
Antiguo 05/04/2003, 20:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Prueba el ejemplo tal cual lo puse y fijate en lo que se hace .. Se están usando arrays como el $variables .. y tu en tu código donde dices que te marca errores accedes a un indice de un array usando $variables("title") .. cuando si $variables es un array debe ser $variables['title']

Y esto:
$variables=$_SESSION['title, turism'];

ya te dije varios mensajes mas arriba que no puedes hacerlo!!!! .. $_SESSION es un ARRAY ..

Esto tampoco es correcto:
Código PHP:
session_unregister('title, turism'); // Elimito variables de la sesion 
En tal caso:
Código PHP:
session_unregister('title','turism'); // Elimito variables de la sesion 
Las comillas como las usabas la variable de session se tendría que llamar 'title,turism' .. cuando SON dos Varaibles ..

Ademas .. si registras las variables tuyas tile y turism que van en el array $variables .. ESA variable $variables es la que deberías "unregister" .. !!!

En general .. toda variable que veas que se accede tipo $nombre['algo'] .. es un ARRAY!. Y en concreto $_SESSION es un array predefinida de PHP que contiene las variables de sesion que uses ..

Variables predefinidas en PHP:
http://www.php.net/manual/en/reserved.variables.php

Y .. bueno no sé si te manejas con arrays en PHP .. pero es recomendable que leas el cápitulo correspondiente en el manual de PHP:
http://www.php.net/manual/en/language.types.array.php

En fin .. recapacita lo que estas haciendo .. decidete si vas a usar un array para pasar esas variables (yo en el ejemplo uso el array $_POST porqué van TODAS las variables de tu formulario que envias por method="POST" ...) o bien mete en la session Iindividualmente las variables que te hagan falta .. Pero NO los mezcles .. (En parte creo q lo mezclas porque no tienes muy claro que es un array? .. es así? .. En los links que te dí puedes informarte ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 05/04/2003 a las 20:31
  #11 (permalink)  
Antiguo 06/04/2003, 21:58
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Cluster, ciertamente es mi primer acercamiento al trabajo con arrays, apenas es que entiendo un poco el concepto de que son tablas definidas por valores X y Y. O multidimensionales. UHF, me cuesta captar. He leído toda la documentación que me linkeas y otra mas que encontré, pero en ningún lado vi un ejemplo de cómo usar el $_SESSION
que es lo que estoy tratando de usar, por eso no tengo otra mas que seguir preguntando, esperando no parecer demasiado estúpido L.

Ok vamos a ver, me dices que lo use tal y como lo pones, hice exactamente eso en la formula:
<?

session_start(); // incio uso sessiones

$variables=$_SESSION['variables']; // leeo el array con mis variabels del $_POST .. si lo envié ..

?>
y me tira error en la definición del indice:
Notice: Undefined index: variables in C:\….etc.

Entónce trato de hacer algo que mi lógica me dice le define un índice.
$variables=$_SESSION[0]['variables'];
y me da:
Notice: Undefined offset: 0 in….

Empezando por ahi. Por ke eso?

Quiro hacerlo bien pero estoy en un atolladero!!!!!!!
  #12 (permalink)  
Antiguo 06/04/2003, 22:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
$_SESSION .. es un simple array UNIDIMENSIONAL .. Arrays con acceso tipo: $_SESSION['algo'] se le denominan "arrays asociativos" ..

Tienes una función que se llama isset() para ver si una varible está declarada o no ..

Para evitar ese "error" (q no es un error sino un aviso de "mala programación") .. deberias usar:

Código PHP:
if (isset($_SESSION['variables'])){
  
$variables=$_SESSION['variables'];
} else {
  
$variables=array();

Eso significa: "Si está definida la variable $_SESSION['variables'] .. entonces asigna a $variables su valor .. Sino, (else) define $variables como un array vacio: array() todo esto para que cuando se lean esos $variables['variable'] no te diga PHP (avise) que tal indice no está definido ..

Esto es parte de lo que te decía al principio de:
Cita:
Bueno, al final te hice un pequeño ejemplo .. la base es esa .. ahora te falta a ti algunos detalles ..

Un saludo,

pd: Te recomiendo NO empezar la casa por el tejado .. Si apenas te desenvuelves con Arrays y con cosas mucho mas básicas que una session (q por otro lado si lo mira bien es un simple array ..) Te vas a encontrar con multitud de problemas por el camino .. Insisssto, aprende el leguaje como debe ser . desde la base .. haciendo ejemplos y preguntando las dudas que no entiendas del tema concreto .. leyendo los mensajes de error e intentar comprenderlos .. Aunque como veras . si no sabes que es un indice o un "offset" y q es terminología de "arrays" (matrices, arreglos ..) dificil que puedas buscar como solucionarlo .. Por eso las cosas hay que aprenderlas desde la base ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 06/04/2003, 23:27
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Gracias Cluster, algo asi traté de hacer con mi if then, pero no funca, evidentemente.

El problema es que ya he empezado, tengo la casa levantada (dominical.biz)y estoy ahora llegando al tejado, me encuentro con la necesidad de usar algo nuevo (soy autodidacta y recien empecé con php sin conocer nunca nada de programación) para mi caso los arrays.

Por eso algunas cosas aun no tienen sentido sino hasta que las uso y entiendo, mira que esa función isset( ya había leído de ella, pero no tenía ningún sentido hasta ahora!.


ahora, quisiera empezar en un curso de php, pero en la U me han rechazado por que son cursos cerrados para alumnos en la carrera, y yo soy de otra especialidad además de egresado de la U. Asi es que me matriculé en la U de Albomba (lease al bombazo), de modo que me esfuerzo pero aun paso veindo para arriba!


Bueno, parece que en esta línea
<input name="title" type="TEXT" id="title" size="40" value="<? if($e="y"){echo $variables('title');}else{echo $title;} ?>">


tengo problemas en la definición de
$variables('title')

me dice: Fatal error: Call to undefined function: array() in ...

entónces tiendo a pensar que es debido a lo anterior, que debo hacer un
if (isset($_SESSION['title'])){
$variables=$variables('title');
} else {
$variables=array();
}


Pero me da el mismo error, tonces ahora???
Suave no me pegues!!!!
  #14 (permalink)  
Antiguo 06/04/2003, 23:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Que manía tienes con usar () en arrays!! .. NO es ( es [ .. y no es ) sino ]

Ademas .. lo que TU has puesto ahora .. NO es el ejemplo que te PUSEEE!!

Observalo bien:
Código PHP:
if (isset($_SESSION['variables'])){
  
$variables=$_SESSION['variables'];
} else {
  
$variables=array();

Por favor . presta atención y NO toques nada si no sabes que estas haciendo !!!..


Como siempre pones "porciones" de código que usas . nunca se vé que estas "modificando" del método .. Por lo poco que veo NO ESTAS usando $variables=$_POST; que uso en el script de ejemplo original .. TU estas usando solo variables (al parecer?) individuales guardadas en tu session .. por ende ... ese código último no corresponde ..

Así que te recomiendo algunas cosas:
1) Entender que es $_POST (es un array que tienes todas las variables que envias por tu formulario ..usando method POST ..)

2) Seguir el ejemplo ORIGINAL que te puse ..

3) Aprender a manejarte con Arrays asocitavivos .. Busca alguna manual .. en las FAQ's de PHP de este foro tienes muchos .. En unos dias .. preguntas las dudas sobre arrys ..

Por mi parte .. creo que hasta aquí llega mi labor .. Ahora te toca a tí prácticar la base que te falta y ya te he comentado cual es .. El mensaje sigue abierto.

Un saludo,

pd: Yo también soy autodidacta .. pero ya me dí cuenta hace mucho tieemmpo que si no se aprende un mínimo de Base (en este caso conceptos básicos de programación .. no dependiente de ningun lenguaje de programación) .. NO se avanza . .mas bien se va un levantando de caida en caida .. sin aprender nada y teniendo siempre los mismos porblema con ejemplos similares ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 06/04/2003 a las 23:52
  #15 (permalink)  
Antiguo 07/04/2003, 14:31
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Cluster, por fin lo logré! Todo!.

Pero ahora tengo un problema mas grande.

Esta misma formula servía para insertar por primera vez la info, o para dar clik en el item y editar la info que hubiese metido un cliente, de modo que cando queria editarla, doy clik en el item, paso id del item, la sesion del usuario y
if($e!="y"){

if($m=='c'){
session_register("session_cid");
$session_cid = $cid;
@ $db=mysql_connect ("localhost", "dombeach_wuser", "wuser");
if (!$db){
echo "Error: Could not connect to database. Please try again later.";
exit;
}

mysql_select_db ("dombeach_dominical");



$query = "Select * from `Comercials` where username ='".$session_username."' and cid=".$cid;
//echo $query;
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$title = $row["cTitle"];


y entonces llenaba la formula para ser editada, pero ahora, seguramente debido a que en el encabezado de la formula tengo
session_start(); // incio uso sessiones
if (isset($_SESSION['variables'])){
$variables=$_SESSION['variables'];
} else {
$variables=array();
}
session_unregister('variables'); // Elimito variables de la sesion.


es que ahora no puede hacer el select de la sesion del usuario, (me imagino).
Estoy en lo correcto?
  #16 (permalink)  
Antiguo 07/04/2003, 14:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sigues mezclando métodos .. si usas $_SESSION para registrar variables en la sessión, sigue usandolo en el resto del script/s ...

session_register("session_cid");
sería:
$_SESSION['session_cid']=$cid;

Y las llamadas que haces de tus variables de sesion como $session_username Usa el mismo método .. $_SESSION['session_username'] .. así con todas!.

De todas formas .. el $cid ese no sé si lo recibes desde la sessión? o desde POST via tu formulario o GET (URL) ...

Un saludo,

pd: Cunado pongas código .. porfavor usa el boton PHP para que quede coloreado el código e identado .. NO resumas el código y ponlo entero .. Nuca se vé lo que realmente estas haciendo pues siempre estas modificando y pones código fuera de contexto.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #17 (permalink)  
Antiguo 07/04/2003, 15:28
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Cluster, es que esos $_SESSION ...etc no son mios, son de la formula tal y como venía, (no es mia, la estoy modificando), ahora, resulta que tngo entonces el problema que si vengo del menu, paso via get asi:cid=1&y=1&m=c&w=hotel1&m=c
notese entre ellos el cid. Pero ahora no me lee la info de la bd para ser editada.
Código PHP:
<?
session_start
(); // incio uso sessiones
if (isset($_SESSION['variables'])){
  
$variables=$_SESSION['variables'];
session_unregister('variables'); // Elimito variables de la sesion.
} else {
  
$variables=array();
}

?>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function textCounter(field,cntfield,maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
   field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else 
   cntfield.value = maxlimit - field.value.length;
}

function show(){
    var url= "http://www.dominicalbeach.com/php/uploadForm2.php?f=1&u="+data.username.value+"&wn="+data.wname.value+"&n=1&c="+data.cid.value;
    the_window = window.open(url,'foto','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,dependent=no,screenX=0,screenY=0,width=300,height=180');
}


function check(obj){
    if (checklink() == false){
        alert('Debe indicar el link');
        data.link.focus();
        return false;
    }
...etc                
}
function checklink(){
    if (data.site.value!=""){
            if (data.link.value==""){
                return false;
            }
    }
    return true;
}
//  End -->
</script>
  <FORM METHOD="POST" ACTION="php/bdb3.php" name="data" onSubmit="return check(this)">
  <TABLE class=blkBorder cellSpacing=0 cellPadding=3 width=700 border=0>
    <TBODY>
      <TR> 
        <TD class=beigeBk colSpan=5> <DIV align=center></DIV>
          <P><B><b> 
            <?
if($e!="y"){          
              
$title "";
            
$wname=  "";
            
$tourism "";
            
$lifeestile "";
            
$surfing "";
etc.. con las otras variables.....
            
$pay "";
}

//este parametro e viene de bdb3 y lo paso para decir que e=y (editar=yes) y no hacer este select sino que reciba las variables via get    
if($e!="y"){

          if(
$m=='c'){
            
session_register("session_cid");
            
$session_cid $cid;
            @ 
$db=mysql_connect ("localhost""d""w");                
            if (!
$db){
                echo 
"Error: Could not connect to database.  Please try again later.";
            exit;
            }
            
mysql_select_db ("dombeach_dominical"); 
            
$query "Select * from `Comercials` where username ='".$session_username."' and cid=".$cid;
            
//echo $query;
            
$result mysql_query($query);
            
$row mysql_fetch_array($result);
            
$title $row["cTitle"];
            
$wname$row["wname"];
etc.. del selct..
            
$serv $row["services"];
            
$testim $row["testim"];
        }
        
        
        function 
marked($param){
         if (
$param == 1)
             echo 
"checked";
        }
        }
      
?>
            <input type="hidden" name="username" value="<? echo  $session_username ?>">
            <input type="hidden" name="cid" value="<? echo $cid?>">
            <input type="hidden" name="fillPay" value="1">
            <input type="hidden" name="pay" value="0">
            </b> 
        <TR> 
       <TR> 
        <TD colSpan=2><div align="right"><span class="SmallSpredTxt">Commercial 
            Title</span></div></TD>
        <TD colSpan=3 valign="top"> <input name="title" type="TEXT" id="title" size="40" value="<? if($e="y"){echo $variables['title'];}else{echo $title;} ?>"> 
        </TD>
      </TR>
      <TR align="left"> 
        <TD width=253 colSpan=2 align="right" valign="top"><span class="SmallSpredTxt">Web 
          Name</span><br> </TD>
        <TD colSpan=3 valign="top"><input name="wname" type="TEXT" id="wname" size="40" value="<? if($e="y"){echo $variables['wname'];}else{echo $wname;} ?>"></TD>
      </TR>
         <TD width=253 rowSpan=3> <DIV align=right class="SmallSpredTxt">Category</DIV></TD>
        <TD align=right width=127>Tourism 
          <input type="checkbox" name="tourism" value="checkbox" <? if($e="y"){if ($variables['tourism']=="checkbox"){echo " checked ";}}else{echo marked($tourism);}?>
        </TD>
        <TD align=right> <P>Real Estate 
            <input name="realestate" type="checkbox" id="realestate"value="checkbox"<? if($e="y"){if ($variables['realestate']=="checkbox"){echo " checked ";}}else{echo marked($realestate);}?> >
          </P></TD>
        <TD align="right">Other&nbsp; <input name="other" type="checkbox" id="other"value="checkbox"<? if($e="y"){if ($variables['other']=="checkbox"){echo " checked ";}}else{echo marked($other);}?> ></TD>
              </TR>
      <TR> 
      <TR> 
        <TD colSpan=2 align=right class="SmallSpredTxt">Phone 3</TD>
        <TD colSpan=3 align=left class="SmallSpredTxt"> <input name="phone3" type="TEXT" id="phone32" size="40" value="<? if($e="y"){echo $variables['phone3'];}else{echo $phone3;}?>"></TD>
      </TR>
      <TR> 
        <TD colSpan=2 align=right valign="top" class="SmallSpredTxt">Your web 
          site</TD>
        <TD colSpan=3 align="left" valign="top"> [url]http://[/url] 
          <input name="site" type="TEXT" id="site2" value="<? if($e="y"){echo $variables['site'];}else{echo $variables['site'];} ?>" size="45" > 
        </TD>
      </TR>
      <TR> 
        <TD colSpan=5 align=left><hr></TD>
      </TR>
      <TR> 
        <TD align=left>&nbsp;</TD>
        <TD colSpan=2 align=left>Remember that you gotta have a link from your 
          site to Dominical.biz. Here is where you tell us where that link is. 
        </TD>
        <TD colspan="2" align=left>&nbsp;</TD>
      </TR>
      <TR> 
        <TD colSpan=2 align=right class="SmallSpredTxt">Address of your link to 
          us:</TD>
        <TD colSpan=3><input name="link" type="TEXT" id="link" value="<? if($e="y"){echo $variables['link'];}else{echo $link;} ?>"></TD>
      </TR>
      <TR> 
        <TD width=253 colSpan=2 align=right valign="middle">Brief description 
          of your bizness 
          <DIV align=right></DIV></TD>
        <TD colSpan=3 valign="top"> <textarea name="Description" wrap="physical" cols="40" rows="7" 
onKeyDown="textCounter(document.data.Description,document.data.remLen1,80)"
onKeyUp="textCounter(document.data.Description,document.data.remLen1,80)"> <? if($e="y"){echo $variables['Description'];}else{echo $Description;} ?></textarea> 
          <br> <input readonly type="text" name="remLen1" size="3" maxlength="3" value="80">
          characters left<br> </td>
      </TR>
        <TR> 
        <TD colSpan=2 valign="middle"> <DIV align=right>Extensive description 
            of your bizness.<br>
            This will appear on your page and any area that your site is mentioned 
            here on Dominical.Biz.</DIV></TD>
        <TD colSpan=3><TEXTAREA name="bdescr" rows="15" wrap="physical" cols="70"><? if($e="y"){echo  stripslashes($variables['bdescr']);}else{echo $bdescr;} ?></TEXTAREA></TD>
      </TR>
      <TR> 
        <TD colSpan=2> <DIV align=right>Testimonials:</DIV></TD>
        <TD colSpan=3><TEXTAREA name="testim" rows="15" wrap="physical" cols="70"><? if($e="y"){echo  stripslashes($variables['testim']);}else{echo $testim;} ?></TEXTAREA></TD>
      </TR>
      <TR> 
        <TD colSpan=2> <DIV align=right>Services that you offer:</DIV></TD>
        <TD colSpan=3><TEXTAREA name="serv" rows="10" wrap="physical" cols="50"><? if($e="y"){echo  stripslashes($variables['testim']);}else{echo $serv;} ?></TEXTAREA></TD>
      </TR>
      <TR> 
        <TD colSpan=2>&nbsp;</TD>
        <TD colSpan=3> 
          </TD>
      </TR>
      <TR> 
        <TD width=253 colSpan=2>&nbsp;</TD>
        <TD colSpan=3> 
          <? 
                            
if($m=='c'){
                            if(
$e!="y"){echo "<input type='SUBMIT' value='Change' name='change'>";}
                            if(
$e!="y"){echo "<input type='SUBMIT' value='Delete' name='del'>";}
                            if(
$e!="y"){echo "<input type='SUBMIT' value='Add New' name='addnew'>";}else{echo "<input type='SUBMIT' value='Add' name='add'>";}                
    }else{
        echo 
"<input type='SUBMIT' value='Add' name='add'>";
                            }      
    </
TR>
    </
TBODY>
  </
TABLE>
</
FORM>
</
body>
</
html>
en la formula que procesa la pagina va:

Código PHP:
<?
session_start
();
$_SESSION['variables']=$_POST

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>...::::::Registro::::::...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">

<?

        
$db=mysql_connect ("localhost""d""w");                
    if (!
$db){
        echo 
"Error: Could not connect to database.  Please try again later.";
        exit;
    }                    
    
mysql_select_db ("dombeach_dominical"); 
 

      if (isset(
$tourism)==1){
            
$tu 1;
        }else{
            
$tu 0;
            }
    
      if (isset(
$lifeestile)==1){
            
$le 1;
        }else{
            
$le 0;
            }

        
etc.. conlos ifs..
  
  if (
$HTTP_POST_VARS['add']!=""){

$title2htmlspecialchars($title);  
  
$sql =mysql_query("SELECT * FROM Comercials WHERE cTitle='$title2'"
  or die(
mysql_error()); 

if (
$sql){ 
  
$cant =mysql_num_rows($sql); 

if(
$cant >0){ 


echo  
"<script>document.location.href='/php/addprofile2.php?e=y&m=c&cn=y'</script>";       
}else{ 
    
$wname2htmlspecialchars($wname);  
  
$sql =mysql_query("SELECT * FROM Comercials WHERE cTitle='$wname'"
  or die(
mysql_error()); 
    if (
$sql){ 
      
$cant =mysql_num_rows($sql); 
    } 
    if(
$cant >0){ 
    echo  
"<script>document.location.href='/php/addprofile2.php?e=y&m=c&wn=y'</script>";       
    }else{ 
    
insert aqui// insertar
 
}
}          
</
body>
</
html>
ahora, el problema es que me regresa bien para editar en caso de que quiera meter un item con un title repetido y la formula aparece llena, pero si vengo del menu para editar la formula no me lee la info ni la despliega de la bd.

uff.
  #18 (permalink)  
Antiguo 07/04/2003, 17:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esa variable $cid .. la estas pasando por POST al script que haces el proceso del formulario .. que a su vez se registra en el array $variables en la session de nombre "variables" ..

Código PHP:
<input type="hidden" name="username" value="<? echo  $session_username ?>">
            <input type="hidden" name="cid" value="<? echo $cid?>">
            <input type="hidden" name="fillPay" value="1">
            <input type="hidden" name="pay" value="0">
Edita el código HTML que generas (ver->código fuente en tu navegador) y observa que valores tienes en esos campos hidden ...

Así que deberias usar el $variables['cid'] como has usado en el resto de campos input de tu formulario ... (y lo mismo con el resto) ..

En:

Código PHP:
if($m=='c'){
            
session_register("session_cid");
            
session_cid $cid
Si tienes que registrar la variable $cid en una sesion . ya te comenté que lo hagas via $_SESSION .. tambien ya te dije antes que uses el método para acceder a las variabels $_GET $_POST o lo que corresponda .. Yo ahi no sé si eso ha de entrar por GET o por POST o si es de la sesion ..

En tal caso recuerda que tienes isset() para hacer "preguntas" tipo: "Si está definida la variable de sesion $_SESSION['cid'] .. uso $cid=$_SESSION['cid'] y si no está .. hago: $cid=$_GET[cid'] o $_POST['cid'] segun corresponda ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 08:05.