1

私は小さなCMSを作っています。現在、ページの編集に取り組んでいます。正しく動作しますが、ページの「id」が 10 未満の場合のみ (数字が 1 つしかありません)

これは、適切なコンテンツが事前入力されたフォームで edit_page に送信されるリンクです。

<a href="edit_page.php?nav_id_trough_link=<?php echo urlencode($selected_nav['id']); ?>">Edit this page</a> </p>

(nav_id_trough_link の不器用な名前で申し訳ありませんが、私が学んでいるだけです)

ページにアクセスすると、アドレスバーに次のように表示されます。

http://localhost:8080/test1again/backend.php?navv=39

しかし、編集リンクをクリックすると、edit_page.php に移動し、アドレス バーに次のように表示されます。

http://localhost:8080/test1again/edit_page.php?nav_id_trough_link=3

どういうわけかそれは9を切り取ったページのIDが40の場合、同じことが起こり、4になります(そして、ID 4を持つページのコンテンツをフォームに事前入力します..)

誰かがなぜこれが起こるのか知っていますか?

4

1 に答える 1

5

エラーは明らかに次の場所にあります。

<?php echo urlencode($selected_nav['id']); ?>

本当に$selected_nav配列ですか?文字列のように見え$selected_navますが、配列のようにアクセスしています。文字列は配列としてアクセスできますが、数値インデックスのみを使用'id'して int ( 0) にキャストされ、最初の文字が返されます。

于 2013-06-05T16:29:49.103 に答える