code récalcitrant [PHP] - PHP - Programmation
Marsh Posté le 23-01-2009 à 12:00:17
Voici en prime la fonction textsecurity qui apparaît ci-dessus mais fonctionne bien ailleurs dans les autres pages.
Code :
|
Marsh Posté le 23-01-2009 à 12:18:35
ah, j'ai déjà deux erreurs, ligne 16
Mais ça résout pas le problème principal
Marsh Posté le 23-01-2009 à 12:51:15
Bon, nouvelle version, notez bien le champ commenté, qui reprend tout le code qui fait planter la page
Code :
|
Marsh Posté le 23-01-2009 à 13:06:22
Moi ce que je vois c'est les { } oubliés en rouge
Tu as pas plus de détail sur l'erreur?
Bzzzttt a écrit :
|
Marsh Posté le 23-01-2009 à 15:04:42
Ligne 30 :
PHP n'arrive pas à interpréter le $_SERVER['PHP_SELF'].
Personnellement, même si ce n'est pas optimisé je fais toujours mes echo 'blahblah'.$var.'blahblah', ça évite les problèmes...
Bizarrement, j'ai un deuxième bug, ligne 62 :
En laissant tel que, ça me sort une Parse error.
Il suffit de mettre <?php et ça marche
Si quelqu'un peut m'expliquer pourquoi à cette ligne et pas avant ?
Marsh Posté le 23-01-2009 à 15:12:35
D'une manière générale il vaut mieux mettre les balises <?php
Attention aux accents aussi
echo "<p /><a href=\"$_SERVER['PHP_SELF']?action=edit&type=$type&id=$to_list->id\">$to_list->titre</a> (posted on $to_list->date_$type by $to_list->auteur)";
un \ dit à php de pas interpreter l'accent...
EDIT: tiens voila un truc vite fait qui remplace ta ligne 30
<?php
$lien = $_SERVER['PHP_SELF'];
$lien = $lien."?action=edit&type=$type&id=$to_list->id";
?>
<p><a href="\<?php echo $lien; ?>\"><?php echo $to_list; ?>->titre</a> (posted on <?php echo $to_list; ?>->date_<?php echo $type; ?> by <?php echo $to_list; ?>->auteur)
Marsh Posté le 23-01-2009 à 16:35:13
Y a toujours un grain de sable quelque part, là dedans plus particulièrement :
Code :
|
Et toujours aucun message d'erreur, c'est un peu bizarre, non ?
Marsh Posté le 23-01-2009 à 16:37:11
Attends, c'est la même chose que tout à l'heure.
ton echo n'affichera rien avec tout ce mélange de html et php.
Décompose ton code comme je te l'ai dit un peu plus haut.
Marsh Posté le 23-01-2009 à 16:39:17
error_reporting(E_ALL | E_STRICT);
Après, ça sera plus simple à débugguer.
Marsh Posté le 23-01-2009 à 16:43:12
Bzzzttt a écrit :
|
Même chose que tout à l'heure
Marsh Posté le 23-01-2009 à 16:47:50
ok merci à tous ça marche finalement, ouf, en effet aspirateur j'avais mal appliqué tes conseils et maintenant tout marche bien, il était temps
Marsh Posté le 23-01-2009 à 16:49:22
D'une façon générale quand un code ne marche pas essaye de le décomposer au maximum et ensuite tu essaye petit à petit de le simplifier.
Ravi de t'avoir aidé
Bon courage
Marsh Posté le 23-01-2009 à 18:39:30
aspirateur a écrit : Moi ce que je vois c'est les { } oubliés en rouge |
Ils sont facultatifs (une seule instruction dépend de la structure de contrôle).
Aussi, on n'y pense pas, mais $_SERVER['PHP_SELF'] doit être échappé.
Il est renvoyé par le navigateur, donc pas fiable :
page.php
Code :
|
Je charge : http://site.com/page.php/"< [...] ;XSS" )</script>
J'obtiens :
Code :
|
Marsh Posté le 23-01-2009 à 18:52:56
Deux choix quand ça correspond à un if qui est suivit d'un else :
- on met les "{}"
- on enlève le ";" qui précède le else
Là, il n'y a pas les "{}" et on trouve le ";".
Marsh Posté le 23-01-2009 à 19:02:57
Heu ... normalement ça devrait pas (le php arrivera toujours à m'étonner avec son laxisme et/ou ses bugs)
T'utilises quelle version de php chez toi que je vérifie ça?
Marsh Posté le 23-01-2009 à 19:08:49
ARGL Le php est à contre courant total là dessus. Il force à mettre le ; devant le else.
Bon, ben je ne peux que constater que je me suis bien planté ce coup ci.
Marsh Posté le 23-01-2009 à 11:58:49
Bonjour tout le monde,
J'en peux plus, cela fait des heures que je travaille là-dessus mais ça ne change rien, il y a quelque chose dans le code qui fait planter la page (aucun affichage). Voici le code problématique, càd quand je le décommente, la page ne s'affiche plus du tout ! Ah vive la programmation, moi je le crie haut et fort ! ;-)
Merci d'avance pour votre aide !