/ 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
Php til .txt?
Fra : Yasser


Dato : 10-09-11 11:33

Hej html.dk

Jeg vil gerne oprette fx en gæste bog som følgende..

http://www.nemprogrammering.dk/Tutorials/PHP/T14PHP.php

Faktisk er det ikke en gæstebog, det eneste mit system skal er at
den skal gør hvad jeg fortæller den hehe, og det er at den skal
vise navn og kommentar, så lad os kalde det for en gæstebog


..MEN problemet er at fopen er disabled på min server.. :
http://wiki.dreamhost.com/Allow_url_fopen

er der noget alternativt, til at man kan skrive og vise en txt
file, derudover behøves det ikke at være en txt file.. det må
være hvad som helst, også hvis der er nogle der kan få den til at
skrive til mysql?
Det vigtigste er at den skal skrive til X, og X skal vises på
phpen..

tak :)


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Bertel Lund Hansen (10-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 10-09-11 12:13

Yasser skrev:

> .MEN problemet er at fopen er disabled på min server.. :

Det er ikke helt rigtigt.

> http://wiki.dreamhost.com/Allow_url_fopen

Det der er spærret for, er at du kan åbne filer fra andre servere
end din egen. Er det nødvendigt?

Hvis ikke det er, skal du bare brge noget i stil med:

   define ('INFILE', 'guestbook.txt');
   
(1)    $contents=file(INFILE);
   foreach ($contents as $line)
      echo $line;

(1) læser automatisk en tekstfil og opretter et array med alle
linjerne (skilt ef linjeskift - linjeskiftet indgår i hver
linje). Hvis du skal bruge linjerne uden linjeskift, kan du
naturligvis trimme dem, men i den slags tilfælde bruger jeg en
lidt anden metode:

(2)    $contents=explode("\n",file_get_contents(INFILE));

file_get_contents() henter hele filen som en lang tekststreng, og
explode laver så et array - uden det tegn der eksploderes med.

Opskriften laver en tekstudskrift. Du må selv pakke det ind i den
nødvendige HTML.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Yasser (12-09-2011)
Kommentar
Fra : Yasser


Dato : 12-09-11 12:04

Bertel Lund Hansen wrote in
dk.edb.internet.webdesign.serverside.php:
> Yasser skrev:
>
> > .MEN problemet er at fopen er disabled på min server.. :
>
> Det er ikke helt rigtigt.
>
> > http://wiki.dreamhost.com/Allow_url_fopen
>
> Det der er spærret for, er at du kan åbne filer fra andre servere
> end din egen. Er det nødvendigt?
>
> Hvis ikke det er, skal du bare brge noget i stil med:
>
>    define ('INFILE', 'guestbook.txt');
>    
> (1)    $contents=file(INFILE);
>    foreach ($contents as $line)
>       echo $line;
>
> (1) læser automatisk en tekstfil og opretter et array med alle
> linjerne (skilt ef linjeskift - linjeskiftet indgår i hver
> linje). Hvis du skal bruge linjerne uden linjeskift, kan du
> naturligvis trimme dem, men i den slags tilfælde bruger jeg en
> lidt anden metode:
>
> (2)    $contents=explode("\n",file_get_contents(INFILE));
>
> file_get_contents() henter hele filen som en lang tekststreng, og
> explode laver så et array - uden det tegn der eksploderes med.
>
> Opskriften laver en tekstudskrift. Du må selv pakke det ind i den
> nødvendige HTML.
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/

Hej igen,

Sådan, så blev jeg lidt klogere hehe..
Du kan se at jeg er ikke ekspert i det her...

Men kan du så hjælpe her, jeg tror jeg har gjort noget forkert, kan
du indsætte koderbe både hvor den skal læse fra 'guestbook.txt' og
skrive i 'guestbook.txt', i de rigtige steder:

<?php
session_start();
?>
<? $strTitle="forside";?>

<? include("header.inc"); ?>

<body>

<div class="indhold">

<?php
if(isset($_SESSION['logget_ind'])){
echo " <h1> $strTitle </h1>

<p>
}
'INFILE', 'guestbook.txt');

(1) $contents=file(INFILE);
foreach ($contents as $line)
echo $line;</p>
{";
}
else
{
echo "<h1>Ukorrekt login</h1>

<p>Du skal være logget ind for at se disse sider. <a
href=\"default.php\">Log in</a></p>";
}
?>

</div>

<? include("menu2.inc"); ?>

</body>

</html>


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (12-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 12-09-11 13:16

Yasser skrev:

> Men kan du så hjælpe her, jeg tror jeg har gjort noget forkert, kan
> du indsætte koderbe både hvor den skal læse fra 'guestbook.txt' og
> skrive i 'guestbook.txt', i de rigtige steder:

Ja, jeg har lavet et forslag. Det viser linjerne fra gæstebogen
blot med et <br> tilføjet. Jeg kender ikke tekstfilens opbygning,
så jeg kan ikke designe det mere detaljeret. Hvis hver linje skal
stå med mellemrum til den næste, kan du i stedet indsætte <p> og
</p> før og efter.

Men først mine principper for at strukturere kode. Som nybegynder
kan du med fordel holde dig strengt til dem indtil den dag hvor
du ved hvorfor du gerne vil gøre det anderledes. Ikke alle
erfarne gør som jeg.

1. includefiler skal have efternavnet .inc.php. Så er de
beskyttet mod utilsigtet visning, men stadig mærket med "inc".

2. if, else, for og lignende skal have et mellemrum før
parentesen, og krølleparentesen skal stå på samme linje
adskilt af mellemrum.

3. Strengvariable omsluttes af enkeltparentes medmindre de
indeholder variabelnavne der skal erstattes.

4. Det gælder dog ikke dem der skriver HTML. De skal stå med
dobbelte anførselstegn fordi man så kan bruge enkelte til de
"interne" HTML-anførselstegn. Se eksempler i koden.

5. Hvis en meget lang streng skal skrives ud (som de ofte sker i
HTML), deler jeg den op på følgende måde:

   echo "første del af strengen"
   ."anden del af strengen"
   ."tredje del af strengen";

Punktummet betyder at to strenge sættes sammen til én. Bemærk
at der kun er semikolon til allersidst. Det er kun én
echo-sætning.

6. include (og require) behøver ingen parenteser. Det er en uskik
at indføje unødvendige parenteser, men der er mange der gør
det.

Om:   define ('INFILE', 'guestbook.txt');
Definitionen betyder at man i resten af koden kan skrive INFILE
(uden anførselstegn) i stedet for filnavnet. Man kan definere
hvad som helst på den måde. Det kan gøre koden mere overskuelig,
men reelt er det ikke anderledes end at skrive navnet fuldt ud
hver gang. Det har den fordel at man kan ændre filnavnet ét sted,
og så slår det igennem overalt.

Et råd:
Når først du har sat et starttag til PHP (<?php) så vent ed at
slutte det til al PHP er færdigt. Det bliver uoverskueligt med
start- og sluttag på hver linje.

<?php
session_start();
define ('INFILE', 'guestbook.txt');
$strTitle="forside";

include 'header.inc';
?>

<body>

<div class="indhold">
<?php
if (isset($_SESSION['logget_ind'])) {
   echo " <h1> $strTitle </h1>"
   $contents=file(INFILE);
   foreach ($contents as $line)
      echo "$line<br>";
}
else {
   echo "<h1>Ukorrekt login</h1>"
   ."<p>Du skal være logget ind for at se disse sider."
   ."<a href='default.php'>Log in</a></p>";
}
?>
</div>

<?php include 'menu2.inc'; ?>

</body>
</html>












--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Yasser (12-09-2011)
Kommentar
Fra : Yasser


Dato : 12-09-11 13:37

Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
> Yasser skrev:
>
> > Men kan du så hjælpe her, jeg tror jeg har gjort noget forkert, kan
> > du indsætte koderbe både hvor den skal læse fra 'guestbook.txt' og
> > skrive i 'guestbook.txt', i de rigtige steder:
>
> Ja, jeg har lavet et forslag. Det viser linjerne fra gæstebogen
> blot med et <br> tilføjet. Jeg kender ikke tekstfilens opbygning,
> så jeg kan ikke designe det mere detaljeret. Hvis hver linje skal
> stå med mellemrum til den næste, kan du i stedet indsætte <p> og
> </p> før og efter.
>
> Men først mine principper for at strukturere kode. Som nybegynder
> kan du med fordel holde dig strengt til dem indtil den dag hvor
> du ved hvorfor du gerne vil gøre det anderledes. Ikke alle
> erfarne gør som jeg.
>
> 1. includefiler skal have efternavnet .inc.php. Så er de
> beskyttet mod utilsigtet visning, men stadig mærket med "inc".
>
> 2. if, else, for og lignende skal have et mellemrum før
> parentesen, og krølleparentesen skal stå på samme linje
> adskilt af mellemrum.
>
> 3. Strengvariable omsluttes af enkeltparentes medmindre de
> indeholder variabelnavne der skal erstattes.
>
> 4. Det gælder dog ikke dem der skriver HTML. De skal stå med
> dobbelte anførselstegn fordi man så kan bruge enkelte til de
> "interne" HTML-anførselstegn. Se eksempler i koden.
>
> 5. Hvis en meget lang streng skal skrives ud (som de ofte sker i
> HTML), deler jeg den op på følgende måde:
>
>    echo "første del af strengen"
>    ."anden del af strengen"
>    ."tredje del af strengen";
>
> Punktummet betyder at to strenge sættes sammen til én. Bemærk
> at der kun er semikolon til allersidst. Det er kun én
> echo-sætning.
>
> 6. include (og require) behøver ingen parenteser. Det er en uskik
> at indføje unødvendige parenteser, men der er mange der gør
> det.
>
> Om:   define ('INFILE', 'guestbook.txt');
> Definitionen betyder at man i resten af koden kan skrive INFILE
> (uden anførselstegn) i stedet for filnavnet. Man kan definere
> hvad som helst på den måde. Det kan gøre koden mere overskuelig,
> men reelt er det ikke anderledes end at skrive navnet fuldt ud
> hver gang. Det har den fordel at man kan ændre filnavnet ét sted,
> og så slår det igennem overalt.
>
> Et råd:
> Når først du har sat et starttag til PHP (<?php) så vent ed at
> slutte det til al PHP er færdigt. Det bliver uoverskueligt med
> start- og sluttag på hver linje.
>
> <?php
> session_start();
> define ('INFILE', 'guestbook.txt');
> $strTitle="forside";
>
> include 'header.inc';
> ?>
>
> <body>
>
> <div class="indhold">
> <?php
> if (isset($_SESSION['logget_ind'])) {
>    echo " <h1> $strTitle </h1>"
>    $contents=file(INFILE);
>    foreach ($contents as $line)
>       echo "$line<br>";
> }
> else {
>    echo "<h1>Ukorrekt login</h1>"
>    ."<p>Du skal være logget ind for at se disse sider."
>    ."<a href='default.php'>Log in</a></p>";
> }
> ?>
> </div>
>
> <?php include 'menu2.inc'; ?>
>
> </body>
> </html>
>
>
>
>
>
>
>
>
>
>
>
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/

Hej igen Bertel,
det var en enormt sejt forklaring, jeg tror at det er den bedste guide
for nybegynder.. mange tak.. jeg kan i hvert fald forstå næsten hvad der
står, det ligesom i 5. klasse hvor man begynder at lærer udsagsord og
navneorde hehe :D..

Meeen, der er vidst en fejl dem siger:
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
in /home/alasady/alasady.net/ebutik/forside.php on line 15

http://www.alasady.net/ebutik/
user: ymu
password: ymu


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (12-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 12-09-11 14:10

Yasser skrev:

> Meeen, der er vidst en fejl dem siger:
> Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
> in /home/alasady/alasady.net/ebutik/forside.php on line 15

Ups. Et glemt semikolon:

   echo " <h1> $strTitle </h1>"; <==

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Yasser (12-09-2011)
Kommentar
Fra : Yasser


Dato : 12-09-11 22:25

Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
> Yasser skrev:
>
> > Meeen, der er vidst en fejl dem siger:
> > Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
> > in /home/alasady/alasady.net/ebutik/forside.php on line 15
>
> Ups. Et glemt semikolon:
>
>    echo " <h1> $strTitle </h1>"; <==
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/
fedest fedeste fedest ...

et workes now :D
hvad med en lille indput fejl+en send knap lige neden under, som sender
direkte til .txt filen?


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Yasser (12-09-2011)
Kommentar
Fra : Yasser


Dato : 12-09-11 23:38

Yasser wrote in dk.edb.internet.webdesign.serverside.php:
> Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
> > Yasser skrev:
> >
> > > Meeen, der er vidst en fejl dem siger:
> > > Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
> > > in /home/alasady/alasady.net/ebutik/forside.php on line 15
> >
> > Ups. Et glemt semikolon:
> >
> >    echo " <h1> $strTitle </h1>"; <==
> >
> > --
> > Bertel
> > http://bertel.lundhansen.dk/      http://fiduso.dk/
> fedest fedeste fedest ...
>
> et workes now :D
> hvad med en lille indput fejl+en send knap lige neden under, som sender
> direkte til .txt filen?
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


weee jeg tror jeg har fundet ud af det ;D
men jeg er sikker på at der kommer flere spørgsmål

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Yasser (13-09-2011)
Kommentar
Fra : Yasser


Dato : 13-09-11 11:05

Yasser wrote in dk.edb.internet.webdesign.serverside.php:
> Yasser wrote in dk.edb.internet.webdesign.serverside.php:
> > Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
> > > Yasser skrev:
> > >
> > > > Meeen, der er vidst en fejl dem siger:
> > > > Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
> > > > in /home/alasady/alasady.net/ebutik/forside.php on line 15
> > >
> > > Ups. Et glemt semikolon:
> > >
> > >    echo " <h1> $strTitle </h1>"; <==
> > >
> > > --
> > > Bertel
> > > http://bertel.lundhansen.dk/      http://fiduso.dk/
> > fedest fedeste fedest ...
> >
> > et workes now :D
> > hvad med en lille indput fejl+en send knap lige neden under, som sender
> > direkte til .txt filen?
> >
> >
> > --
> > Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> > - Pædagogiske tutorials på dansk
> > - Kom godt i gang med koderne
> > KLIK HER! => http://www.html.dk/tutorials
>
>
> weee jeg tror jeg har fundet ud af det ;D
> men jeg er sikker på at der kommer flere spørgsmål
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials

Hej Endnu engang Bertel,

Kender du et script/css eller noget der fungere som "betinget formatering" i
excel?
Sådan så hvis man taster fx 0>49 så er den grøn, og fra 50>99 så er den gul og
alt over 100 så lyser cellen rød?
Er det noget du kan??

PFT.
Yasser

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (13-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 13-09-11 11:35

Yasser skrev:

> Kender du et script/css eller noget der fungere som "betinget formatering" i
> excel?

I Excel kan man lave makroer, og de laves med et komplet
programmeringssprog som er en Basicvariant. Men jeg har ikke
arbejdet ret meget med den slags, og slet ikke med betinget
farvning.

CSS har *intet* med Excel at gøre.

Du kan spørge om hjælp i gruppen dk.edb.regneark.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Yasser (13-09-2011)
Kommentar
Fra : Yasser


Dato : 13-09-11 14:43

Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
> Yasser skrev:
>
> > Kender du et script/css eller noget der fungere som "betinget formatering" i
> > excel?
>
> I Excel kan man lave makroer, og de laves med et komplet
> programmeringssprog som er en Basicvariant. Men jeg har ikke
> arbejdet ret meget med den slags, og slet ikke med betinget
> farvning.
>
> CSS har *intet* med Excel at gøre.
>
> Du kan spørge om hjælp i gruppen dk.edb.regneark.
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/

Hej igen Bertel,

Jeg tror jeg har formuleret mig forkert.
Det med Betinget formatering var blot et eksempel.
Jeg spørg her om, man kan lave sådan noget med CSS?

Altså kan man få en celle i html til at tænke når der står inde i den, som nævnt
tidligere, 0>49 - 50>99 - >100
så bliver cellen grøn - gul - rød?

:)
på tak

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (13-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 13-09-11 15:23

Yasser skrev:

> Jeg spørg her om, man kan lave sådan noget med CSS?

Ikke i ren HTML og CSS, men det kan laves med PHP, men det træder
ikke i kraft før man har trykket "Send".

CSS
..sort { background: black; }
..roed { background: red; }
..gul { background: yellow; }
..roed { background: groen; }

PHP
if ($value<0) $style="class='sort'";
else if ($value<50) $style="class='groen'";
else if ($value<100) $style="class='gul'";
else $style="class='roed'";
echo "<p $style>$value</p>"

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Yasser (13-09-2011)
Kommentar
Fra : Yasser


Dato : 13-09-11 21:08

Bertel Lund Hansen wrote in
dk.edb.internet.webdesign.serverside.php:
> Yasser skrev:
>
> > Jeg spørg her om, man kan lave sådan noget med CSS?
>
> Ikke i ren HTML og CSS, men det kan laves med PHP, men det træder
> ikke i kraft før man har trykket "Send".
>
> CSS
> ..sort { background: black; }
> ..roed { background: red; }
> ..gul { background: yellow; }
> ..roed { background: groen; }
>
> PHP
> if ($value<0) $style="class='sort'";
> else if ($value<50) $style="class='groen'";
> else if ($value<100) $style="class='gul'";
> else $style="class='roed'";
> echo "<p $style>$value</p>"
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/

Hej Mester,

Det er fedt, der var bare en lille fejl i Php koden,

> echo "<p $style>$value</p>"

skal være:

> echo "<p $style>$value</p>";

Jeg tror at det er en taste fejl, ellers vidste du det udmærket.

Jeg har bare en anden udfordring, her ses min kode?
Det er in "Submit" system.

hvis du går ind i tidligere sendt link med bruger+login.
Så kan du til gå min redigering side.

Jeg har fået den til at sende data fra redigere.php til 1.php, og
forside.php viser det som 1.php skriver ind på .txt siden.

jeg håber du forstår, det gør du vel også sikkert fordi det er ikke
første gang du prøver dette.

men Bertel, jeg har ikke rigtigt en ide om hvor PHP koden som du
sendte med > echo "<p $style>$value</p>", skal henne?

Her ses min kode:

if (isset($_SESSION['logget_ind'])) {
echo " <h1> $strTitle </h1>";
$contents=file(INFILE);
foreach ($contents as $line)
echo "$line<br>";
echo '<h1>Din data er hermed gemt, tryk på forside for at komme til
index siden</h1>';
$post = $_POST['post'];
$b2b = $_POST['b2b'];
$b2c = $_POST['b2c'];
$rep = $_POST['rep'];
$otc = $_POST['otc'];
$bp = $_POST['bp'];
$fp = fopen('guestbook.txt', 'w');
$savestring = $post . '<br>' . $b2b . '<br>' . $b2c . '<br>' . $rep
.. '<br>' . $otc . '<br>' . $bp . '<br>' . '.';
fwrite($fp, $savestring);
fclose($fp);
if ($value<0) $style="class='sort'";
else if ($value<50) $style="class='groen'";
else if ($value<100) $style="class='gul'";
else $style="class='roed'";
echo '<p $style>$value</p>';
}



På forhånd tak igen.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (13-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 13-09-11 22:49

Yasser skrev:

> skal være:
> echo "<p $style>$value</p>";

Ja.

> men Bertel, jeg har ikke rigtigt en ide om hvor PHP koden som du
> sendte med > echo "<p $style>$value</p>", skal henne?

Det har jeg heller ikke, for jeg ved ikke hvad du vil bruge den
til. Du kan ikke klippe mit eksempel direkte ind. Det skal blot
illustrere metoden.

> $fp = fopen('guestbook.txt', 'w');

Når du påbner filen med 'w', bliver alt det gamle indhold
slettet, men det er måske også meningen?

Hvis du i stedet åbner den med 'a' (= append), bliver det nye
tilføjet sidst i filen.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Yasser (14-09-2011)
Kommentar
Fra : Yasser


Dato : 14-09-11 07:53

Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
> Yasser skrev:
>
> > skal være:
> > echo "<p $style>$value</p>";
>
> Ja.
>
> > men Bertel, jeg har ikke rigtigt en ide om hvor PHP koden som du
> > sendte med > echo "<p $style>$value</p>", skal henne?
>
> Det har jeg heller ikke, for jeg ved ikke hvad du vil bruge den
> til. Du kan ikke klippe mit eksempel direkte ind. Det skal blot
> illustrere metoden.
>
> > $fp = fopen('guestbook.txt', 'w');
>
> Når du påbner filen med 'w', bliver alt det gamle indhold
> slettet, men det er måske også meningen?
>
> Hvis du i stedet åbner den med 'a' (= append), bliver det nye
> tilføjet sidst i filen.
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/

Hej igen Bertel,

> Det har jeg heller ikke, for jeg ved ikke hvad du vil bruge den
> til. Du kan ikke klippe mit eksempel direkte ind. Det skal blot
> illustrere metoden.

Nej jeg har ikke taget og klippet i din eksempel, det er bare hvordan
koden virker og hvordan tænker den med cellerne som skal skifte farve
efter den bestemte value?

> Når du påbner filen med 'w', bliver alt det gamle indhold
> slettet, men det er måske også meningen?

og ja det er mening at den skal overwrite ;) og ikke append ;)

men ellers tak for rådet.. det er nu mere den celle problem jeg har,
hvor den skal skifte farve efter et bestemt value..

er der et link med det med et bestemt guide.. så kigger jeg selv på
det ..

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (14-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 14-09-11 08:20

Yasser skrev:

> men ellers tak for rådet.. det er nu mere den celle problem jeg har,
> hvor den skal skifte farve efter et bestemt value..

I mit eksempel definerer jeg først de klasser der er brug for.
Det skal bare ligge i CSS-filen.

Der hvor du har et felt der skal være farvet, skal du bruge en
if-test af feltets indhold som vist i mit eksempel. Hvis du
udskriver en streng med blandet indhold, kan det ikke lade sig
gøre. Hvis du har feltets indhold i en variabel, og den
indeholder et tal, kan det lade sig gøre på den måde mit eksempel
viste.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Stig Johansen (14-09-2011)
Kommentar
Fra : Stig Johansen


Dato : 14-09-11 06:28

Yasser wrote:

> $post = $_POST['post'];
> $b2b = $_POST['b2b'];
> $b2c = $_POST['b2c'];
> $rep = $_POST['rep'];
> $otc = $_POST['otc'];
> $bp = $_POST['bp'];
> $fp = fopen('guestbook.txt', 'w');
> $savestring = $post . '<br>' . $b2b . '<br>' . $b2c . '<br>' . $rep
> . '<br>' . $otc . '<br>' . $bp . '<br>' . '.';
> fwrite($fp, $savestring);
> fclose($fp);

UPS!
Hvis du 'echoer' filen(råt), er dit 'system' sårbar overfor XSS!!

Take care...

--
Med venlig hilsen
Stig Johansen

Yasser (14-09-2011)
Kommentar
Fra : Yasser


Dato : 14-09-11 07:54

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.php:
> Yasser wrote:
>
> > $post = $_POST['post'];
> > $b2b = $_POST['b2b'];
> > $b2c = $_POST['b2c'];
> > $rep = $_POST['rep'];
> > $otc = $_POST['otc'];
> > $bp = $_POST['bp'];
> > $fp = fopen('guestbook.txt', 'w');
> > $savestring = $post . '<br>' . $b2b . '<br>' . $b2c . '<br>' . $rep
> > . '<br>' . $otc . '<br>' . $bp . '<br>' . '.';
> > fwrite($fp, $savestring);
> > fclose($fp);
>
> UPS!
> Hvis du 'echoer' filen(råt), er dit 'system' sårbar overfor XSS!!
>
> Take care...
>
> --
> Med venlig hilsen
> Stig Johansen

Hej Stig,

hvad skal jeg så gør hvis jeg vil undgå dette?
På forhånd tak..


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (14-09-2011)
Kommentar
Fra : Stig Johansen


Dato : 14-09-11 09:23

Yasser wrote:

> Stig Johansen wrote in dk.edb.internet.webdesign.serverside.php:
>> Yasser wrote:
>>
>> > $post = $_POST['post'];
>> > $b2b = $_POST['b2b'];
>> > $b2c = $_POST['b2c'];
>> > $rep = $_POST['rep'];
>> > $otc = $_POST['otc'];
>> > $bp = $_POST['bp'];
>> > $fp = fopen('guestbook.txt', 'w');
>> > $savestring = $post . '<br>' . $b2b . '<br>' . $b2c . '<br>' . $rep
>> > . '<br>' . $otc . '<br>' . $bp . '<br>' . '.';
>> > fwrite($fp, $savestring);
>> > fclose($fp);
>>
>> UPS!
>> Hvis du 'echoer' filen(råt), er dit 'system' sårbar overfor XSS!!
>>
>> Take care...
>>
>> --
>> Med venlig hilsen
>> Stig Johansen
>
> Hej Stig,
>
> hvad skal jeg så gør hvis jeg vil undgå dette?
> På forhånd tak..

ALTID 'xmlencode' output.
Jeg kender ikke så meget til PHP's funktionsnavne, men det er vist noget med
htmlspecialchars eller noget i den dur.

I princippet kan du nøjes med at encode < til &lt, men det forvirrer
browsere.

'xmlencoding' betyder encoding af <,>,&," og '

XSS betyder bla. at man kan aktivere javascript og deraf følgende ulykker.

Hvis jeg f.eks. i et af dine felter skriver:
<script src='meget.slemt.script.js/>

Kan man aktivere grimme ting med diverse inficeringer vha. sårbarheder i
Flash/Adobe/<en.mass.ms>.

Prøv f.eks. at skrive:
<script>alert('Nu skal du få, skal du');</script>

i et af dine felter i et testsystem.

--
Med venlig hilsen
Stig Johansen

Bertel Lund Hansen (14-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 14-09-11 10:38

Stig Johansen skrev:

> Jeg kender ikke så meget til PHP's funktionsnavne, men det er vist noget med
> htmlspecialchars eller noget i den dur.

http://dk.php.net/manual/en/faq.html.php#faq.html.encoding

> I princippet kan du nøjes med at encode < til &lt, men det forvirrer
> browsere.

Der kan også laves PHP-numre ved at sætte et anførselstegn og et
semikolon. Det lukker jo en streng og dens udskrift. Så er det
bare at fylde kommandoer på bagefter (og så lige 'genstarte'
udskriften med echo og et anførselstegn).

Hvis man skal lav et formularsystem der skal ligge på nettet,
skal man sætte sig ind i sikkerhedsproblematikken først -
grundigt. Ellers laver man bare en spambot.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Stig Johansen (14-09-2011)
Kommentar
Fra : Stig Johansen


Dato : 14-09-11 11:22

Bertel Lund Hansen wrote:

> Stig Johansen skrev:
>
>> Jeg kender ikke så meget til PHP's funktionsnavne, men det er vist noget
>> med htmlspecialchars eller noget i den dur.
>
> http://dk.php.net/manual/en/faq.html.php#faq.html.encoding

Jo, det var den jeg mente:
http://dk.php.net/manual/en/function.htmlspecialchars.php

Jeg kan sq* ikke huske hvad det hedder i de forskellige sprog (getting
old....).

Humlen var bare at skelne mellem 'xmlencode' (htmlspecialchars i PHP) og
'htmlencode' (htmlentities i PHP).

At bruge 'htmlencode' er spild af tid (ressourcer).

--
Med venlig hilsen
Stig Johansen

Yasser (14-09-2011)
Kommentar
Fra : Yasser


Dato : 14-09-11 13:22

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.php:
> Bertel Lund Hansen wrote:
>
> > Stig Johansen skrev:
> >
> >> Jeg kender ikke så meget til PHP's funktionsnavne, men det er vist noget
> >> med htmlspecialchars eller noget i den dur.
> >
> > http://dk.php.net/manual/en/faq.html.php#faq.html.encoding
>
> Jo, det var den jeg mente:
> http://dk.php.net/manual/en/function.htmlspecialchars.php
>
> Jeg kan sq* ikke huske hvad det hedder i de forskellige sprog (getting
> old....).
>
> Humlen var bare at skelne mellem 'xmlencode' (htmlspecialchars i PHP) og
> 'htmlencode' (htmlentities i PHP).
>
> At bruge 'htmlencode' er spild af tid (ressourcer).
>
> --
> Med venlig hilsen
> Stig Johansen

øh shit øh shit øh shit!

men heldigvis er der kode på før man kan komme overhovedet ind på felternes
side!

Men anyway, jeg kan sgu godt se at det er en satans værk og der er mange der
kan lide at drille med dette..
Problemer er så nu, HVAD SKAL JEG GØR, kan jeg nøjes med det login system som
jeg har, eller skal jeg ALLIGEVEL sikre systemet mere.
Jeg ved udmærket hvem som logger ind og ud, og det er i hvert fald få der får
lov til det.. så det er ikke alle der vil lave nisseleg med systemet.

Er det så ligegyldigt eller er det stadig sårbaret?

På forhånd tak,
Har faktisk stadig endnu ikke modtaget svar på farver og celleproblemet?
Skal jeg oprette et nyt emne ?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Karl Erik Christense~ (14-09-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 14-09-11 15:46

On 14-09-2011 14:22, Yasser wrote:

> Har faktisk stadig endnu ikke modtaget svar på farver og celleproblemet?
> Skal jeg oprette et nyt emne ?
>

Du dimensionerer din variabel som $a og class som $b.

<?php
if ($a < 50) {
$b=blaa;
} elseif ($a > 49 and $a < 100) {
$b=gul;
} else {
$b=roed;
}
?>

<div class="<?php echo $b ?>">Denne class får farve.</div>

Om det er en div eller andet er lige gyldigt, bare det er noget du kan
give en class.

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://twitter.com/kechriste
http://webdesign.ranunkelvej.com - Artikler om webdesign

Karl Erik Christense~ (15-09-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 15-09-11 13:04

On 14-09-2011 16:46, Karl Erik Christensen wrote:
> On 14-09-2011 14:22, Yasser wrote:
>
>> Har faktisk stadig endnu ikke modtaget svar på farver og celleproblemet?
>> Skal jeg oprette et nyt emne ?
>>
>
> Du dimensionerer din variabel som $a og class som $b.
>
> <?php
> if ($a < 50) {
> $b=blaa;
> } elseif ($a > 49 and $a < 100) {
> $b=gul;
> } else {
> $b=roed;
> }
> ?>
>
> <div class="<?php echo $b ?>">Denne class får farve.</div>
>
> Om det er en div eller andet er lige gyldigt, bare det er noget du kan
> give en class.
>
> Karl Erik.
>

Min løsning var lavet "i hovedet", og ikke helt korrekt

Denne fungerer 100% - husk at gemme med extention .php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="da">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="danish" />
<title>Hent variabel</title>
<style type="text/css">
fieldset {
   border: none;
}
..gron {
   color: green;
}
..gul {
   color: yellow;
}
..roed {
   color: red;
}
</style>
</head>
<body>
<div>
   <h1>Tallet bestemmer tekstfarven</h1>
   <form action="#" method="post">
   <fieldset>
      <label for="t">Indtast et heltal: </label><input name="tal" id="t"
type="text" maxlength="3" size="3" value="<?php echo $_POST['tal']; ?>" />
      <input type="submit" value="OK" />
   </fieldset>
   </form>
   <p>Tal 0..49 grøn, 50..99 gul, over 99 rød.</p>
</div>
   <?php $tal = $_POST['tal'];
   if ($tal < 50) {
      $b=gron;
      $c=grøn;
}
   elseif ($tal>49 && $tal<100) {
      $b=gul;
      $c=gul;
}
   else {
      $b=roed;
      $c=rød;
}
?>
<h2 class="<?php echo $b; ?>">Denne tekst får farven <?php echo $c ?>.</h2>
</body>
</html>

Kan ses "in action" på:
http://webdesign.ranunkelvej.com/php/index.php

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://twitter.com/kechriste
http://webdesign.ranunkelvej.com - Artikler om webdesign

Martin (21-09-2011)
Kommentar
Fra : Martin


Dato : 21-09-11 11:27

On 12-09-2011 14:15, Bertel Lund Hansen wrote:
> Om:   define ('INFILE', 'guestbook.txt');
> Definitionen betyder at man i resten af koden kan skrive INFILE
> (uden anførselstegn) i stedet for filnavnet. Man kan definere
> hvad som helst på den måde. Det kan gøre koden mere overskuelig,
> men reelt er det ikke anderledes end at skrive navnet fuldt ud
> hver gang. Det har den fordel at man kan ændre filnavnet ét sted,
> og så slår det igennem overalt.

Ahhh, ikke alt kan defineres (nogle gange desværre)

det SKAL være en streng - der kan ikke defineres objekter og/eller arrays

Chano Andersen (22-09-2011)
Kommentar
Fra : Chano Andersen


Dato : 22-09-11 18:07

Den 21-09-2011 12:26, Martin skrev:
> On 12-09-2011 14:15, Bertel Lund Hansen wrote:
>> Om: define ('INFILE', 'guestbook.txt');
>> Definitionen betyder at man i resten af koden kan skrive INFILE
>> (uden anførselstegn) i stedet for filnavnet. Man kan definere
>> hvad som helst på den måde. Det kan gøre koden mere overskuelig,
>> men reelt er det ikke anderledes end at skrive navnet fuldt ud
>> hver gang. Det har den fordel at man kan ændre filnavnet ét sted,
>> og så slår det igennem overalt.
>
> Ahhh, ikke alt kan defineres (nogle gange desværre)
>
> det SKAL være en streng - der kan ikke defineres objekter og/eller arrays

Hvorfor det er ca. lidt mere praktisk, at erklære variabler med det man
skal bruge hele tiden. I øvrigt kan arrays, og lignende defineres ved at
bruge strengen man får fra serialize. Men den skal så alligevel
unserializes før eller siden.

- Chano Andersen

Bertel Lund Hansen (23-09-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-09-11 01:52

Martin skrev:

> Ahhh, ikke alt kan defineres (nogle gange desværre)

> det SKAL være en streng - der kan ikke defineres objekter og/eller arrays

Man kan definere talværdier - altså uden strengenes
anførselstegn. Man kan også definere en konstant ved hjælp af et
regnestykke, og man kan benytte PHP's funktioner i definitionen.

define ('LIMIT', 2);
define ('TEST', LIMIT+20);
define ('MAX', pow(2,3)+5);

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

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

Månedens bedste
Årets bedste
Sidste års bedste