Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Haku skripti

larryweb [14.12.2002 14:27:42]

#

Idea on että test.php sivulla on valikko, josta klikkaamalla esim. Games skripti hakee games.php sivun tai "sisällön" siihen alle, mutten saanut aivan onnistumaan sitä. Olen käyttänyt pohjana Doikan TV haku skriptiä.Joten tässä alla on skripti, jota pitäisi muokata niin, että se hakisi sen sivun siihen haku kentän alle. Voisitteko neuvoa.

<form action="testi.php" method="post">
Lataa:<br>
<select name="lataa">
<option value="games" selected>Games</option>
<option value="softwares">Softwares</option>
<option value="flash">Flash</option>
<input type="submit" value="Hae">
</select>
</form>

<?php

if ($lataa){
$url = 'http://koti.mbnet.fi/nimi/hakemisto/'.$lataa.'.php';
$rivi = file($url);
$yht = count($rivi);
for ($i = 0; $i <= $yht; $i++) {
if (ereg("<B>",$rivi[$i])){
$tmp = str_replace("<dt><B>", "", $rivi[$i]);
$tmp = str_replace("</B><br>", "", $tmp);
$tmp = ereg_replace("<(.*)>", "", $tmp);
$valmis.= "<br>$tmp";}
}
print("<b>$lataa</b><br>$valmis<br><br>");
}
?>

trinit [14.12.2002 17:26:44]

#

lainaus:

"sisällön" siihen alle, mutten saanut aivan onnistumaan sitä.

Olisit tietysti voinut kertoa mikä siinä _nyt_ oli vialla.

Miksi tuo sivun sisältö pitää ensin ottaa muuttujaan ja sen kautta tulostaa? Eikö olisi helpompi käyttää include() funktiota? Mutta mikäli sen haluaa tehdä noin niin ehkä se toimisi näin:

<?php
    if ($lataa)
    {
        $url = 'http://koti.mbnet.fi/nimi/hakemisto/'.$lataa.'.php';
        $rivi = file($url);
        $yht = count($rivi);

        for ($i = 0; $i <= $yht; $i++)
        {
            if (ereg("<B>",$rivi[$i]))
            {
                $tmp = str_replace("<dt><B>", "", $rivi[$i]);
                $tmp = str_replace("</B><br>", "", $tmp);
                $tmp = ereg_replace("<(.*)>", "", $tmp);
                $rivi[$i] = "<br>" . $tmp;
            }
        }

        print ("<b>$lataa</b><br>");

        for ($i = 0; $i < count[$rivi]; $i++)
        {
            print($rivi[$i]);
        }

        print ("<br><br>");
    }
?>

include() avulla menini jotenkin näin:

<?php
    if ($lataa)
    {
        print ("<b>$lataa</b><br>");
        include ("http://koti.mbnet.fi/nimi/hakemisto/" . $lataa . ".php");
        print ("<br><br>");
    }
?>

Tuota käyttämällä siitä tietenkin jää str_ ja ereg_replace:t pois. Järkevämpää olisi jos tiedoston sisältö olisi jo valmiiksi oikeassa muodossa.

Esimerkkejä ei ole testattu käytännössä.

larryweb [14.12.2002 19:13:46]

#

Juu include() oli paljon helpompi käyttää ja hyvin toimii.
Kiitos kauheasti trinit vaivannäöstä.

Veltto [14.12.2002 19:14:29]

#

Mutta includellahan ei voi sisällyttää tiedostoa urlista vai olenko ihan väärässä? includen sijasta voisi käyttää esim. readfileä

trinit [14.12.2002 22:22:59]

#

lainaus:

Mutta includellahan ei voi sisällyttää tiedostoa urlista vai olenko ihan väärässä?

Kyllä ja ei. includella voi sisällyttää tiedoston toisesta osoitteesta mikäli "allow_url_fopen" asetus on päällä PHP-tulkin asetuksista. Oletusasetuksissa se on nimenomaan päällä. MUTTA tuossakin on pieni juju vielä, että Windows pohjaisissa tulkeissa se ei toimi koskaan riippumatta asetuksistakaan!

Lisätietoa https://www.php.net/manual/en/function.include.php

Veltto [15.12.2002 19:19:43]

#

Ahaa, no nyt tiedän tuonkin.

HtH [16.12.2002 20:44:55]

#

Minusta koodit tagista ei tarvitsisi alleviivata osoitteita. Antti voisit koodata nopsaan sellaisen pikku yksityiskohdan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta