/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
News Script i PHP uden MySql
Fra : Gundersen


Dato : 20-02-02 19:51

Hej

Jeg har spurgt før, men jeg fik ikke lige nogle svar jeg var 100% opsat
på!

Jeg vil gerne have et script, hvor jeg kan tilføje nyheder, til min
"forside".
Dvs. at jeg skal bruge et script der kan tilføje nogle linier tekst i en
Txt fil, eller en INC fil.
Dette gerne med et login!

Det er det eneste det skulle kunne. Jeg tror godt at jeg selv kan
programere det, men jeg gider ikke til at "opfinde den dybe tallerken"
hvis i forstår hvad jeg mener.

Er der nogle der kan hjælpe mig!

Mvh Emil

--
www.Scooterzone.dk


 
 
Martin Mouritzen (20-02-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 20-02-02 21:49

After I finished the 3 Pan Galactic Gargle Blasters, Gundersen
<Gundersen@-NOSPAM-tdcadsl.dk> just offered me, he muttered some weird
stuff, and I had to correct this gibberish:

>Det er det eneste det skulle kunne. Jeg tror godt at jeg selv kan
>programere det, men jeg gider ikke til at "opfinde den dybe tallerken"
>hvis i forstår hvad jeg mener.

Jeg vil nu alligevel mene at det er en så lille opgave at det går fra
definitionen "opfinde den dybe tallerken" til "lære noget".
--
Nano Martin Mouritzen Phone +45 24899896
Vestergade 43 Programmer Advanced Simplicty
DK-8000 Århus martin@nano.dk http://www.nano.dk

Svenne Krap (20-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 20-02-02 23:14

On Wed, 20 Feb 2002 21:49:00 +0100, Martin Mouritzen <martin@fez.dk>
wrote:

>Jeg vil nu alligevel mene at det er en så lille opgave at det går fra
>definitionen "opfinde den dybe tallerken" til "lære noget".

Enig.

Der er ikke meget opfinden i at brug flock(), fopen() osv.

Skrive en lille mini-driver til at accesse data med.

God lille ting, der skal kunne løses på ½ time.

Svenne
--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Gundersen (21-02-2002)
Kommentar
Fra : Gundersen


Dato : 21-02-02 00:50

Hej igen

>>Jeg vil nu alligevel mene at det er en så lille opgave at det går fra
>>definitionen "opfinde den dybe tallerken" til "lære noget".

Tja.... Måske!

Jeg har lige sidet og prøvet at ekspermentere lidt med at lave et login system, hvilket gik helt uden problemer!

Der begynd først at blive problemer da jeg skulle til at læse fra filen
som jeg havde lavet!

Jeg har lagt en funktion ind der skriver følgende i en fil;
Overskrift|Dato|Teksten|Skrevet af

Dette er jo simpelt nok, men så når jeg skal have den til at læse det
igen, og splitte det op, slår mit trætte hovede fra!

Jeg skal have den til at sætte værdierne i 4 eller lign.

Jeg skal også have den til at tilføje en stump kode, hvergang til de tabeler som hver linie fra filen skal være i.

Hvordan er det lige jeg får den til det?

Et andet problem er også at den tilføjer dem ned af, dvs at den nyeste
er i bunden! Det er jo ikke smart! Hvor dan er der lige jeg laver det om?


Mvh Emil

--
www.Scooterzone.dk


Martin Mouritzen (21-02-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 21-02-02 10:32

After I finished the 3 Pan Galactic Gargle Blasters, Gundersen
<Gundersen@-NOSPAM-tdcadsl.dk> just offered me, he muttered some weird
stuff, and I had to correct this gibberish:

>Dette er jo simpelt nok, men så når jeg skal have den til at læse det
>igen, og splitte det op, slår mit trætte hovede fra!

Prøv at kig på <URL:http://www.php.net/manual/en/function.explode.php>

>Et andet problem er også at den tilføjer dem ned af, dvs at den nyeste
>er i bunden! Det er jo ikke smart! Hvor dan er der lige jeg laver det om?

[utestet]
function writeToFile($thingy) {
   if ($oldthingy = @file("minfil.txt")) {
      if ($fp = @fopen("minfil.txt","w")) {
         fputs($fp,$thingy);
         foreach($oldthingy as $oldthing) {
            fputs($fp,$oldthing);
         }
         fclose($fp);
         return true;
      }
      else {
         return false;
      }
   }
   else {
      return false;
   }
}
--
Nano Martin Mouritzen Phone +45 24899896
Vestergade 43 Programmer Advanced Simplicty
DK-8000 Århus martin@nano.dk http://www.nano.dk

Mogens Meier Christe~ (21-02-2002)
Kommentar
Fra : Mogens Meier Christe~


Dato : 21-02-02 06:01

"Svenne Krap" <usenet@krap.dk> wrote in message
news:qr787u83tuioelr3kkrl5134vv1dvle5i1@4ax.com...

> Der er ikke meget opfinden i at brug flock(), fopen() osv.
>
> Skrive en lille mini-driver til at accesse data med.
>
> God lille ting, der skal kunne løses på ½ time.

Hmm, skal vi nu ikke lige prøve at lade være med at underdrive??? Kræver det
ikke kendskab til NNTP og også en del aftestning m.m.m.?

Jeg ville nok skyde på 20 gange så meget, altså 10 timers arbejde.

Men jeg er heller ikke så hurtig... ;)

--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk



Martin Mouritzen (21-02-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 21-02-02 10:25

After I finished the 3 Pan Galactic Gargle Blasters, "Mogens Meier
Christensen" <mmc@nospam.dk> just offered me, he muttered some weird
stuff, and I had to correct this gibberish:

>Hmm, skal vi nu ikke lige prøve at lade være med at underdrive??? Kræver det
>ikke kendskab til NNTP og også en del aftestning m.m.m.?

Så vidt jeg kunne læse har han ikke på noget tidspunkt spurgt om noget
som har med NNTP at gøre[*].

* Måske du forveksler med en anden tråd i gruppen?

Mogens Meier Christe~ (21-02-2002)
Kommentar
Fra : Mogens Meier Christe~


Dato : 21-02-02 15:02

"Martin Mouritzen" <martin@fez.dk> wrote in message
news:a52efp$mmf$1@news.cybercity.dk...

> Så vidt jeg kunne læse har han ikke på noget tidspunkt spurgt om noget
> som har med NNTP at gøre[*].
>
> * Måske du forveksler med en anden tråd i gruppen?

Ups, helt sikkert, undskyld! :)


--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk



Svenne Krap (21-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 21-02-02 15:13

On Thu, 21 Feb 2002 06:00:40 +0100, "Mogens Meier Christensen"
<mmc@nospam.dk> wrote:

>Hmm, skal vi nu ikke lige prøve at lade være med at underdrive??? Kræver det
>ikke kendskab til NNTP og også en del aftestning m.m.m.?

NNTP ? Jeg havde forstået det var en simpel nyhedsspalte, basalt set
en dato, en overskrift og en brødtekst.

Svenne
--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Svenne Krap (21-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 21-02-02 15:55

On Wed, 20 Feb 2002 23:14:05 +0100, Svenne Krap <usenet@krap.dk>
wrote:

>God lille ting, der skal kunne løses på ½ time.

Ok, underdrevet. Dette her tog 22 minutter at skrive og er utestet. Så
vi når måske op på 45 minutter i alt.


<?php

class arraydumper {
var $filename="www/whatever/news.dat";
// dont touch the data behind this point !
var $data=array();
function load() {
$temp_fp=fopen($this->file,"r");
flock($temp_fp, LOCK_SH);
$temp_data== join ('', file ($this->filename));
flock($temp_fp, LOCK_UN);
fclose($temp_fp);
$this->data=unserialize($temp_data);
}
function save() {
$temp_fp=fopen($this->file,"w");
flock($temp_fp, LOCK_SH);
ftruncate($temp_fp,0);
fseek($temp_fp,0):
fputs(serialize($this->data));
flock($temp_fp, LOCK_UN);
fclose($temp_fp);
}
function addbefore($before,$item) {
$elementcount=count($this->data);
for ($i=0; $i<$elementcount;$i++) {
if ($i==$before) {
$temp_array[]=$item;
}
$temp_array=$this->data[$i];
}
$this->data=$temp_array;
}
function delete($number) {
$elementcount=count($this->data);
for ($i=0; $i<$elementcount;$i++) {
if ($i!=$number) $temp_array[]=$this->data[$i];
}
$this->data=$temp_array;
}
}

class headlinenews extends arraydumper {
function headlinenews() {
$this->load();
}
function add_news($headline, $body,$submitter,$date=null) {
$temp_newsitem["headline"]=$headline;
$temp_newsitem["body"]=$body;
if ($date==null) {
$temp_newsitem["date"]=date("Y-m-d H:i:s");
} else {
$temp_newsitem["date"]=$date;
}
$temp_newsitem["submitter"]=$submitter;
$this->addbefore(0, $temp_newsitem);
$this->save();
}
function get_headline($number) {
return $this->data[$number]["headline"];
}
function get_body($number) {
return $this->data[$number]["body"];
}
function get_date($number) {
return $this->data[$number]["date"];
}
function get_submitter($number) {
return $this->data[$number]["submitter"];
}
function get_news_count() {
return count($this->data);
}
}

// eksempel

$n=new headlinenews;

// tilføj nyhed
$n->add_news("Test","Denne funktion skulle virke - men er ikke
testet.","Svenne");
// sørg for, der kun er 50 items i listen
if ($n->get_news_count() > 50) $n->delete($50);

// kast dem alle ud
for ($i=0; $i<$n->get_news_count() ; $i++) {
echo "Titel : " . $n->get_headline($i) . "<br>";
echo "Brødtekst : " . $n->get_body($i) . "<br>";
echo "Forfatter : " . $n->get_submitter($i) . "<br>";
echo "Tid : " . $n->get_date($i) . "<br>";
echo "<br>";
}

?>

Svenne
--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Svenne Krap (21-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 21-02-02 15:58

On Thu, 21 Feb 2002 15:54:46 +0100, Svenne Krap <usenet@krap.dk>
wrote:


> function save() {
> $temp_fp=fopen($this->file,"w");
> flock($temp_fp, LOCK_SH);

skulle have været
   flock($temp_fp, LOCK_EX);

--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Gundersen (21-02-2002)
Kommentar
Fra : Gundersen


Dato : 21-02-02 19:46

Hej

> skulle have været
>    flock($temp_fp, LOCK_EX);
>
Jeg kar lige prøvet at ekspermentere med dit script! men der er lidt små
fejl som jeg er ved at prøve at rette!

den kommer med 11 fejl når man prøver at loade siden!
function load() {
> $temp_fp=fopen($this->file,"r");
> flock($temp_fp, LOCK_SH);
> $temp_data== join ('', file ($this->filename));

Det har noget med liniel $this->file og filename at gøre!

Mangler der ikke noget med file? Øverst i scriptet er linien:
> var $filename="news.dat";


Mvh Emil

du kan evt lige teste den på url:
http://www.scooterzone.dk/admin/test/
--
www.Scooterzone.dk


Svenne Krap (21-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 21-02-02 20:15

On Thu, 21 Feb 2002 19:45:58 +0100, Gundersen
<Gundersen@-NOSPAM-tdcadsl.dk> wrote:

>Hej
>
> > skulle have været
> >    flock($temp_fp, LOCK_EX);
> >
>Jeg kar lige prøvet at ekspermentere med dit script! men der er lidt små
>fejl som jeg er ved at prøve at rette!
>
>den kommer med 11 fejl når man prøver at loade siden!
> function load() {
> > $temp_fp=fopen($this->file,"r");
> > flock($temp_fp, LOCK_SH);
> > $temp_data== join ('', file ($this->filename));
>
>Det har noget med liniel $this->file og filename at gøre!
>Mangler der ikke noget med file? Øverst i scriptet er linien:
> > var $filename="news.dat";

$temp_fp=fopen($this->file,"r");

skulle have været

$temp_fp=fopen($this->filename,"r");

dette gælder begge steder !

Bemærk, inden du har smidt første nyhed i, vil der kunne en fejl
besked. Det skal du ikke tage så tungt (eller implementere alle de
fejltjek, jeg ikke orkede, da det bare var for at vise en vej frem).

Svenne
--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Svenne Krap (21-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 21-02-02 21:42

Så, nu i testet version 1.1 :)

Der er nu to steder, du skal rette, i starten af hver klase !

Husk, at hver klasse bør være i sin egen inkludefil !


<?php
class arraydumper {
var $filename="/www/sk/kracon.dk/html/myfile.dat";
// dont touch the data behind this point !
var $data=array();
function load() {
if (file_exists($this->filename)) {
$temp_fp=fopen($this->filename,"r");
flock($temp_fp, LOCK_SH);
$temp_data=join ('', file ($this->filename));
flock($temp_fp, LOCK_UN);
fclose($temp_fp);
$this->data=unserialize($temp_data);
} else {
$this->data=array();
}
}
function save() {
$temp_fp=fopen($this->filename,"w");
flock($temp_fp, LOCK_EX);
ftruncate($temp_fp,0);
fseek($temp_fp,0);
fputs($temp_fp,serialize($this->data));
flock($temp_fp, LOCK_UN);
fclose($temp_fp);
}
function addbefore($before,$item) {
$elementcount=count($this->data);
if ($elementcount != 0) {
for ($i=0; $i<$elementcount;$i++) {
if ($i==$before) {
$temp_array[]=$item;
}
$temp_array[]=$this->data[$i];
}
} else {
$temp_array[]=$item;
}
$this->data=$temp_array;

}
function delete($number) {
$elementcount=count($this->data);
for ($i=0; $i<$elementcount;$i++) {
if ($i!=$number) $temp_array[]=$this->data[$i];
}
$this->data=$temp_array;
}
}

class headlinenews extends arraydumper {
var $max_elements=3;
// dont touch the data behind this point !
function cutdown($elements) {
if ($this->get_news_count() <= $elements) return true;
for ($i=0; $i<$elements; $i++) {
$temp_array[]=$this->data[$i];
}
$this->data=$temp_array;
}
function headlinenews() {
$this->load();
}
function add_news($headline, $body,$submitter,$date=null) {
$temp_newsitem["headline"]=$headline;
$temp_newsitem["body"]=$body;
if ($date==null) {
$temp_newsitem["date"]=date("Y-m-d H:i:s");
} else {
$temp_newsitem["date"]=$date;
}
$temp_newsitem["submitter"]=$submitter;
$this->addbefore(0, $temp_newsitem);
$this->cutdown($this->max_elements);
$this->save();
}
function get_headline($number) {
return $this->data[$number]["headline"];
}
function get_body($number) {
return $this->data[$number]["body"];
}
function get_date($number) {
return $this->data[$number]["date"];
}
function get_submitter($number) {
return $this->data[$number]["submitter"];
}
function get_news_count() {
return count($this->data);
}
}

// eksempel

$n=new headlinenews;
$n->add_news("Test","Denne funktion skulle virke - men er ikke
testet.","Svenne");
$n->add_news("Test","Men nu er det testet.","Svenne","2002-02-22
00:00:00");

for ($i=0; $i< $n->get_news_count(); $i++) {
echo "Titel : " . $n->get_headline($i) . "<br>";
echo "Brødtekst : " . $n->get_body($i) . "<br>";
echo "Forfatter : " . $n->get_submitter($i) . "<br>";
echo "Tid : " . $n->get_date($i) . "<br>";
echo "<br>";
}

?>

--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Svenne Krap (21-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 21-02-02 20:17


> function save() {
> $temp_fp=fopen($this->file,"w");
> flock($temp_fp, LOCK_SH);
> ftruncate($temp_fp,0);
> fseek($temp_fp,0):
> fputs(serialize($this->data));
fputs ($temp_fp, serialize($this->data));
--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Gundersen (21-02-2002)
Kommentar
Fra : Gundersen


Dato : 21-02-02 21:45

Hej igen


> fputs ($temp_fp, serialize($this->data));

Nå, men nu brokker den sig ikke mere over scriptet!


Der var også et $ formeget i linien med maksimumet af linier!

Hvordan skal jeg så lige konstrukere delen?


Mvh Emil


--
www.Scooterzone.dk


Svenne Krap (21-02-2002)
Kommentar
Fra : Svenne Krap


Dato : 21-02-02 21:50

On Thu, 21 Feb 2002 21:44:35 +0100, Gundersen
<Gundersen@-NOSPAM-tdcadsl.dk> wrote:

>Nå, men nu brokker den sig ikke mere over scriptet!

Se den nye version, den har rettet et par ekstra små upser ....

Som skrevet, prop hver af klasser i en include fil (kunne jo kalde dem
arraydumper.inc og headlinenews.inc)

Ret i starten af hver klasse !

Lav et lille admin-panel og ret løkken i eksemplet til dit design.

Svenne
--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste