Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Netstat89 en 1 Octubre 2012, 12:57 pm



Título: ¿Comparar dos cadenas de caracteres en php?
Publicado por: Netstat89 en 1 Octubre 2012, 12:57 pm
Tengo el primer formulario: llamado index.html

<html>
<body>

<title> Ahorcado </title>
<form action="enviar.php" method="Post">
Ingrese palabra a adivinar :<input type="text" name="jugador1" />
<input type="submit" value="enviar formulario" />
</form>

</body>
</html>

Tengo el segundo formulario: llamado enviar.php

?php

$jugador1= $_POST['jugador1'];


?>

<?

echo "Jugador 2 intente adivinar";

?>

<br><br>



<form action="enviar.php" method="Post">
Ingrese Una Letra :<input type="text" name="jugador2" size="1" />
<input type="submit" value="enviar formulario" />
</form>

<br><br>

<?

$contador= strlen($jugador1);
print "La Palabra ingresada Tiene $contador Letras";


?>

<br>

<?
$jugador2= $_POST['jugador2'];

if(isset($_POST['jugador2'])){

if ($jugador1[0]==$jugador2[0]);{
echo "ok";
}else{

echo "no";
}
}

?>

Mi problema es que quiero compar lo ingresado en el campo jugador1 con la letra del campo jugador2, osea quiero comparar si existe una letra igual de la que ingrese en la variable $jugador2 con la palabra ingresada en la variable $jugador1 y que la muestra en la pantalla, o mejor dicho que cada vez que hacierte una letra se valla formando la palabra oculta.


Título: Re: ¿Comparar dos cadenas de caracteres en php?
Publicado por: #!drvy en 1 Octubre 2012, 16:27 pm
En caso de que el jugador2 solo meta una letra puedes utilizar stristr.
Código
  1. <?php
  2. $palabra = 'omgwtf';
  3. $letra = 'w';
  4.  
  5. if(stristr($palabra,$letra)){echo 'La letra '.$letra.' coincide.';}else{echo 'No coincide';}
  6. ?>

Te retornaría algo así:
Código
  1. La letra w coincide.

Si son 2 palabras y quieres comparar que letras coinciden...
Código
  1. <?php
  2. $palabra = 'omgwtf';
  3. $palabra2 = 'shit';
  4.  
  5. function comparar($palabra1,$palabra2){
  6.   // Obtener tamaño de palabra.
  7.   $len = mb_strlen($palabra2);
  8.   // Por cada letra
  9.   for($i=0; $i<$len;$i++){
  10.      // Comparar la letra con palabra1
  11.      // Si coincide meterla en array($coinciden).
  12.      if(stristr($palabra1,$palabra2[$i])){$coinciden[]=$palabra2[$i];}
  13.   }
  14.   // Si $coinciden no esta definido... retornar false.
  15.   // Si no retornar array.
  16.   if(!isset($coinciden)){return false;} else {return $coinciden;}
  17. }
  18.  
  19. print_r(comparar($palabra,$palabra2));
  20. ?>

Retornaría:
Código
  1. Array ( [0] => t )
Se podrá hacer algo mejor supongo... pero te sirve de ejemplo.

PD: Por favor usa las etiquetas [code=php][/code] o [code=html4strict][/code] para meter el código. Se nos hace mas fácil leerlo.

Saludos


Título: Re: ¿Comparar dos cadenas de caracteres en php?
Publicado por: Netstat89 en 1 Octubre 2012, 17:03 pm
Código:

<?php

       $jugador2= $_POST['jugador2'];
       if(isset($_POST['jugador2'])){
   
 
 if(stristr($jugador1,$jugador2)){echo 'La letra '.$jugador2.' coincide.';}else{echo 'No coincide';}
 }
?>


Me quedo algo asi, pero aunque pongon en jugador1=casa y despues pongo en jugador2= s, me da que no coincide


Título: Re: ¿Comparar dos cadenas de caracteres en php?
Publicado por: #!drvy en 1 Octubre 2012, 18:43 pm
Ponlo exactamente como lo haces...

Saludos


Título: Re: ¿Comparar dos cadenas de caracteres en php?
Publicado por: Netstat89 en 1 Octubre 2012, 20:10 pm
No se porque no funciona

 
Código:
<?php

$jugador1= $_POST['jugador1'];



?>



<?

echo "Jugador 2 intente adivinar";

?>

<br><br>



       <form action="enviar.php" method="Post">

       Ingrese Una Letra :<input type="text" name="jugador2" size="1" />

       <input type="submit" value="enviar formulario" />

      

  <?php



       $jugador2= $_POST['jugador2'];

       if(isset($_POST['jugador2'])){

 

    
        

              if(stristr($jugador1,$jugador2)){print "Coinciden";} else {print "No Coincide";}

              
      
}

?>



 

        



       </form>

       <br><br>


<!-- <?

$contador= strlen($jugador1);

print "La Palabra ingresada Tiene $contador Letras";


?>
-->

      


Título: Re: ¿Comparar dos cadenas de caracteres en php?
Publicado por: Shell Root en 1 Octubre 2012, 21:21 pm
Siempre printea los valores a ver que tiene :D

Muestranos el resultado!