PHP expert |
|
Beste dames en heren, eerst mijn stukje code;
<?php
error_reporting(E_ALL);
function decryption($value)
{
$lengte = strlen($value); // kijkt hoe lang de waarde is
if($lengte > 7) // als de waarde groter is dan 7 dan...
{
if((floor($lengte/2)+floor($lengte/2)) == $lengte) // als 2x gefloorde waarde gelijk is aan het origineel was het een even getal anders dus niet
{
$real_length = $lengte/2; // De originele waarde heeft net zoveel extra karakters gekregen in het midden als de originele invoer
$length_1stpart = ceil($real_length/2);
$length_2ndpart = $real_length-$length_1stpart;
echo "Lengte eerste deel: ".$length_1stpart."";
echo "<br><br>Lengte tweede deel: ".$length_2ndpart."";
}
else
{
echo 'Dit is geen juiste waarde om te decrypten!';
}
}
else
{
echo 'De waarde is te kort om te decrypten!';
}
}
?>
<?php function decryption($value) { $lengte = strlen($value); // kijkt hoe lang de waarde is if($lengte > 7) // als de waarde groter is dan 7 dan... { if((floor($lengte/2)+floor($lengte/2)) == $lengte) // als 2x gefloorde waarde gelijk is aan het origineel was het een even getal anders dus niet { $real_length = $lengte/2; // De originele waarde heeft net zoveel extra karakters gekregen in het midden als de originele invoer $length_1stpart = ceil($real_length/2); $length_2ndpart = $real_length-$length_1stpart; echo "Lengte eerste deel: ".$length_1stpart.""; echo "<br><br>Lengte tweede deel: ".$length_2ndpart.""; } else { echo 'Dit is geen juiste waarde om te decrypten!'; } } else { echo 'De waarde is te kort om te decrypten!'; } } ?>
Als $value een even getal is dan is het de bedoeling dat $length_1stpart en $length_2ndpart ook even zijn. Dit gedeelte van het script klopt ook, maar het probleem zit hem in het doorlaten van de 'even' en 'oneven' getallen.
Als ik een input van 11 karakters heb wordt deze doorgelaten, terwijl dit niet de bedoeling is.
11/2 = 5.5 => floor-> 5
5+5 = 10
10 !== 11
Dit zou de bedoeling moeten zijn, alleen werkt het om de een of andere reden niet
Ziet iemand het probleem?
Bij voorbaat dank,
Bug
|