webForumDet fria alternativet

PHP Todo

PHP

18 svar · 267 visningar · startad av per-v

Medlem sedan maj 200161 inlägg
Frågan#1

Hej Pojkar och flickor...

Nu så börjar bli klar med mitt första PHP script någonsin ( :) ), det är en liten "todo" lista som en lirare behövde här på jobbet.

Ni får gärna gå in på
http://www.askfat.net/todo/index.php?namn=webforum

och kolla läget.

All kritik är välkommen... dålig eller bra, vilket som.

Tänk på att jag är riktig nybörjare.. he he.

Säkerheten är typ = 0 så ni behöver inte hacka sönder allt ;)

so long.

------------------
per.

Medlem sedan jan. 20012 204 inlägg
#2

Jag skulle föredra att ha datumet i ett annat format.. 2001-01-01 eller något...

Får man fråga hur du gör för att få varanan <td> i olika färger? Får inte mitt att funka och vilket teckensnitt det är på bilderna?

En solklar vinnare :e

------------------
"Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll"

Medlem sedan mars 2001484 inlägg
#3

Får man fråga hur du gör för att få varanan <td> i olika färger?

Tar mig friheten att svara på frågan ;)

När du loopar fram raderna kan du lägga med en variabel som ökar med 1 för varje rad. Sen nåt i den här stilen:

if ($variabel/2 = round($variabel/2)):
$color = "black";
else:
$color = "white";
endif;

<td bgcolor="<? echo($color); ?>">

Koden kan vara fel, men principen är som följer: Du kontrollerar om radnumret är ett udda eller ett jämnt tal. Udda rader får en färg och jämna en annan.

Btw, snyggt jobbat med sidan :e

------------------
/ jeps0

[Redigerat av jepsO den 29 maj 2001]

Medlem sedan jan. 20012 204 inlägg
#4

Tack... precis vad jag var ute efter :e

per-v får gärna säga vilket teckensnitt det är på bilderna...

------------------
"Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll"

Medlem sedan maj 200161 inlägg
#5

Hallå..

Tack för kritiken!

P,

$bgColor = (++$i & 1) ? '#FFFFFF' : '#EEEEEE';

echo "<tr bgcolor=\"$bgColor\">";

"Small fonts" heter typsnittet jag använt mig av på knapparna, det följde med i Win2000.

so long

------------------
per.

Medlem sedan mars 2000267 inlägg
#6

Vore det inte bättre om mam efter att man ändrat på ett inlägg kom direkt till antecknings listan.
Blir lite mycke klickande..

Vorre även bra när man skall deleta..Om det stod i popup rutan vilken anteckning det var frågan oom.

[Redigerat av Ryzzen den 30 maj 2001]

Medlem sedan jan. 20012 204 inlägg
#7

Vad innebär den här koden?

$bgColor = (++$i & 1) ? '#FFFFFF' : '#EEEEEE';
echo "<tr bgcolor=\"$bgColor\">";

------------------
"Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll"

Medlem sedan nov. 200013 890 inlägg
#8

Jag tycker inte att du skall tillåta HTML.

Det fixar du med hjälp av htmlspecialchars :)

------------------
/Tor

Gör ett hembesök

Medlem sedan jan. 20007 697 inlägg
#9

Bättre att du använder htmlentities() istället. :)

------------------
404 - signature not found

Medlem sedan maj 20001 953 inlägg
#10

Vad innebär den här koden?

Det är ungefär som en if sats. Om det visar sig att uttrycket inom parentesen är sant så körs det första efter ?. Annars körs det efter :

Förresten, vad heter denna konstruktionen på svenska? Klurade på det när jag skrev om den i PHP skolan.

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Köp, Byt eller Sälj på Gametrade.nu!

Medlem sedan mars 2001484 inlägg
#11

Jag är fortfarande inte riktigt med på sättet att skriva.

$bgColor = [b](++$i & 1)[/b] ? '#FFFFFF' : '#EEEEEE';

Ska det fetmarkerade föreställa en if-sats? :)

------------------
/ jeps0

Medlem sedan jan. 20012 204 inlägg
#12

inte jag heller...

------------------
"Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll"

Medlem sedan maj 200161 inlägg
#13

Tack för tipsen pojkar, jag ska byta datum formatet, försöka ordna så att HTML inte fungerar, och kolla om man ska skicka iväg användaren direkt till noteringarna när man uppdaterat ett inlägg.

P och jepsO

<table>

<?

$fil = file("fil.txt");

while(list(,$varde) = each ($fil)){ 
list ($glass,$sort,$pris) = split("\&#0124;", $varde);

	$bgColor = (++$i & 1) ? '#FFFFFF' : '#EEEEEE';

echo "<tr bgcolor=\"$bgColor\"><td>$glass</td><td>$sort</td><td>$pris</td></tr>";

}
?>

</table>

------------------
per.

[Redigerat av per-v den 31 maj 2001]

Medlem sedan mars 2001484 inlägg
#14

Jojo, hur det ska implementeras förstår jag. Det är bara raden med (++$i & 1) som är oklar. Hur kan det uttrycket vara en if-sats? Vad innebär "++$i & 1"?

------------------
/ jeps0

Medlem sedan mars 20007 896 inlägg
#15

Om du har använt dig av VB nångongång finns det en funktion som heter Iif, som först kollar ett uttryck, om det är sant returneras en true-sträng, annars en false-sträng.
Används i VB så här:
variabel = Iif(2 > 1, "Truedelen som returneras", "Falsedelen som returners")
variabeln får värdet "Trudelen som returneras", eftersom att uttrycket är sant.

(++$i & 1) ? '#FFFFFF' : '#EEEEEE'; fungerar likadant, fast det är då PHP, C, C#, Java som använder den typen...

Om uttrycket är sant returneras '#FFFFFF', annars returneras '#EEEEEE'

Hänger ni med?

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

Medlem sedan mars 2001484 inlägg
#16

Det förstod jag också :e

Oklarheten ligger i hur (++$i & 1) ska kunna tolkas som en if-sats. Vad innebär "++$i", och vad efterfrågas med "& 1"? Om man skulle omforma uttrycket till en "if variabel = värde then", hur skulle den då se ut?

I mina ögon står det bara "variabeln i och 1" innanför parentesen. "++" är jag inte bekant med (enbart sysslat med ASP innan).

Ledsen om det börjar bli lite långdraget, men jag förstår verkligen inte sättet att skriva :O

------------------
/ jeps0

Medlem sedan mars 20007 896 inlägg
#17

Ärligt talat förstår jag inte riktigt det heller... Det är knappast så att det finns någon logik i det :)

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

Medlem sedan feb. 20001 050 inlägg
#18

En vanlig IF-sats ser ju ut så här
IF <test> THEN
<true result>
ELSE
<false result>

där <test> är det som skall provas tex om ett tal är udda eller ej. <test> returnerar alltid "sant" eller "falskt".
Vid sant körs <true result> och vid "falskt", <false result>

På samma sätt funkar ?:-konstruktionen

<test> ? <true result> : <false result>

I detta fall är test-operationen en operation för att avgöra om ett tal, $i, är udda eller jämnt.
(++$i & 1) innebär att först ökas $i med 1, plus-plus betyder öka med ett, &-operatorn är bitvis AND. Ett tal som är udda som AND-at med 1 returnerar "sant", ett jämnt "falskt".
(Vill man öka $i efter testet skriver man $i++.)

Jag hade nog använd "mod-operatorn" % istället:
$bgColor = (++$i % 2) ? '#FFFFFF' : '#EEEEEE';
resutlatet blir dock det samma...

/nicclas - www.nyhetsrubriker.com

[Redigerat av nicclas den 31 maj 2001]

Medlem sedan juni 20008 205 inlägg
#19

(++$i & 1)
Betyder:
Öka på $i med ett och gör sedan bitvis OCH mot värdet 1.
Bitvis OCH med 1 resulterar i noll eller ett, och dessa kan som bekant användas som logiska värden. Sen ska ju koden se ut så här för att vara ball ;) :

# Innan loopen:
$färger = array('FFFFFF', 'EEEEEE');
$varv = 0;
...
# I loopen:
echo $färger($varv++ % 2);

Ang. TODO-listan
Tycker man ska komma till listan över anteckningar när man lagt till en anteckning, isf att hamna på "lägg till ny"-sidan.

\t Asch, Nicke han före

------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.

[Redigerat av spango den 31 maj 2001]

254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)