Foros del Web » Programando para Internet » PHP »

varias dudas de novato

Estas en el tema de varias dudas de novato en el foro de PHP en Foros del Web. Hola a todos. Soy nuevo en este foro y un novato que intenta aprender. tengo varias dudas bastante faciles de resolver ya que son cosas ...
  #1 (permalink)  
Antiguo 15/05/2014, 13:34
 
Fecha de Ingreso: mayo-2014
Ubicación: madrid
Mensajes: 27
Antigüedad: 9 años, 11 meses
Puntos: 1
varias dudas de novato

Hola a todos. Soy nuevo en este foro y un novato que intenta aprender.

tengo varias dudas bastante faciles de resolver ya que son cosas básicas pero que no acabo de entenderlas. Las cosas que os consulto son simples ejercicios que trato de hacer para comprender las funciones, condicionales y en general php asi que no os cuestioneis el porque lo hago asi y no de otra forma. Solo quiero entender donde fallo independientemente de que no tenga mucho sentido lo que esté escrito en el codigo.

ahi van.

duda 1: A partir del siguiente formulario quiero obtener en la misma la informacion del array. pero el resultado ----> Array ( ). ¿porque pasa eso?
es decir. El array no esta vacio.


<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
<input type="text" placeholder="Nombre" value="ramon" name="nombre">
<input type="text" placeholder="Apellido" value="contreras" name="apellido">
<input type="password" placeholder="Pass" value="1111" name="pass">
<input type="submit" value="enviar">
</form>

<?PHP
print_r($_POST);
?>


mi duda 2:

todo esto viene xq queria realizar lo siguiente dentro de un if():

Con el mismo formulario de antes, queria crear un array y asignarselo a la variable que vemos abajo:

$nap1 = array("nombre" => "ramon", "apellido" => "lopez", "pass" => "1111");

para despues realizar lo siguiente;

if($_POST==$nap1){
echo "estas registrado";
}else{
echo "no estas regstrado";

pero no hace lo que quiero que haga.
  #2 (permalink)  
Antiguo 15/05/2014, 13:52
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: varias dudas de novato

1- Imprimes $_POST antes de enviar el resultado, por eso la primera vez te trae un array vacio.

Intenta validar ese print_r

Código PHP:
Ver original
  1. <?PHP
  2. if(!empty($_POST)) {
  3.     print_r($_POST);
  4. }
  5. ?>

2- No se pueden comparar arrays de la forma que estas haciendo, lo correcto seria que mires elemento por elemento, tal vez deberias preguntar si el post fue enviado para mostrar o no el mensaje.

Código PHP:
Ver original
  1. <?PHP
  2. if(!empty($_POST)) {
  3.     echo "estas registrado";
  4. } else {
  5.     echo "no estas registrado";
  6. }
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 15/05/2014, 13:55
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: varias dudas de novato

La duda número 1, el print_r() te lo mostrará una vez enviado el forumulario.

Duda número 2, en ese if le dices si _POST es igual al contenido del array por lo que yo te recomiendo esto más sencillo, mis compañeros te ayudarán también con otros metodos ya solo es cuestión de ir probando y mejorando.

Código PHP:
Ver original
  1. if(!empty($_POST)) {
  2. if($_POST['nombre'] == 'ramon' && $_POST['apellido'] == 'lopez' && $_POST['pass'] == '1111') {
  3. echo 'Estas registrao';
  4. }else {
  5. echo 'No estas registrado';
  6. }
  7. }

Y bueno con esto aria lo que pides, pero como te comento hay muchos más metodos. Suerte.

Un saludo.
  #4 (permalink)  
Antiguo 17/05/2014, 13:27
 
Fecha de Ingreso: mayo-2014
Ubicación: madrid
Mensajes: 27
Antigüedad: 9 años, 11 meses
Puntos: 1
Respuesta: varias dudas de novato

gracias chicos. de todas formas os voy a preguntar en poco algunas cosas similares que no entiendo .. a proposito, que es el codigo bb??
se que es basicamente etiquetas basadas en html y tal.. pero ...
donde se incrustan ? he probado a meterlo en html y no funcionan y tambien en un texto de php y tampoco hace nada.

es exclusivamente un codigo para poder etilizarlos en foros??

si es asi¿como puedo añadir esa funcionalidad?

otra cuestion:

donde estoy escribiendo ahora, es un textarea de html con funciones de editor de texto añadidas?? o no tiene nada que ver con un TEXTAREA de html??

lo digo xq estoy buscando la manera de añadir a un textarea de html la posibilidad de subir imagenes y poder poner negritas, cursivas etc
  #5 (permalink)  
Antiguo 17/05/2014, 14:12
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: varias dudas de novato

Solo para aclarar un tema:
h2swider
Cita:
2- No se pueden comparar arrays de la forma que estas haciendo, lo correcto seria que mires elemento por elemento...
En otros lenguajes si, en php esto no es cierto, lo correcto es como phpnovatophp lo planteo, el maual explica como funciona el operador == sobre arrays. Eventualmente se podria recurrir al === pero para lo que quiere hacer phpnovatophp esta bien como lo planteo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 17/05/2014, 16:50
 
Fecha de Ingreso: mayo-2014
Ubicación: madrid
Mensajes: 27
Antigüedad: 9 años, 11 meses
Puntos: 1
Respuesta: varias dudas de novato

Cita:
Iniciado por NSD Ver Mensaje
Solo para aclarar un tema:
h2swider

En otros lenguajes si, en php esto no es cierto, lo correcto es como phpnovatophp lo planteo, [URL="http://www.php.net/manual/en/language.operators.array.php"]el maual[/URL] explica como funciona el operador == sobre arrays. Eventualmente se podria recurrir al === pero para lo que quiere hacer phpnovatophp esta bien como lo planteo.

pues como podria ser la solucion a lo que planteo??
xq no me sale.
quiero que:

-aparerca un mensaje diciendo "introduce datos"

-si metes datos que no esten contenidos en la variable $nap1 aparezca un mensaje " no estas registrado

-si metes tus datos correctos un mensaje de bienvenida.


LLEVO DIAS ATASCADO Y NO ME SALE.
  #7 (permalink)  
Antiguo 18/05/2014, 12:20
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: varias dudas de novato

Cita:
pues como podria ser la solucion a lo que planteo??
pues como la planteaste, MaNuX0218 te dio una pista al decirte que valides si habia datos en $_POST, este es otro metodo que involucra un input hidden.

Código PHP:
Ver original
  1. <form action="" method="POST"> <!-- El action vacio, enviara el post a este mismo archivo -->
  2.     <input type="text" placeholder="Nombre" value="ramon" name="nombre">
  3.     <input type="text" placeholder="Apellido" value="contreras" name="apellido">
  4.     <input type="password" placeholder="Pass" value="1111" name="pass">
  5.     <input type="hidden" name="sendData" value="1"> <!-- Campo auxiliar de control,este campo es fijo y es para control interno, es hidden porque no interesa mostrarlo -->
  6.     <input type="submit" value="enviar">
  7. </form>
  8. <?php
  9.     if($_POST["sendData"] == 1) // Aca valido contra el campo de control oculto que agregue, si se esta enviando datos, esto esta seteado.
  10.     {            
  11.         unset($_POST["sendData"]); // Esta variable no nos sirve mas y la borramos.
  12.        
  13.         $nap1 = array("nombre" => "ramon", "apellido" => "lopez", "pass" => "1111");
  14.         if($_POST==$nap1)
  15.         {
  16.             echo "estas registrado";
  17.         }
  18.         else
  19.         {
  20.             echo "no estas registrado";
  21.         }    
  22.     }
  23. ?>

La primera vez que cargas la pagina, no estas recibiendo nada por $_POST, por lo tanto, $_POST["sendData"] no esta definido, por lo tanto es distinto de 1, no entras al if y solo muestra el formulario.

Al enviarse el formulario, $_POST["sendData"] vale 1, entonces entra a el if y haces la validacion de los datos mostrando el cartelito, sin duda hay otras formas de hacerlo, esta me parece la mas facil
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: dudas, formulario, variable
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 23:04.