Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Mac en 03 de Octubre 2013, 16:45

Título: mezclar, combinar o insertar código php junto a código html
Publicado por: Mac en 03 de Octubre 2013, 16:45
Hola Comunidad aquí diseñando un estilo de formulario.. me saca un error ya teniendo dos variables definidas en código php cuando lo corro en el servidor local me sale diciendo que las variables

$sexo;
$hobbie;

No se encuentran definidas quisiera que me ayudaran adjunto el formulario ! 
----------------------------------------------------------------------------------------------------
Código: [Seleccionar]
<!DOCTYPE html>
<HTML>
<?php
$nombre
="";
$clave="";
$sexo="";
$hobbie="";
$msgNombre="";
$msgClave="";
$msgSexo="";
$msgHobbie="";
$claseNombre="";
$claseClave="";
$claseSexo="";
$claseHobbie="";
if (
$_POST){

$nombre =   $_POST["nombre"];
$clave  =   $_POST["clave"];
$sexo   =   $_POST["sexo"];
$hobbie =   $_POST["hobbie"];

if (
$nombre == ""){
   
$msgNombre " ¡..Atencion..!  Nombre Vacio * ";
   
$claseNombre="error";
   }
 else{
 if(
is_numeric($nombre)){
$msgNombre=" ¡..Atencion..! El Campo Nombre No Puede Ser Numerico * ";
$claseNombre="error";
 }
}
if (
$clave == ""){
$msgClave " ¡..Atencion..! Contraseña Vacia * ";
$claseClave="error";
 }
 
 if (
$sexo == ""){
$msgSexo " ¡..Atencion..! Escoja Un Sexo * ";
$claseSexo="error";


 if (
$hobbie == ""){
$msgHobbie " ¡..Atencion..! Escoja Un Hobbie * ";
$claseHobbie="error";
 }
 

 if(
$claseNombre=="" && $claseClave==""){
 echo 
"<center><h2> ::..OK... Sus Datos Fueron Ingresados Al Servidor ..:: <h2></center>";
 echo 
"<center><h2> ::..OK... Muchas Gracias ..:: <h2></center>";
 }
 if(
$claseSexo=="" && $claseHobbie==""){
 echo 
"<center><h2> ::..OK... Sus Datos Fueron Ingresados Al Servidor ..:: <h2></center>";
 echo 
"<center><h2> ::..OK... Muchas Gracias ..:: <h2></center>";
 }

}
//finaliza el if de post
 
?>

<head>
<title>Formulario</title>
<style>
.error{
color: orange;
border: solid  5px red;
}
.msg{
color: white;
font-size: 8px;
font-size: 9cm
}
</style>
</head>
<body>
<form name="form1"   action="send.php"    method="POST">
<center><fieldset>
<legend>send.php</legend>
<table border="2">

<div class="<?php echo $claseNombre?>">
<tr><td>Nombres</td>
<td><input type="text" name="nombre" value="<?php echo $nombre?>"></td>
<span class=".msg"> <?php echo $msgNombre;?></span>
</tr>
</div>

<div class="<?php echo $claseClave?>">
<tr><td>Contraseña</td>
<td><input type="password" name="clave" maxlength="4" size="4"  value="<?php echo $clave?>" ></td>
<span class=".msg"><?php echo $msgClave;?></span>
</tr>
</div>




<div class="<?php echo $claseSexo?>">
<tr><td>Escoja sexo</td>
<td><input type="radio" name="sexo" value="H"   value="<?php echo $sexo?>" >Hombre
<input     type="radio" name="sexo" value="M"   value="<?php echo $sexo?>">Mujer
<span class=".msg"><?php echo $msgSexo;?></span>
</tr>
</div>

<div class="<?php echo $claseHobbie?>">
<tr><td>Escoja Hobbie(s)</td>
<td><input type="checkbox"name="hobbie" value="1" value="<?php echo $hobbie?>" >Deportes
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Música
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Internet
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Lectura
<span class=".msg"><?php echo $msgHobbie;?></span>
</td>
</tr>
</div>




<tr><td>Escoja Profesión</td>
<td><select name="prof">
<option value="1">Ingeniería</option>
<option value="2" selected>Medicina</option>
<option value="3"  >Analista de Sistemas</option>
<option value="4">Administrador de Empresas</option>
</select>
</td>
</tr>
<tr><td>Escriba su comentario ...</td>
<td><textarea name="coment" rows="6" cols="30">
</textarea>
</td>
</tr>
</table>
<input type="reset" value="Limpiar">
<select name="guarde">
<option value="si">Si guarde en archivo</option>
<option value="no" selected>No guarde en archivo</option>
</select>

<input type="submit" value="Validar">

</fieldset>
</form>
</body>
</HTML> 
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: Mac en 03 de Octubre 2013, 18:59
Aquí trate de modificar los condicionales y variables !!!  pero sigue el problema

Hola Comunidad aquí diseñando un estilo de formulario.. me saca un error ya teniendo dos variables definidas en código php cuando lo corro en el servidor local me sale diciendo que las variables

$sexo;
$hobbie;

No se encuentran definidas quisiera que me ayudaran adjunto el formulario ! 
----------------------------------------------------------------------------------------------------
Código: [Seleccionar]
<!DOCTYPE html>
<HTML>
<?php
$nombre
="";
$clave="";
$sexo="";
$hobbie="";
$msgNombre="";
$msgClave="";
$msgSexo="";
$msgHobbie="";
$claseNombre="";
$claseClave="";
$claseSexo="";
$claseHobbie="";
if (
$_POST){

$nombre =   $_POST["nombre"];
$clave  =   $_POST["clave"];
$sexo   =   $_POST["sexo"];
$hobbie =   $_POST["hobbie"];

if (
$nombre == ""){
   
$msgNombre " ¡..Atencion..!  Nombre Vacio * ";
   
$claseNombre="error";
   }
 else{
 if(
is_numeric($nombre)){
$msgNombre=" ¡..Atencion..! El Campo Nombre No Puede Ser Numerico * ";
$claseNombre="error";
 }
}
if (
$clave == ""){
$msgClave " ¡..Atencion..! Contraseña Vacia * ";
$claseClave="error";
 }
 
 if (
$sexo == ""){
$msgSexo " ¡..Atencion..! Escoja Un Sexo * ";
$claseSexo="error";


 if (
$hobbie == ""){
$msgHobbie " ¡..Atencion..! Escoja Un Hobbie * ";
$claseHobbie="error";
 }
 

 if(
$claseNombre=="" && $claseClave=="" && $claseSexo=="" && $claseHobbie==""){
 echo 
"<center><h2> ::..OK... Sus Datos Fueron Ingresados Al Servidor ..:: <h2></center>";
 echo 
"<center><h2> ::..OK... Muchas Gracias ..:: <h2></center>";
 }
 
}
//finaliza el if de post
 
?>

<head>
<title>Formulario</title>
<style>
.error{
color: orange;
border: solid  5px red;
}
.msg{
color: white;
font-size: 8px;
font-size: 9cm
}
</style>
</head>
<body>
<form name="form1"   action="send.php"    method="POST">
<center><fieldset>
<legend>send.php</legend>
<table border="2">

<div class="<?php echo $claseNombre?>">
<tr><td>Nombres</td>
<td><input type="text" name="nombre" value="<?php echo $nombre?>"></td>
<span class=".msg"> <?php echo $msgNombre;?></span>
</tr>
</div>

<div class="<?php echo $claseClave?>">
<tr><td>Contraseña</td>
<td><input type="password" name="clave" maxlength="4" size="4"  value="<?php echo $clave?>" ></td>
<span class=".msg"><?php echo $msgClave;?></span>
</tr>
</div>




<div class="<?php echo $claseSexo?>">
<tr><td>Escoja sexo</td>
<td><input type="radio" name="sexo" value="H"   value="<?php echo $sexo?>" >Hombre
<input     type="radio" name="sexo" value="M"   value="<?php echo $sexo?>">Mujer
<span class=".msg"><?php echo $msgSexo;?></span>
</tr>
</div>

<div class="<?php echo $claseHobbie?>">
<tr><td>Escoja Hobbie(s)</td>
<td><input type="checkbox"name="hobbie" value="1" value="<?php echo $hobbie?>" >Deportes
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Música
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Internet
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Lectura
<span class=".msg"><?php echo $msgHobbie;?></span>
</td>
</tr>
</div>




<tr><td>Escoja Profesión</td>
<td><select name="prof">
<option value="1">Ingeniería</option>
<option value="2" selected>Medicina</option>
<option value="3"  >Analista de Sistemas</option>
<option value="4">Administrador de Empresas</option>
</select>
</td>
</tr>
<tr><td>Escriba su comentario ...</td>
<td><textarea name="coment" rows="6" cols="30">
</textarea>
</td>
</tr>
</table>
<input type="reset" value="Limpiar">
<select name="guarde">
<option value="si">Si guarde en archivo</option>
<option value="no" selected>No guarde en archivo</option>
</select>

<input type="submit" value="Validar">

</fieldset>
</form>
</body>
</HTML> 
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: javi in the sky en 03 de Octubre 2013, 19:59
Aquí tienes una cosa bastante extraña:

Código: [Seleccionar]
<td>Escoja Hobbie(s)</td>
<td><input type="checkbox"name="hobbie" value="1" value="<?php echo $hobbie?>" >Deportes
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Música
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Internet
<input type="checkbox"    name="hobbie" value="1" value="<?php echo $hobbie?>">Lectura

¿Tienes 4 opciones con el nombre hobbie? ¿Por qué no le pones distinto nombre a cada opción? ¿Si no le pones distinto nombre cómo vas a diferenciarlo después?

¿Por qué defines dos veces value, una después de otra? value="1" value="<?php echo $hobbie; ?>

Este fragmento de código parece que no cuadra.


Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: Mac en 04 de Octubre 2013, 02:42
Me podrías ayudar como seria ese fragmento de código ?
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: javi in the sky en 04 de Octubre 2013, 11:27
Si vas a permitir que el usuario escoja uno o varias opciones de hobbies veo más lógico tener una variable para cada hobbie, de forma que puedas saber si está marcado o no. Por eso usaríamos $hobbie1 para saber si el primer hobbie está marcado, $hobbie2 para saber si el segundo está marcado y así sucesivamente. Aquí está el código, además he quitado la repetición de value

Código: [Seleccionar]
<!DOCTYPE html>
<HTML>
<?php
$nombre
="";
$clave="";
$sexo="";
$hobbie1="false";
$hobbie2="false";
$hobbie3="false";
$hobbie4="false";
$msgNombre="";
$msgClave="";
$msgSexo="";
$msgHobbie="";
$claseNombre="";
$claseClave="";
$claseSexo="";
$claseHobbie="";
if (
$_POST){

$nombre =   $_POST["nombre"];
$clave  =   $_POST["clave"];
$sexo   =   $_POST["sexo"];
$hobbie1 =   $_POST["hobbie1"];
$hobbie2 =   $_POST["hobbie2"];
$hobbie3 =   $_POST["hobbie3"];
$hobbie4 =   $_POST["hobbie4"];

if (
$nombre == ""){
   
$msgNombre " ¡..Atencion..!  Nombre Vacio * ";
   
$claseNombre="error";
   }
 else{
 if(
is_numeric($nombre)){
$msgNombre=" ¡..Atencion..! El Campo Nombre No Puede Ser Numerico * ";
$claseNombre="error";
 }
}
if (
$clave == ""){
$msgClave " ¡..Atencion..! Contraseña Vacia * ";
$claseClave="error";
 }
 
 if (
$sexo == ""){
$msgSexo " ¡..Atencion..! Escoja Un Sexo * ";
$claseSexo="error";


 if (
$hobbie1 == "" && $hobbie2=="" && $hobbie3=="" && $hobbie4==""){
$msgHobbie " ¡..Atencion..! Escoja Un Hobbie * ";
$claseHobbie="error";
 }
 

 if(
$claseNombre=="" && $claseClave=="" && $claseSexo=="" && $claseHobbie==""){
 echo 
"<center><h2> ::..OK... Sus Datos Fueron Ingresados Al Servidor ..:: <h2></center>";
 echo 
"<center><h2> ::..OK... Muchas Gracias ..:: <h2></center>";
 }
 
}
//finaliza el if de post
 
?>

<head>

<title>Formulario</title>
<meta charset="utf-8">
<style>
.error{
color: orange;
border: solid  5px red;
}
.msg{
color: white;
font-size: 8px;
font-size: 9cm
}
</style>
</head>
<body>
<form name="form1"   action="send.php"    method="POST">
<center><fieldset>
<legend>send.php</legend>
<table border="2">

<div class="<?php echo $claseNombre?>">
<tr><td>Nombres</td>
<td><input type="text" name="nombre" value="<?php echo $nombre?>"></td>
<span class=".msg"> <?php echo $msgNombre;?></span>
</tr>
</div>

<div class="<?php echo $claseClave?>">
<tr><td>Contraseña</td>
<td><input type="password" name="clave" maxlength="4" size="4"  value="<?php echo $clave?>" ></td>
<span class=".msg"><?php echo $msgClave;?></span>
</tr>
</div>




<div class="<?php echo $claseSexo?>">
<tr><td>Escoja sexo</td>
<td><input type="radio" name="sexo" value="H"    >Hombre
<input     type="radio" name="sexo" value="M"   >Mujer
<span class=".msg"><?php echo $msgSexo;?></span>
</tr>
</div>

<div class="<?php echo $claseHobbie?>">
<tr><td>Escoja Hobbie(s)</td>
<td><input type="checkbox"name="hobbie1" value="true"  >Deportes
<input type="checkbox"    name="hobbie2" value="true" >Música
<input type="checkbox"    name="hobbie3" value="true" >Internet
<input type="checkbox"    name="hobbie4" value="true" >Lectura
<span class=".msg"><?php echo $msgHobbie;?></span>
</td>
</tr>
</div>


<tr><td>Escoja Profesión</td>
<td><select name="prof">
<option value="1">Ingeniería</option>
<option value="2" selected>Medicina</option>
<option value="3"  >Analista de Sistemas</option>
<option value="4">Administrador de Empresas</option>
</select>
</td>
</tr>
<tr><td>Escriba su comentario ...</td>
<td><textarea name="coment" rows="6" cols="30">
</textarea>
</td>
</tr>
</table>
<input type="reset" value="Limpiar">
<select name="guarde">
<option value="si">Si guarde en archivo</option>
<option value="no" selected>No guarde en archivo</option>
</select>

<input type="submit" value="Validar">

</fieldset>
</form>
</body>
</HTML>
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: Mac en 04 de Octubre 2013, 15:31
hola javi ... comentándote lo siguiente antes de rellenar los campos de nombre contraseña y escoger un sexo y hobby le doy ante validar y me saca un error en el servidor que las variables ... sexo , hobbie1 , hobbie2 , hobbie3, hobbie4 no están definidas Osea que sigue saliendo el mismo error de variables indefinidas ya estando supuestamente definidas.

Adjunto un pantallaso !
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: javi in the sky en 04 de Octubre 2013, 23:16
A mí no me sucede, yo lo ejecuto sin problemas. Con la captura de pantalla que has puesto pienso que el problema se debe a una extensión de PHP denominada xDebug y que tienes configurada esa extensión para que informe de posibles errores y warnings que normalmente no se muestran, esa sería la explicación para que a tí se salgan esos errores y a mí no.

xDebug tiene una opción denominada "Scream" que fuerza la aparición de errores que normalmente se ignoran.

Tienes dos opciones: tratar de modificar la configuración de php (en wamp o en xampp o en el servidor que sea) para evitar la acción de xDebug (desactivarlo o desinstalarlo), o corregir el código pues lo que está indicando es que detecta errores. Como estos errores son menores, sin xDebug uno "ni se entera", pero con xDebug se muestran precisamente porque xDebug está pensado para eso (aunque realmente en servidores reales no se usa xDebug porque sería muy problemático que estuvieran saltando continuamente avisos que pueden ser ignorados).

Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: Mac en 05 de Octubre 2013, 01:36
Si Compañero Efectivamente si ... Entendiendo lo que dices acerca de esa configuración que me recomiendas tu tenerla siempre desactivada o activada ... dices tu que son errores que no influyen mucho en nuestro código !   que es algo que reconoce wamp como error ! pero no lo es ... Bueno eso es lo que entiendo yo !
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: javi in the sky en 05 de Octubre 2013, 13:28
Bueno, el asunto es que si salta un error es por algo, ahora lo que se trataría de averiguar es por qué.

¿Cuándo te salta el error, la primera vez que cargas la página o cuando pulsas el botón validar?
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: Mac en 05 de Octubre 2013, 13:38
Buen día javi !... bueno javi el error me sale cuando le doy click en Validar que podría estar sucediendo ! con esas variables si ya están definidas sigo sin entender !  ?¿
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: javi in the sky en 06 de Octubre 2013, 01:09
Hay varios problemas en el código. Uno de ellos es el siguiente:

Código: [Seleccionar]
if ($_POST){
$nombre =   $_POST["nombre"];
$clave  =   $_POST["clave"];
$sexo   =   $_POST["sexo"];
$hobbie1 =   $_POST["hobbie1"];
$hobbie2 =   $_POST["hobbie2"];
$hobbie3 =   $_POST["hobbie3"];
$hobbie4 =   $_POST["hobbie4"];

Aquí hay un if que se supone evalúa una condición, pero lo cierto es que si estando vacío el formulario pulsamos validar y lo enviamos por get obtenemos esto:

nombre=&clave=&prof=2&coment=&guarde=no

El nombre está vacío, la clave vacía, el profesor vacío, sexo ni aparece, comentario vacía y guarde trae un valor.

¿Qué ocurre entonces? Que aunque esté vacío el formulario vienen algunas variables por POST con lo que $_POST siempre existe y ese if siempre se cumple. Si siempre se cumple, entra dentro del if y ejecuta lo que hay dentro, por ejemplo

$sexo   =   $_POST["sexo"];

Pero como $_POST["sexo"] no viene definido viene como NULL, después tratas de usar esa variable pero como esa variable vale NULL te dice que no está definida y por eso te salta el SCREAM error (o al menos eso creo)

Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: Mac en 06 de Octubre 2013, 01:15
Muy Buen tu explicación ... como ah riamos en las variables para que no saque ese error de indefinidas ? ! 
Título: Re:Error en dos variables Que las tengo Definidas !!
Publicado por: javi in the sky en 06 de Octubre 2013, 21:55
Aquí te dejo más o menos indicado cómo pienso que podría ser. Con este código creo que no quedan variables indefinidas simplemente porque he quitado las variables, que al final creo que tampoco eran imprescindibles. A mí parece que me va funcionando pero tendrás que revisarlo tú a ver qué te parece. Saludos.


Código: [Seleccionar]
<!DOCTYPE html>
<HTML>
<?php

if ($_POST["guarde"]) {



if (!
$_POST["nombre"]){
   
$msgNombre " ¡..Atencion..!  Nombre Vacio * ";
   
$claseNombre="error";
   }
 else{
 if(
is_numeric($nombre)){
$msgNombre=" ¡..Atencion..! El Campo Nombre No Puede Ser Numerico * ";
$claseNombre="error";
 }
}
if (!
$_POST["clave"]){
$msgClave " ¡..Atencion..! Contraseña Vacia * ";
$claseClave="error";
 }
 
 if (!
$_POST["sexo"] ){
$msgSexo " ¡..Atencion..! Escoja Un Sexo * ";
$claseSexo="error";


 if (!
$_POST["hobbie1"] && !$_POST["hobbie2"] && !$_POST["hobbie3"] && !$_POST["hobbie4"]){
$msgHobbie " ¡..Atencion..! Escoja Un Hobbie * ";
$claseHobbie="error";
 }
 

 if(
$claseNombre=="" && $claseClave=="" && $claseSexo=="" && $claseHobbie==""){
 echo 
"<center><h2> ::..OK... Sus Datos Fueron Ingresados Al Servidor ..:: <h2></center>";
 echo 
"<center><h2> ::..OK... Muchas Gracias ..:: <h2></center>";
 }
 
 }
 
 
?>

<head>

<title>Formulario</title>
<meta charset="utf-8">
<style>
.error{
color: orange;
border: solid  5px red;
}
.msg{
color: white;
font-size: 8px;
font-size: 9cm
}
</style>
</head>
<body>
<form name="form1"   action="testJM031013borrar.php"    method="POST">

<center><fieldset>
<legend>send.php</legend>
<table border="2">

<div class="<?php echo $claseNombre?>">
<tr><td>Nombres</td>
<td><input type="text" name="nombre" value="<?php echo $_POST["nombre"]; ?>"></td>

<span class=".msg"> <?php echo $msgNombre;?></span>
</tr>
</div>

<div class="<?php echo $claseClave?>">
<tr><td>Contraseña</td>
<td><input type="password" name="clave" maxlength="4" size="4"  value="<?php echo $_POST["clave"]; ?>"></td>
<span class=".msg"><?php echo $msgClave;?></span>
</tr>
</div>




<div class="<?php echo $claseSexo?>">
<tr><td>Escoja sexo</td>
<td><input type="radio" name="sexo" <?php if ($_POST["sexo"]=="H") {echo 'value="H" checked';} else {echo 'value="H"';} ?>   >Hombre


<input     type="radio" name="sexo" <?php if ($_POST["sexo"]=="M") {echo 'value="M" checked';} else {echo 'value="M"';} ?>   >Mujer
<span class=".msg"><?php echo $msgSexo;?></span>
</tr>
</div>

<div class="<?php echo $claseHobbie?>">
<tr><td>Escoja Hobbie(s)</td>
<td><input type="checkbox"name="hobbie1" <?php if ($_POST["hobbie1"]=="true") {echo 'value="true" checked';} else {echo 'value="true"';} ?> >Deportes
<input type="checkbox"    name="hobbie2" <?php if ($_POST["hobbie2"]=="true") {echo 'value="true" checked';} else {echo 'value="true"';} ?> >Música
<input type="checkbox"    name="hobbie3" <?php if ($_POST["hobbie3"]=="true") {echo 'value="true" checked';} else {echo 'value="true"';} ?> >Internet
<input type="checkbox"    name="hobbie4" <?php if ($_POST["hobbie4"]=="true") {echo 'value="true" checked';} else {echo 'value="true"';} ?> >Lectura
<span class=".msg"><?php echo $msgHobbie;?></span>
</td>
</tr>
</div>


<tr><td>Escoja Profesión</td>
<td><select name="prof">
<option value="1">Ingeniería</option>
<option value="2" selected>Medicina</option>
<option value="3"  >Analista de Sistemas</option>
<option value="4">Administrador de Empresas</option>
</select>
</td>
</tr>
<tr><td>Escriba su comentario ...</td>
<td><textarea name="coment" rows="6" cols="30">
</textarea>
</td>
</tr>
</table>
<input type="reset" value="Limpiar">
<select name="guarde">
<option value="si">Si guarde en archivo</option>
<option value="no" selected>No guarde en archivo</option>
</select>

<input type="submit" value="Validar">

</fieldset>
</form>
</body>
</HTML>