PHP - comparer deux variables
J'ai ce code
<?php
ob_start();
header("Content-Type: text/html; charset=ISO-8859-1");
$campo = $_GET['campo'];
$valor = $_GET['valor'];
$hello;
if ($campo == "myPassword") {
if (!preg_match("/^\S{4,12}$/", $valor)) {
echo "Tamanho entre 4 e 12 letras e sem espaços";
}
else
$hello = $valor; //problem here
echo $hello;
}
if ($campo == "passwordMatch") {
if ($hello != $valor ) {
echo "Passwords don't match";
}
}
?>
donc, j'ai besoin d'enregistrer une variable (où j'ai mis "problème") et de les comparer ci-dessous, mais ce code ne fonctionne pas et je ne sais pas pourquoi
- Définir "ce code ne fonctionne pas".
- soins pour développer "ne marche pas"
- Ce genre de problème voyez-vous? Est
$hello
une chaîne vide, ou obtenez-vous PHP exceptions et des erreurs? Essayez unvar_dump($_GET);
pour vous assurer de la réception de données si le problème est que$hello
est vide. - j'ai besoin d'enregistrer la variable $bonjour à comparer ci-dessus si le pass correspondance avec le champ ci-dessus. C'est un enregistrer temporairement lorsque l'utilisateur de faire un nouveau registre. Au moment de l'écho de $bonjour dans le premier cas présenter le pass mais dans le second, l'echo de $bonjour est rien
Vous devez vous connecter pour publier un commentaire.
Je vous recommande d'utiliser pour comparer des chaînes de référence: http://php.net/manual/en/function.strcmp.php
ou
et remplacer votre code avec cette
Si vous attendez
$hello
à survivre entre le chargement de la page, vous êtes hors de la chance.Au lieu de cela, vous aurez besoin de persister la variable entre des séances de vous-même.
BTW, la ligne
$hello;
ne pas faire n'importe quoi.Modifier La raison pour laquelle j'ai supposé que vous avez besoin de séances est que vous définissez
$hello
uniquement lorsque$campo == "newPassword"
, puis plus tard s'attendre à une certaine valeur uniquement lorsque$campo == "passwordMatch"
. Vous de ne jamais changer la valeur de$campo
, et clairement, il ne peut pas être les deux. Cela implique que les deux morceaux de la logique sont à exécuter sur des chargements de page.Semble que vous avez un problème de syntaxe ici:
Est que votre problème? Votre
ELSE
manquait une ouverture{
et de fermeture}
.AUSSI
Pour la comparaison de chaînes, vous devez utiliser
===
et pas un numérique==
Détails sont ici:
J'ai eu le même problème, s'est avéré être un espace blanc, j'ai utilisé
trim($myVar);
à corriger.