metin anlamsız çizgileri yazdırırken sayfa indir engeller, ama çok hatları mysql tablodaki tüm girdileri girmesini önlemek.

3 Cevap php

Size kimse bana bu sayfayı ziyaret ederken almak davranışını anlamanıza yardımcı olabilir?

<html>

    <body>

    <?php
        $liendb = mysql_connect("localhost","","");

        mysql_select_db ("test");
        for($i = 0; $i < 418; ++$i)
        {
            echo("Any old text<br />");
        }


        $resultatSQL = mysql_query("SELECT uid FROM nombres ORDER BY uid");

        while($tab = mysql_fetch_array($resultatSQL, MYSQL_ASSOC))

        {
            echo("<p>".$tab['uid']."</p>");
            echo("<br />\n");

        }

        mysql_close();

    ?>

    </body>
</html>

Sanırım aynı masada çalışmak, böylece bu örnekte dayanmaktadır mysql tablo ihraç .. İşte:

-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 06-01-2010 a las 21:49:50
-- Versión del servidor: 5.1.37
-- Versión de PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `test`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `nombres`
--

CREATE TABLE IF NOT EXISTS `nombres` (
  `uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=43 ;

--
-- Volcar la base de datos para la tabla `nombres`
--

INSERT INTO `nombres` (`uid`) VALUES
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8),
(9),
(10),
(11),
(12),
(13),
(14),
(15),
(16),
(17),
(18),
(19),
(20),
(21),
(22),
(23),
(24),
(25),
(26),
(27),
(28),
(29),
(30),
(31),
(32),
(33),
(34),
(35),
(36),
(37),
(38),
(39),
(40),
(41),
(42);

Teorik olarak, bu sayfa uygulamada, öyle numaralar 1-42 yüzden., "Herhangi bir eski metin" 418 satırları yazdırmak ve daha sonra masa "nombres" tüm kayıtları yazdırmak gerektiğine inanıyoruz. Ama sihirli sayı, 418, sorunlar ne olduğunu değiştirirseniz.

Ben 418 daha küçük bir sayı kullanırsanız, firefox yerine sadece bunu yapmak indir, ben boş dosya almak .. bana gösteren sayfasını indirmek için sunuyor ..

Ben 418 daha büyük bir sayı kullanın, ben masa "nombres" tüm girdileri alamadım. Ben 419 kullandığınızda Örneğin, ben sadece 1 sayısını elde 454, olana kadar ben 420 kullandığınızda sadece sayıları 1-40 olsun. 41'e sadece sayı 1 olsun. Ve. Sayfanın geri kalanı, her şeyi takip sayılar, kapanış gövde ve html etiketleri dahil, kesildi.

Ben 455 veya daha fazla kullanırsanız, ben hiç bir numara alamadım!

Benim sorular:

Is anyone else able to reproduce this behavior? How could you explain this behavior?

The server I use is apache (actually xampp) I printed phpinfo() and asked firefox to save the resulting page.. Here it is, compressed. www.angelfire.com/planet/shawninder/phpinfo.zip

3 Cevap

Kodundan bakılırsa, belki sorunlar mysql bağlantısı yatıyor. Mysql bağlantı kullanmadan önce başarılı veya başarısız olup olmadığını her zaman kontrol edilmelidir. Bu gibi kodunuzu yeniden deneyin:

<html>
    <body>
    <?php
        //open connection
        $liendb = mysql_connect("localhost","","");
        if ( ! $liendb )
        {
          die('Could not connect: ' . mysql_error());
        }

        //select database
        $select_db = mysql_select_db ("test", $liendb);
        if ( ! $select_db )
        {
          die ("Failed to do select the database: ' . mysql_error());
        }

        //print 'magic' lines
        for($i = 0; $i < 418; ++$i)
        {
            echo("Any old text<br />");
        }

        //get table's content
        $resultatSQL = mysql_query("SELECT uid FROM nombres ORDER BY uid", $liendb);
        if ( ! $resultatSQL )
        {
          die('Invalid query: ' . mysql_error());
        }

        //process table content
        while($tab = mysql_fetch_array($resultatSQL, MYSQL_ASSOC))
        {
            echo("<p>".$tab['uid']."</p>");
            echo("<br />\n");
        }
        mysql_close($liendb);
    ?>
    </body>
</html>

Mysql bağlantısı ile ilgili herhangi bir hata olduysa Bu kod ile, o zaman sessizce başarısız yerine, hata mesajı var olacaktır. Belki apache kazasında php modülü yapacak, böylece süreci erken öldü ve apache yerine bir web sayfası olarak görüntüleme, indirmek için bir dosya olarak eksik sayfa göndermek.

Beni bilgisayarınızda sonucu bildirin.

Tamam benim için çalışıyor. Bundan sonra bütün "Herhangi eski metin" beklenen hatları ve ayrıca tüm sayıları yazdırmak gibi görünüyor.

Ben bir web sunucusu veya PHP yanlış yapılandırma olabileceğini hayal, ama ben oldukça nerede başlamak için düşünemiyorum.

Ben denedim ve beklendiği gibi hepsi çalışıyor.

Ben fark tek şey sayfa 8Kb civarında olmasıdır. Bir 8KB sayfa boyutu ile bağlantılı olabilir sunucunuza bazı sihirli yapılandırma (hangi web sunucusu kullanıyorsunuz?) Var mı?