Erreur de code (Débutant)

Résolu
Tom -  
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   -
Salut je débute dans le php je voudrais savoir ou est mon erreur ?

<center>
<form action="" method="post"/>
Quell age a tu ?:
<input name="textbox" type="text" autofocus tabindex="0" />
<input name="button" type="submit" tabindex="1" value="Entrer" />
</form>
</center>

<?php



if $_POST['textbox'] < 18 {

echo 'Tu est trop jeune'

else }


<a href="site.html">la page 2</a>

}

}

?>


Merci
A voir également:

3 réponses

varley Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   12
 
salut Tom !

l'erreur se situe au niveau de ton code php

1.t'as mal positionné tes accolades après le if et else
2.t'as mal introd8 ta balise html entre <?php ?> une balise html doit tjrs etre en dehor du code php
3.faut définir ceci if(isset($_POST['button']) l'action qui doit s'effectuer quand
l'utilisateur appui sur le bouton Entrer

<?php

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

if ($_POST['textbox'] < 18 ){

echo 'Tu est trop jeune';

}else {
?>

<a href="site.html">la page 2</a>
<?php
}
}

?>
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
<?php if(isset($_POST['button'])): ?>
<?php if ($_POST['textbox'] < 18 ): ?>
Tu es trop jeune
<?php else: ?>
<a href="site.html">la page 2</a>
<?php endif; ?>
<?php endif; ?>
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Perso, je préfère largement une notation du style :
<?php
if(isset($_POST['button']))
{
    if ($_POST['textbox'] < 18 )
        echo 'Tu es trop jeune';
    else
        echo '<a href="site.html">la page 2</a>';
}
?>


Mais bon, les goûts et les couleurs...
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Le problème avec "votre" écriture, c'est qu'un IDE (Netbeans par exemple) ne va plus pouvoir analyser les imbrications HTML, donc valider le code HTML.

Si vous écrivez:

echo "<td>$data";


netbeans ne valide pas le TD

Si vous écrivez:

<td><?php echo $data; ?>

Netbeans verra et signalera que </td> manque en HTML.

la manière d''écrire telle que je l'ai indiqué fait partie des "Best Practices" PHP/HTML:

- un fichier ne contenant QUE du code PHP a l'extension php et ne doit pas jouer sur la structuration du code HTML;
- un fichier qui contient du code HTML a l'extension phtml (cas général des templates) ou php (cas d'un fichier index.php) mais on ne passe pas du HTML -> php -> HTML. Exemple de grosse erreur:

<table>
<?php if($condition) { ?>
<thead>
<tr>
<?php if($data=='') {
echo "<td> -NC- </td>";
} else {
echo "<td>$data</td>";
} ?>
</tr>
</thead>
<?php } ?>

Ce genre de sac de noeud passe très mal avec un analyseur de code. Et j'en vois souvent....

Si le HTML imbrique du PHP, on considère que PHp est un "moteur de template" et il faut préférer l'écriture que j'ai donné en exemple dans le précédent POST.

Références concernant ces Best Practices (bonnes pratiques):
https://framework.zend.com/manual/2.0/en/modules/zend.view.renderer.php-renderer.html

Extrait:

<?php if ($this->books): ?>

<!-- A table of some books. -->
<table>
<tr>
<th>Author</th>
<th>Title</th>
</tr>

<?php foreach ($this->books as $key => $val): ?>
<tr>
<td><?php echo $this->escapeHtml($val['author']) ?></td>
<td><?php echo $this->escapeHtml($val['title']) ?></td>
</tr>
<?php endforeach; ?>

</table>

<?php else: ?>

<p>There are no books to display.</p>

<?php endif;?>

Tous les bons professionnels programment ainsi....

A+
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
« Tous les bons professionnels programment ainsi.... »
Hum hum...
Ce n'est pas la peine d'être insultant, hein !
Il faut aussi savoir rester ouvert d'esprit...

Ta version a également des inconvénients... Elle est inutilement chargée et difficile à lire pour un être humain, sans parler de la pénibilité du codage... J'imagine que tu as un raccourci dans ton IDE pour mettre les balises <?php à chaque ligne, mais du coup tu deviens dépendant de ton IDE, ce qui n'est jamais une bonne idée.
0
TWinter85 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
<center>
<form action="" method="post"/> Quell age a tu ?:
<input name="textbox" type="text" autofocus tabindex="0" />
<input name="button" type="submit" tabindex="1" value="Entrer"/>
</form>
</center>
<?php
if ($_POST['textbox'] < 18) {
echo "Tu est trop jeune";
}
else {
<a href="site.html">la page 2</a>
}
?>
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
@TWinter85
Ton code ne peut pas marcher, il manque un echo ou des balises ?> <?php pour la balise <a>.
0