Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Voisko joku auttaa!

Sivun loppuun

Suominen90 [30.07.2004 10:05:29]

#

Miten saisi tehtyä sellasseen jutun että se kattois tiedostosta pass.dat kenellä on minäkin päivänä synttäri pass.datin sisältö:
13 = päivämäärä
4 = kuukausi
1990 = vuosi
Hyvinkää = asuinpaikka
e1eeac2da35a30fdeb3c2e8f4524e0ac = salasana (md5)
edit!! siis jokasella käyttäjällä on oma kansio missä on pass.dat

kenkku [30.07.2004 11:00:08]

#

Kannattaa tutustua date-funktioon.

Edit: Kyllä tulee hidas synttäriskripti, jos on paljon käyttäjiä. Myslillä tuo onnistuisi yhdellä kyselyllä ;)

Suominen90 [30.07.2004 18:36:07]

#

Esimerkkiä kiitos!

Antti Laaksonen [30.07.2004 18:44:36]

#

Yksittäisen käyttäjän syntymäpäivän tarkistaminen onnistuu suunnilleen seuraavasti:

<?php

$tiedosto = "kake/pass.dat";

$tiedot = file($tiedosto);

if (intval(date("d")) == intval($tiedot[0]) && intval(date("m")) == intval($tiedot[1])) {
    echo "Kakella on synttärit!";
}

?>

Suominen90 [30.07.2004 18:52:45]

#

Mutta pitäis saada toi silleen että se tutkis kaikkien kansioitten pass.dat tiedostot ja kattois kenel on synttärit

tsuriga [30.07.2004 19:04:46]

#

Funktiot joihin tahdot tutustua:
glob / opendir & readdir

Suominen90 [30.07.2004 20:00:28]

#

eipä ollu paljoo apua noista linkeistä

ajv [30.07.2004 20:22:32]

#

Ootko jo saanu top-listan valmiiks? :P
https://www.ohjelmointiputka.net/keskustelu/4936-mitä-tästä-pitäisi-muuttaa

Suominen90 [30.07.2004 20:30:21]

#

Suurinpiirtein oon saanu miten niin

ajv [30.07.2004 20:42:23]

#

Kunhan ajattelin...

tsuriga [31.07.2004 00:00:41]

#

Joko tutustuit esittämiini funktioihin? Periaate on seuraava:

while(tiedosto-on-kunnon-kansio) {
  avaase
  lue pass.dat muuttujaan
  tarkista pvm
  }

tiedosto-on-kunnon-kansio = if (is_dir($filu) && $filu!=".." && $filu!="."). En ole varma tajuaako is_dir hylätä nuo kaksi viimeistä ehtoa automaagisesti.

ajv [31.07.2004 01:26:28]

#

Ei tajua hylätä.

OFFTOPIC:
Itselle on jostain jäänyt käyttöön "hidas regexpi"

if(!ereg("^\\.",$filu) && is_dir($filu))

ja nyt testasin tolla T.M.:n scriptillä kuinka suuri ero on nopeudessa tuohon tsurigan esimerkkiin

if($filu!=".." && $filu!="." && is_dir($filu))

ja tulos oli aikalailla sama:

regexpillä:               Keskimäärin 377087 kierrosta per sekunti
vertailuoperaattoreilla:  Keskimäärin 379299 kierrosta per sekunti

Suominen90 [31.07.2004 10:44:20]

#

while( if (is_dir($filu) && $filu!=".." && $filu!=".")) {
  avaase

$tiedot = file($tiedosto);
if (intval(date("d")) == intval($tiedot[0]) && intval(date("m")) == intval($tiedot[1])) {
    echo "synttärit!";
}
  }

mitä tohon avaase kohtaan pitää pistää

kenkku [31.07.2004 11:29:19]

#

Xuvo kirjoitti:

mitä tohon avaase kohtaan pitää pistää

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj5

tsuriga [31.07.2004 14:53:31]

#

Tuolta Hakemiston tiedostojen läpikäyminen. Oletetaan, että $filu-muuttujaan haetaan kaikki sen kansion tiedostot ja kansiot, jossa käyttäjien kansiot sijaitsevat. Tiedoston polku on silloin tietenkin $filu."/pass.dat". $tiedot-muuttujaan pitää lukea tiedot file-funktiolla antamalla parametriksi tuo äsken mainittu pass.dat-tiedoston polku.

Suominen90 [31.07.2004 15:55:56]

#

Ainiinku näin

while( if (is_dir($filu) && $filu!=".." && $filu!=".")) {
$tiedosto "$filu."/pass.dat"";

$tiedot = file($tiedosto);
if (intval(date("d")) == intval($tiedot[0]) && intval(date("m")) == intval($tiedot[1])) {
    echo "synttärit!";
}
  }

Mikä mättää ku tulee Parse error: parse error, unexpected T_IF in W:\www\test.php on line 2

Tempfile [31.07.2004 16:04:22]

#

Tuolta toiselta riviltä taitaapi puuttua yhtäsuuruusmerkki. Kannattaa hankkia syntaksivärityksellinen tekstieditori, silloin tuollaiset huomaa helposti.

kenkku [31.07.2004 16:05:30]

#

Xuvo kirjoitti:

Ainiinku näin

while( if (is_dir($filu) && $filu!=".." && $filu!=".")) {
$tiedosto "$filu."/pass.dat"";

$tiedot = file($tiedosto);
if (intval(date("d")) == intval($tiedot[0]) && intval(date("m")) == intval($tiedot[1])) {
    echo "synttärit!";
}
  }

Mikä mättää ku tulee Parse error: parse error, unexpected T_IF in W:\www\test.php on line 2

Sä et taida osata PHP:tä? Toi on kyllä vähän päin peetä :P

Suominen90 [31.07.2004 16:07:25]

#

kenkku kirjoitti:

Xuvo kirjoitti:

Ainiinku näin

while( if (is_dir($filu) && $filu!=".." && $filu!=".")) {
$tiedosto "$filu."/pass.dat"";

$tiedot = file($tiedosto);
if (intval(date("d")) == intval($tiedot[0]) && intval(date("m")) == intval($tiedot[1])) {
    echo "synttärit!";
}
  }

Mikä mättää ku tulee Parse error: parse error, unexpected T_IF in W:\www\test.php on line 2

Sä et taida osata PHP:tä? Toi on kyllä vähän päin peetä :P

No voiks sä korjata sen. Mä oon kyl kehitelly jo uuden systeemin

tsuriga [31.07.2004 16:33:10]

#

Whileen if on turha, enkä tarkoittanut sitä ihan niin, mutta toimii se niinkin. Muuttujien ympärille ei tarvita mitään hipsuja. Ja sitten, luet php:n manuaalista daten käytön, yhdistät pass.datin rivit 0 ja 1 (laita vaikka samalle riville päivä-kuukausi-vuosi) ja vertailet sopivaa daten muotoa siihen riviin.

Suominen90 [31.07.2004 16:41:12]

#

Mä oon nyt tehny sellasseen systeemin että se tulostaa esim 31.07.txt tiedostosta sen päivän synttäri sankarit ja rekisteröinnissä se tekee tiedoston käyttäjän syntymäpäivän mukaan ja kirjottaa tiedostoon käyttäjän nimen mutta miten saan sen tallentamaan aina seuraavalle riville eikä vanhan nimen päälle?

Antti Laaksonen [31.07.2004 17:10:02]

#

Ihan hyvä ratkaisu, jos syntymäpäivä kysytään jo rekisteröityessä. Kun avaat tiedoston kirjoittamista varten, käytä "w"-parametrin sijaan "a":ta. Silloin vanhat tiedot jäävät tiedoston alkuun.

$tiedosto = fopen("31.07.txt", "a");

Suominen90 [31.07.2004 17:55:17]

#

mutta tallentaako toi seuraavalle riville aina uuden käyttäjän nimen. Sit ois viel sellanen kysymys että voisko joku tehä mulle sellasseen koodin että jos ei oo siltä päivältä tiedostoa niin se ei valittais mitään vaan sanois vaikka ei synttäri sankareita

kenkku [31.07.2004 18:13:24]

#

<?php
  if(!file_exists($paivamaara.".txt")) print "Ei syntymäpäiväsankareita tänään!";
?>

Eli jos tiedosto $paivamaara.txt ei ole olemassa, printataan ilmoitus.

Suominen90 [31.07.2004 22:51:14]

#

<?php

$tt = fopen("./".date("d.m").".txt", "r");

while (!feof($tt)) {
   if(!file_exists("./".date("d.m").".txt")) print "Ei syntymäpäiväsankareita tänään!";
   $rivi = fgets($tt, 1024);
   echo "$rivi";


}

fclose($tt);

?>

Mikäs tässä mättää ku tulostaa vaan Warning: fopen(./31.07.txt): failed to open stream: No such file or directory in W:\www\index.php on line 45

Warning: feof(): supplied argument is not a valid stream resource in W:\www\index.php on line 47
Ei syntymäpäiväsankareita tänään!
Warning: fgets(): supplied argument is not a valid stream resource in W:\www\index.php on line 49

tsuriga [01.08.2004 01:34:42]

#

Sei pysty avaa tollasta tiedostoa, ota alusta ./ pois, jos se on samassa kansiossa niin niittei tartte ja laita ton rivin perään seuraava: or die("Tiedostoa ei löytynyt!");

Suominen90 [01.08.2004 10:51:02]

#

minkä rivin perään?

tsuriga [01.08.2004 11:16:38]

#

$tt = @fopen(date("d.m").".txt", "r") or die("Tiedostoa ei löytynyt!");

Suominen90 [01.08.2004 11:17:35]

#

Tulee Warning: fopen(./01.08.txt): failed to open stream: No such file or directory in W:\www\index.php on line 44
Tiedostoa ei löytynyt!

Suominen90 [01.08.2004 11:25:08]

#

no nyt toi vetää dessun sekasi

tsuriga [01.08.2004 11:50:47]

#

Pahis lyhenteet sulla, design kenties? Ota die pois ja käytä jotain totuusarvomuuttujaa, jonka mukaan teet tiedoston lukemiset. Ite lukisin ihan tyyliin @file(.. . Saattaa aika sotku olla sulla se kansio jos pidät noita päivämäärätiedostoja samassa koodien kanssa.


Sivun alkuun

Vastaus

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

Tietoa sivustosta