Ayuda con php o html porfas

GM Kay

New Member
Messages
118
Reaction score
0
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.
 

eliasr

Member
Messages
344
Reaction score
0
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:

evigra

New Member
Messages
244
Reaction score
3
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
}
?>
 

GM Kay

New Member
Messages
118
Reaction score
0
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 =)
 

evigra

New Member
Messages
244
Reaction score
3
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
 

GM Kay

New Member
Messages
118
Reaction score
0
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:

eliasr

Member
Messages
344
Reaction score
0
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:

GM Kay

New Member
Messages
118
Reaction score
0
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:

eliasr

Member
Messages
344
Reaction score
0
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:

GM Kay

New Member
Messages
118
Reaction score
0
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 ||
 

evigra

New Member
Messages
244
Reaction score
3
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";
 

GM Kay

New Member
Messages
118
Reaction score
0
Points
0
ah oK grax, y para lo otro? como puedo meterlo como si fuera OR?
 

evigra

New Member
Messages
244
Reaction score
3
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
 

GM Kay

New Member
Messages
118
Reaction score
0
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 ||?
 

eliasr

Member
Messages
344
Reaction score
0
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.

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 ||?

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.
 

eliasr

Member
Messages
344
Reaction score
0
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:

evigra

New Member
Messages
244
Reaction score
3
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";
 

GM Kay

New Member
Messages
118
Reaction score
0
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
 
Top