Ayuda con php o html porfas

Discussion in 'Scripts, 3rd Party Apps, and Programming' started by GM Kay, Feb 15, 2009.

  1. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    Hola a todos, veran soy un poco nuevo en php y quisiera saber 2 cosas:

    1- Supongamos que tengo una pagina web y quiero que el usuario (cualquier persona) ponga un nombre es decir:

    <form action="accion.php" method="POST">
    Su nombre: <input type="text" name="nombre" />
    Su edad: <input type="text" name="edad" />
    <input type="submit">
    </form>

    Pero quiero que nombre (letras rojas) sea una variable de php es decir $nombre y que este ala vez el valor que ponga aga algo. Algo asi pienso que seria accion.php (letras asules).

    <?php
    if ($nombre == Roberto Nuñez){
    echo "tublablabla";
    } else {
    echo "rablablabla"; }
    ?>

    $nombre (letras verdes) vendria siendo la variable que pusieron en Input, si el codigo es incorrecto, bueno, oviamente es incorrecto porque no me funciona, pero si el codigo no es nada similar, alguien podria decirme como pueden hacer que el usuario ponga 1 variable en una casilla como al de Input?

    2- Con respecto alo anterior, si me pudieran ayudar a resolver lo anterior, quisiera saber el siguiente paso, quiero que la variable $nombre no sea necesario que este escrito entero, sere mas especifico, Supongamos que ponen en la variable $nombre "Roberto" y que en accion.php

    <?php
    if ($nombre == Roberto Nuñez){
    echo "tublablabla";
    } else {
    echo "rablablabla"; }
    ?>

    Con que ponga Roberto que diga: tublablabla O con que ponga Nuñez

    Porfavor se los agradeceria mucho si me pudieran ayudar con esas 2 cosas.
     
  2. eliasr

    eliasr Member

    Messages:
    346
    Likes Received:
    0
    Trophy Points:
    16
    Bueno, antes que nada, no uses esos colores, con poner azul y rojo creo que es suficiente.

    Pues suponiendo que ese es tu codigo completo te hacen falta cosas.

    Primero, cuando pasas datos por medio de una <form>, los debes de sacar de las variables de PHP, con $_POST[nombre]

    Seguno, el nombre va entre "comillas" o 'apostrofes' [no se si asi se llamen], ya que es una cadena, asi if ($name == "Roberto Nuñez")

    Tercero, para que entre al if ya sea con Roberto o Nuñes, puedes usar la funcion strstr() o stristr(), la primera es sensible a mayusculas y la segunda no.

    Uso:
    <?php echo stristr("adios mundo cruel", "MUNDO") ;?>

    Eso pone en pantalla: mundo cruel. Recuerda que no es sensible a mayusculas

    Pero eso no te interesa, lo que si es que la funcion regresa FALSE, si no se encuentra el string dentro.

    Tu codigo HTML esta bien, aunque creo que no es standard [al menos en xhtml], pero no me hagas mucho caso, tu php podria quedar asi:

    <?php
    $nombre = $_POST[nombre];

    /*
    Primera opcion, comparando todo el nombre
    if (nombre == "Roberto Nuñez")
    */

    /* Segunda opcion, comparando nombre o apellido */
    if (stristr($nombre, "roberto") || stristr($nombre, "nuñez")
    {
    echo "Hola Robert";
    }
    else
    {
    echo "Impostor!!";
    }
    ?>
     
    Last edited: Feb 17, 2009
  3. evigra

    evigra New Member

    Messages:
    244
    Likes Received:
    3
    Trophy Points:
    0
    asi como dice ELIASR

    en tu form indicas como vas a pasar las variables...
    ///////////////// POST ////////////////
    <form action="accion.php" method="POST">

    en este caso el metodo es POST

    para recuperarlas al abrir el archivo accion,
    necesitas a cada parte del formulario decirle como se va a llamar la variable

    <?
    $nombre=$_POST[nombre];
    $edad=$_POST[edad];
    if($nombre=="EVIGRA")
    {
    echo "entraste $nombre ";
    echo "tu edad es $edad";
    ///mas informacion
    }
    else
    {
    echo "no eres $nombre";
    // mas informacion
    }
    ?>

    ///////////////// GET ////////////////
    <form action="accion.php" method="GET">

    en este caso el metodo es GET

    para recuperarlas al abrir el archivo accion,
    necesitas a cada parte del formulario decirle como se va a llamar la variable

    <?
    $nombre=$_GET[nombre];
    $edad=$_GET[edad];
    if($nombre=="EVIGRA")
    {
    echo "entraste $nombre ";
    echo "tu edad es $edad";
    ///mas informacion
    }
    else
    {
    echo "no eres $nombre";
    // mas informacion
    }
    ?>
     
  4. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    NO NO NO!!!
    NO PUEDE SER KE ME AYAN DADO TAN GRAN AYUDA!!!!!!!!!!!!!!!!!!!!
    muchisimas grax =) mil mil mil o millones de gracias XD
    les dare puntos a ambos =) 50 y 50 haha, se que es poco pero solo tengo 900.

    Amm, ahora una pregunta mas como podria poner una accion si es = a Roberto Nuñes, les dare un ejemplo, en la Form estaba

    <form action="accion.php" method="POST">
    Su nombre: <input type="text" name="nombre" />
    Su edad: <input type="text" name="edad" />
    <input type="submit">
    </form>

    Quiero que en el if aga la funcion accion.php. es decir:

    <?php
    if ($nombre == Roberto Nuñez){
    hacer la funcion accion.php;
    } else {
    echo "rablablabla"; }
    ?>

    Si pudieran ayudarme con esto tmbn se los agradeceria XD, y no se sientan comprometidos a ayudarme porque les di 50c, esos son por la otra ayuda, GRAX =)
     
  5. evigra

    evigra New Member

    Messages:
    244
    Likes Received:
    3
    Trophy Points:
    0
    mira...
    primero muchas gracias por los creditos...
    pero estamos aqui para ayudarnos...

    puedes agregar codigo de otro archivo con la funcion include();

    ////////////////////////
    cuando ya tienes algo fijo
    <?
    if($nombre=="evigra")
    {
    include("archivo_nuevo.php");
    }

    ////////////////////////////////////////////////////////////
    ///////////// cuendo es una variable ///////////////

    <?
    $archivo="archivo_nuevo.php";
    if($nombre=="evigra")
    {
    include($archivo);
    }

    ?>
    ///////////////////////////////////////////////
    yo por ejemplo utilizo esto...
    como si fuera un frame
    (dentro del index.php)

    <?
    if($pagina=="")
    {
    include("principal.php");
    }
    else include($pagina);
    ?>

    aqui vemos que si la variable no tiene nada carga por defaul el archivo principal.php
    ///////////////////////
    suponiendo que tengo un menu
    <a href="?pagina=archivo_nuevo1.php">link 1</a>
    <a href="?pagina=archivo_nuevo2.php">link 2</a>
    <a href="?pagina=archivo_nuevo3.php">link 3</a>

    al darle click a alguno de los links la variable $pagina lleva el nombre archivo que se va a cargar en el supuesto frame
     
  6. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    grax, eso tmbn ya kedo =D hahaha, como pido ayuda vdd XD ya me dio verguenza pedir tanta ayuda, una cosa mas, si me la podrian resolver XD, esta cosa parese un tutorial entero XD :$, miren, eliasr me dio una ayuda muy buena, grax =), pero no abria una forma mas facil de que con solo 3 letras aga la accion tublablabla?

    <form action="accion.php" method="POST">
    Su nombre: <input type="text" name="nombre" />
    Su edad: <input type="text" name="edad" />
    <input type="submit">
    </form>

    <?php
    if ($nombre == Roberto Nuñez){
    echo "tublablabla";
    } else {
    echo "rablablabla"; }
    ?>

    existe alguna forma de que en el nombre, con que solo pongas 3 letras te lo identifique, como rob, obe, ber, ert, rto, nuñ, uñe, ñez?

    osea

    <?php
    if ($nombre == Roberto Nuñez){
    echo "tublablabla";
    } else {
    echo "rablablabla"; }
    ?>

    Enves de que en $nombre solo pueda ser Roberto Nuñez, que pueda ser cualquiera 3 letras que tenga, eliasr me dio una forma muy buena, grax, pero no abra de otra manera que conque contenga solo 3 letras me abra la opcion "tublablabla", envez de poner todas las letras que dije que quedaria asi:

    <?php
    if (stristr($nombre, "rob") || stristr($nombre, "obe") || stristr($nombre, "ber") || stristr($nombre, "ert") || stristr($nombre, "rto") || stristr($nombre, "nuñ") || stristr($nombre, "uñe") || stristr($nombre, "ñes")){
    echo "tublablabla";
    } else {
    echo "rablablabla"; }
    ?>
     
    Last edited: Feb 18, 2009
  7. eliasr

    eliasr Member

    Messages:
    346
    Likes Received:
    0
    Trophy Points:
    16
    A ver si entiendo, lo que quieres es que si alguien en el formulario ingresa alguna de las sig. opciones:

    rob
    obe
    ber
    ert
    rto
    nuñ
    uñe
    ñez

    funcione y entre al if.

    Si es asi, es bien facil, lo que recibes en $name, lo comparas con "robertonuñez" con la funcion que ya te habia comentado:

    stristr($name, "robertonuñez")

    recuerda que busca una cadena dentro de otra, osea que si de la forma ingresan "ert", y la pasas a esa funcion lo identificara, por que la encontro de dentro de "robertonuñez".
     
    Last edited: Feb 19, 2009
  8. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    ya le trate, pero no me salio =/ no se puede amenos ke pongan: robertonuñez, si era a eso a lo ke me referia pero no funciono y no entiendo otra kosa, puse en

    <?php
    @variable = "||";
    if (stristr($nombre, "roberto") @variable stristr($nombre, "nuñez")){
    echo "tublablabla";
    } else {
    echo "rablablabla"; }
    ?>

    Pero la @variable no me da como si fuera ||
     
    Last edited: Feb 21, 2009
  9. eliasr

    eliasr Member

    Messages:
    346
    Likes Received:
    0
    Trophy Points:
    16
    jajajajaja, ya se donde esta el error, los parametros son al reves.

    stristr("cadena", "patron_a_buscar")

    osea debe de estar asi:

    stristr('robertonuñez', $nombre)

    el siguiente codigo ya lo cheque y si jala.

    Code:
    <?php
    	$nombre = $_POST[nombre];
    	if (stristr('robertonunez', $nombre))
    	{
    		echo 'Hola roberto<br />';
    	}
    ?>
    Eso del @ es para control de erroes, sirve para ignorar errores.
     
    Last edited: Feb 22, 2009
  10. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    Si lo pongo asi:

    <?php
    $nombre = $_POST[nombre];
    if (stristr('robertonunez', $nombre))
    {
    echo 'Hola roberto<br />';
    }
    ?>

    me da error :s, creo que si estaba bien lo de ($nombre, 'robertonunez'), pero no me lo da u_u, supongo que no se ah de poder, bueno y lo otro, me quivoque, alo que me referia era a lo siguiente:

    <?php
    $variable = "||";
    if (stristr($nombre, "roberto") $variable stristr($nombre, "nuñez")){
    echo "tublablabla";
    } else {
    echo "rablablabla"; }
    ?>

    Pero la $variable no me da como si fuera ||

    Esque en otro tipo de scriping manejo las variables como @variable enves de $variable, perdon por eso XD, pero no me da la $variable como si fuera igual a ||
     
  11. evigra

    evigra New Member

    Messages:
    244
    Likes Received:
    3
    Trophy Points:
    0
    claro que no te lo va a meter como si fuera OR...
    ya que lo estas manejando como cadena...

    y regresando a lo que quieres
    creo que seria asi

    $nombre = $post[nombre];

    if(stristr("evigra", $nombre) == FALSE) echo "No se eres registrado;
    else echo "Hola evigra";
     
  12. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    ah oK grax, y para lo otro? como puedo meterlo como si fuera OR?
     
  13. evigra

    evigra New Member

    Messages:
    244
    Likes Received:
    3
    Trophy Points:
    0
    en si que quieres???

    tu separaste las palabras del nombre...
    ejemplo
    nombre="eduardo vizcaino granados"
    para separar por palabras utilizas la funcion explode()

    $separadas=explode(" ",$nombre)

    para hacer referencia a ellas es un array

    $separadas[0]="eduardo";
    $separadas[1]="vizcaino";
    $separadas[2]="granados";

    $opcion0=$separadas[0];
    $opcion1=$separadas[1];
    $opcion2=$separadas[2];

    respecto a la condicion

    $nombre_buscado=$post[nombre];

    if(stristr($opcion0, $nombre_buscado) !=FALSE OR stristr($opcion1, $nombre) !=FALSE OR stristr($opcion2, $nombre) !=FALSE)
    {
    registrado
    }
    else
    {
    desconocido
    }

    algo asi seria...
    lo estoy escribiendo como va saliendo si hay error dime
     
  14. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    si, pero are varios, y seria un trabajo interminable entonses mi punto es, que si se podia aser para que lo que pusieras se buscara dentro de la cadena automaticamente.

    y la otra duda no hay solucion? u_u

    para que la variable @variable sea igual a ||

    y en if(@nombre,"blabla" @variable @nombre,"blabla")

    la @variable sea igual a ||?
     
  15. eliasr

    eliasr Member

    Messages:
    346
    Likes Received:
    0
    Trophy Points:
    16
    Checa este link:

    http://elias.exofire.net/test/login3letras/

    Es el test que hace lo que tu quieres, aceptar un usuario con al menos 3 letras

    El codigo esta aca:
    http://elias.exofire.net/test/login3letras/index.php
    http://elias.exofire.net/test/login3letras/action.php

    Dale click derecho y "Guardar enlace como..." o "Save Link As..." para que bajes y veas el codigo.

    Para lo otro.

    Lo siento no hay solucion, son instrucciones y deben de ser explicitas, por ejemplo no puedes hacer:

    $variable = '+';
    $sum = 3 $variable 2;
    $variable = '-';
    $res = 5 $variable 2;

    Creo que es casi imposible, no solo en php si no en cualquier otro lenguaje de programacion.

    Aunque... una solucion, si asi se le puede decir, seria, que con PHP crearar otro archivo .php y despues los ejecutaras, pero solo estoy alucinando.

    Seria bueno que nos dijeras cual es tu objetivo final, para tener mas idea y ayudarte en mas cosas.
     
  16. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
  17. eliasr

    eliasr Member

    Messages:
    346
    Likes Received:
    0
    Trophy Points:
    16
    aaah, es que quieres guardar el codigo ya generado por php, pero si hace click derecho "Save Links As..." o "Guardar enlace como" al soguiente link, funciona, solo abrelo con un editor de texto.

    http://elias.exofire.net/test/login3letras/action.php

    Igual, el codigo esta aqui, integro tal cual esta en la pagina.

    Code:
    <html>
    <head>
    <title>elias - chinazo - scmgb</title>
    </head>
    <body>
    <?php 
    	$nombre = $_GET['nombre'];
    	echo "<p>Atendiendo a: <strong>" . $nombre . "</strong></p>";
    	
    	if (strlen($nombre) < 3)
    	{
    		echo "Debes de ingresar al menos 3 letras";
    	}
    	else
    	{
    		if (stristr("gustavo adrian cerati", $nombre))
    		{
    			echo "Hola gus, vuelve soda?";
    		}
    		else
    		{
    			echo "No se pudo logear";
    		}
    	}
    ?>
    </body>
    </html>
    
    Y pus la verdad es que estoy echando la mano, mientras esperao por respuestas a mis problemas de programacion.
     
    Last edited: Feb 26, 2009
  18. evigra

    evigra New Member

    Messages:
    244
    Likes Received:
    3
    Trophy Points:
    0
    mira si son varios nombres utiliza un array y un ciclo

    $nombres[0]="eduardo";
    $nombres[1]="carlos";
    $nombres[2]="jorge";
    $nombres[3]="gerardo";

    $posicion=0;
    $bandera=0;
    $nombre=$POST[nombre];

    while($nombres[posicion]!="")
    {
    if(stristr($nombres[$posicion], $nombre)!=FALSE)
    {
    $bandera=1; // entro
    }
    }
    if($bandera==1) echo "registrado";
    else echo "no registrado";
     
  19. GM Kay

    GM Kay New Member

    Messages:
    118
    Likes Received:
    0
    Trophy Points:
    0
    ok muchas grax a ambos ese problema ya esta totalmente resuelto

    ahora mi siguiente pregunta y espero con esto concluya y sea la ultima como hacer para que sea opcional llenar un campo u otro?

    <form action="nombremob.php" method="POST">
    Su nombre: <input type="text" name="nombre" />
    Su edad: <input type="text" name="edad" />
    <input type="submit">
    </form>

    if(stristr("eugenio avila alberto", $nombre) || stristr("18", $edad))

    pero si llenan ambos campos que esta solo sea la opcion, es decir
    si ponen eugenio en la variable $nombre, y 18 en la variable $edad, ambos apareceran que hacer para que no aparescan ambos, mi idea era la siguiente:
    if ($edad = "")
    {
    $variable1 = ||;
    }
    else
    $variable1 = &;

    if(stristr("eugenio avila alberto", $nombre) $variable1 stristr("18", $edad))
    if(stristr("marcos rodriguez", $nombre) $variable1 stristr("18", $edad))

    pero desafortunadamente no funciono, hay alguna forma de hacerlo o es imposible para que sea o un campo u otro o ambos ala vez
     
  20. evigra

    evigra New Member

    Messages:
    244
    Likes Received:
    3
    Trophy Points:
    0
    no entendi tu pregunta
     

Share This Page