2011-04-06 3 views
0

J'essaie d'écrire un script qui inclut des instructions et des fonctions if/else. des renseignements générauxFonctions PHP et instructions if/else

  • $parts premier caractère doit avoir la lettre "N"
  • $desc est supposé être au moins un caractère à long
  • $price doit être positif (0 ou plus)

Si les trois conditions sont remplies, il faut dire "données acceptées" si quelque chose n'est pas satisfait (un ou tous) le "Invalide ...." doit montrer. Quelqu'un peut-il me dire quelle partie de mon script je devrais regarder.

<?php 
$parts = $_POST["parts"]; 
$desc = $_POST["desc"]; 
$price = $_POST["price"]; 

$pa = substr($parts, 0, 1); 
$de = strlen($desc); 

if ($pa != "N") 
{echo "Invalid Part Number";} 
else 
if ($de <= 1) 
    {echo "Invalid Description Length";} 
else 
    if ($price <= 0) 
    {echo "Invalid Price";} 
    else 
    {echo "Data Accepted";} 
?> 
+0

En quoi votre script ne fonctionne-t-il pas comme vous le souhaitez? – Endophage

+0

Erreur d'analyse: erreur d'analyse dans la ligne 3 – TBP

+2

En le regardant, je dirais que vous devez mettre des points-virgules à leur place après vos déclarations de variables. Je dirais aussi que '$ pa! = N' ne fonctionnera pas N devrait être enveloppé entre guillemets, puis il vérifiera seulement si la variable est égale à N et pas une sous-chaîne de la variable est égale à N Je regarderais l'utilisation de 'substr' pour que cela fonctionne correctement. – JRSofty

Répondre

2

Le second devrait être si if($de==1)$de=1 renverra toujours vrai.

Ajoutez également des points-virgules après chaque instruction.

+0

ajoutez-vous des points-virgules sur les lignes if et else? – TBP

+2

Je les écris toujours comme (1 == $ d) alors si je laisse par erreur un = et que j'effectue une affectation, cela produit une erreur de compilation. – Wes

+0

Non, seulement pour les déclarations. – Rasika

0
$parts = $_POST["parts"]; 
$desc = $_POST["desc"]; 
$price = $_POST["price"]; 
+0

On dirait que c'était censé répondre à une révision précédente de la question. –

+0

@Phoenix J'ai probablement pensé qu'il s'agissait d'une erreur de syntaxe et le rapport d'erreur est désactivé. –

1

le second cas devrait être if($de < 1) vous pouvez avoir if($de == 1) si elle aura toujours un caractère à long mais cela ne fonctionnera que si son 1 ou plus

+0

Cela fait un bon point mais ne serait-ce pas ($ de <= 1) parce que si c'est moins alors sur une erreur est produit si c'est plus puis un – TBP

+0

@TBP Mais si c'est exactement un .... –

2

Votre exigence: -

$parts first character should have the letter "N"

$desc is suppose to be at least one character long

$price needs to be positive (0 or higher)

Solution: -

$parts = $_POST["parts"]; 
$desc = $_POST["desc"]; 
$price = $_POST["price"]; 

$pa = substr($parts, 0, 1); 
$de = strlen($desc); 

if($pa != 'N') { 
    echo "Invalid Part Number"; 
} elseif($de < 1) { 
    echo "Invalid Description Length"; 
} elseif($price < 0) { 
    echo "Invalid Price"; 
} else { 
    echo "Data Accepted"; 
} 
0
<?php 
    $parts = ''; 
    $desc = ''; 
    $price = 0; 
    if ($_POST['parts'] != 'n') 
    { 
    echo 'Not equal to n<br>'; 
    } 
    else { 
    'Accepted input<br>'; 
    } 
    $desc = strlen($_POST['desc']); 
    if ($desc < 1) 
    { 
    echo 'Input less than 1<br>'; 
    } 
    else { 
    echo 'Accepted input<br>'; 
    } 
    if ($_POST['price'] < 0) 
    { 
    echo 'Input below 0<br>'; 
    } 
    else { 
    echo 'Input accepted<br>'; 
    } 
    ?>