Avatar billede webcreator Nybegynder
29. december 2003 - 22:44 Der er 105 kommentarer og
2 løsninger

Vurdering af kode ønskes (gratis website incl. CMS)

Hej eksperter.

Jeg har i denne uge brugt en stor del af min tid, på at udvikle et website, som fuldstændig kan styres via et administrationsmodul. Og det er faktisk lykkedes ret godt, synes jeg :)

Jeg har tænkt mig at frigive systemet til andre. Men da jeg går meget op i sikkerhed, stabilitet og kvalitet, vil jeg meget gerne have nogen af jer til, at gennemgå koden, og fortælle om eventuelle fejl, mulige forbedringer osv.

Lidt feedback om, hvad I i det hele taget synes om systemet og ideen, ville også være rart.

Systemet er lagt tilgængeligt her (DEMO) :
Sitet : http://www.jemt.frac.dk/ewm/index.php
Admin : http://www.jemt.frac.dk/ewm/admin/index.php

Selve koden kan hentes her :
http://powerzone.dk/ewm.zip

På forhånd mange tak :-)
Avatar billede fcknet Nybegynder
29. december 2003 - 22:46 #1
Hvad er admin kodeord?
Avatar billede fcknet Nybegynder
29. december 2003 - 22:46 #2
ah... test test
Avatar billede webcreator Nybegynder
29. december 2003 - 22:48 #3
Koden til Administrationsmodulet :
User : test
Pass : test

Vær venlige ikke at ødelægge noget. Nok er det et gratis-hotel. Men derfor kan man jo godt opføre sig ordentligt ;-)

Installationsvejledning :

1 ) Redigér de nødvendige punkter i config.php
2 ) Vær opmærksom på, at 2 punkter er tilført et # foran. Dette skal fjernes EFTER, at configure.php er kørt fra en browser.
3 ) Gå ind på filen configure.php vha. din browser. (sætter DB'en op)
4 ) Fjern nu de 2 #-tegn i config.php

Nu burde det hele fungere :-)

Jeg vil i den tilrettede version give mulighed for at sætte et prefix på tabel-navnene. Der er nok mange systemer, der benytter tabelnavne som "Menu, visitors" osv.
Avatar billede webcreator Nybegynder
29. december 2003 - 22:48 #4
LOL :)
Nice gættet, FCK.
Avatar billede stigc Nybegynder
29. december 2003 - 22:50 #5
Du mangler at escape '
Avatar billede webcreator Nybegynder
29. december 2003 - 22:52 #6
Yep, opdagede jeg også lige :)
Tak
Avatar billede webcreator Nybegynder
29. december 2003 - 22:57 #7
Underligt. Den fejl får jeg ikke på mit eget hotel..
Avatar billede fcknet Nybegynder
29. december 2003 - 22:59 #8
1) Parse error: parse error, unexpected T_STRING in /web/www/frac/users/jemt/ewm/main.php(11) : eval()'d code on line 1
Opstår ved visning af en side hvor der bruges PHP


Det er et kanon system du har fået opbygget der. Admin delen kan du nok godt bruge lidt mere tid på... Bare for brugervenlighedens skyld bør du dokumentere lidt mere. Jeg savner en funktion til at ændre selve design og layout via web.

Koden virker meget simpel, hvilket jeg godt kan lide. I forhold til mange andre CMS systemer kan dette bruges til at bygge videre på. Alt i alt synes jeg at det er godt arbejde. Efter at have kigget hurtigt på koden synes jeg at specielt dine queries godt kan optimeres lidt. Det er nok bare fordi jeg ikke kan lide "SELECT * FROM TABEL"... :)

Ville det ikke være en ide at indbygge et nyheds-system?

Hvis det er vil jeg gerne hjælpe til med udviklingen så vi kan få lavet et rigtig godt og brugervenligt system...
Avatar billede webcreator Nybegynder
29. december 2003 - 23:00 #9
Skyldes en fejl i databasen. Retter det lige.
Avatar billede webcreator Nybegynder
29. december 2003 - 23:03 #10
Næ, var ski heller ingen db fejl. Pokkers..
Avatar billede webcreator Nybegynder
29. december 2003 - 23:06 #11
Skal lige siges, at der ikke skal bruges
<?php
<?

når man skriver sin PHP kode :)
Avatar billede webcreator Nybegynder
29. december 2003 - 23:09 #12
stigc > Kunne du hitte den der fejl du nævnte ?
Avatar billede schaefner Juniormester
29. december 2003 - 23:13 #13
det virker ikke særligt logisk at man ikke skal bruge start og slut-ytags når man skriver php. Hvordan kan du så vide hvad det er php og hvad der er tekst?
Avatar billede webcreator Nybegynder
29. december 2003 - 23:14 #14
fcknet > Tak for de pæne ord :)

Hvad angår news-system, så er det meningen, at den slags skal laves som plugin (eftersom der kan eksekveres PHP kode). Jeg vil helst ikke have flere filer (fil.php) liggende end højest nødvendigt :)
Avatar billede Slettet bruger
29. december 2003 - 23:14 #15
flot...flot... venter på  evt. rettelser
Avatar billede schaefner Juniormester
29. december 2003 - 23:17 #16
eval(' ?' . '>' . $row['content'] . '<' . '?php ');

så burde du kunne bruge php sammen med almindelig tekst og html, f.eks.:

Overskrift

<?php
echo 'Hep hey';
?>

Andet tekst
Avatar billede stigc Nybegynder
29. december 2003 - 23:18 #17
Skriv bare ' en af oprettelses felterne.
Avatar billede webcreator Nybegynder
29. december 2003 - 23:19 #18
Ah, sejt :)
Så kan jeg helt dropper det specielle felt i DB'en, der afgør om koden skal eksekveres som HTML eller PHP.

Jeg har dog en del problemer med PHP'en lige nu.. Hvis jeg indsætter flg. kode i min webeditor :
$pages = mysql_query("select * from main where id='".$stat["page"]."'") or die(mysql_error());
Så får jeg fejlen :
You have an error in your SQL syntax near 'page"]."'") or die(mysql_error()); $page = mysql_fetch_array($pages); ' at line 1

Hvorfor ?
Avatar billede webcreator Nybegynder
29. december 2003 - 23:20 #19
Stigc > Kan du uddybe lidt ? Forstår ikke hvad du mener.
Avatar billede stigc Nybegynder
29. december 2003 - 23:22 #20
Skriv tegnet ' (apostrof) i oprettelsen af f.eks et link.

"BT's forside"
Avatar billede webcreator Nybegynder
29. december 2003 - 23:27 #21
stigc >
Jeg forstår altså ikke hvad du siger :)

Snakker vi om, at jeg skal bruge '-tegn, når jeg skriver kode i min web-editor ? Eller er der en fejl i min kode (altså filerne) ?
Avatar billede webcreator Nybegynder
29. december 2003 - 23:28 #22
Nåå - Hvis man benytter tegnet ' i formene ?! - Hvis ja, så er jeg med :)
Avatar billede stigc Nybegynder
29. december 2003 - 23:28 #23
Gå til

http://www.jemt.frac.dk/ewm/admin/add.php?func=1

Skriv ' i feltet, og tryk "add category".
Avatar billede webcreator Nybegynder
29. december 2003 - 23:30 #24
Jeg forstod ikke problemet, fordi jeg netop ikke selv er løbet ind i det problem, siden jeg fik egen server. Her kan jeg nemt bruge '. Det beklager fortolkeren sig ikke over.

Hvordan undgår jeg fejlen med '-tegn ? Min indsæt streng ser sådan ud :

$insertSQL = "INSERT INTO menu (name, description, category, link, target) VALUES ('$name', '$desc', '$cate', '$link', '$open')";
mysql_query($insertSQL) or die(mysql_error());
Avatar billede webcreator Nybegynder
29. december 2003 - 23:31 #25
(beklager hvis jeg virker lidt "tung". Er en smule sløj - influenza)
Avatar billede fcknet Nybegynder
29. december 2003 - 23:32 #26
Webcreator > Jeg savner lidt muligheden for at lave andre bokse... Fx. rss feed etc. Desuden synes jeg det ville være fedt med bokse i højre og venstre side
Avatar billede webcreator Nybegynder
29. december 2003 - 23:34 #27
fcknet > Forresten - tak for tilbudet om deltagelse til udviklingsarbejdet. Men jeg tror den bedste måde, du kan hjælpe på, er ved at kommenterer og rette kode her :-)
Avatar billede webcreator Nybegynder
29. december 2003 - 23:35 #28
Fck > Hm, jeg må indrømme, at jeg ikke har tænkt mig at lave den slags udvidelser. Systemet blev primært lavet til folk med små behov. Det skal være et system, der (når det bliver færdigt), er nemt at bruge for ikke-super-computer-brugere, og samtidig ser rimeligt flot ud.

Som I måske kan gætte, skal der heller ikke stå PowerZone.DK på den endelige version. Der er jo skin'et til mit eget website.
Avatar billede webcreator Nybegynder
29. december 2003 - 23:37 #29
Men det står jo enhver frit, at hente min kode, modificere den, og videregive den. Så længe man ikke ændre/sletter den about-side, jeg smider ind når jeg er færdig.

Og ang. PHP, så giver det jo også nogle muligheder. Fx. har jeg lige lavet en lille online-side, hvor man kan se hvem der er online. Men den virker ikke, eftersom jeg ikke må bruge 'tegn.

Håber at en vil give mig løsningen til, hvordan jeg får mulighed for at bruge alle tegn :)
Avatar billede stigc Nybegynder
29. december 2003 - 23:46 #30
Her er din løsning, da jeg går ud fra du bruger mysql

http://se.php.net/manual/en/function.mysql-escape-string.php
eller
http://dk2.php.net/addslashes
Avatar billede webcreator Nybegynder
29. december 2003 - 23:51 #31
Hm, svært. Jeg må ikke bruge addslashes, hvis Magic_quotes er = on.
Avatar billede webcreator Nybegynder
29. december 2003 - 23:52 #32
Men hvis jeg stripslashes'er alle mine værdier, før jeg addslasher dem - så er jeg vel på den sikre side ?
Avatar billede fcknet Nybegynder
29. december 2003 - 23:56 #33
prøv at se hvad der sker :)
Avatar billede webcreator Nybegynder
29. december 2003 - 23:58 #34
Er netop i gang med det :)
Avatar billede webcreator Nybegynder
29. december 2003 - 23:59 #35
Ja, det ser sørme ud til at være løsningen.. Nu må jeg så hen og pille lidt i min kode igen. :)
Ny version kan forventes senere.
Avatar billede webcreator Nybegynder
30. december 2003 - 00:09 #36
Bare lige for at være sikker. Er denne fremgangsmåde så korrekt ? :
(Jeg ønsker at omgive værdierne af \, så de kan indsættes i DB'en. Samtidig ønsker jeg ikke at \ fremkommer når jeg vil redigere mine ting).

<?php
$cate = stripslashes($_REQUEST["cate"]);
$cate = addslashes($cate);

echo $cate; // Hvis der blev indtastet ', blev output = \'

echo "
<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">
<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">
<tr>
  <td width=\"100\" class=\"text\">Category</td>
  <td width=\"200\" class=\"text\"><input type=\"text\" name=\"cate\" value=\"".htmlentities(stripslashes("$cate"))."\" maxlength=\"15\" style=\"width: 200px;\"></td>
</tr>
</table>
";

?>
Avatar billede webcreator Nybegynder
30. december 2003 - 00:10 #37
Og er jeg for øvrigt dækket ind hvad angår magic_quote ? - Med ovenstående eksempel burde det ikke betyde noget, hvis Magic_Quote var = on, vel ??
Avatar billede artsycho Nybegynder
30. december 2003 - 00:21 #38
Hmm... Selv er jeg en totalt tumpe til sådan noget PHP, og på den anden side, så har jeg og et par gutter vildt brug for et godt CMS system til et lille project vi kalder Paranut Project.

Hvis du virkelig er vild efter at lave et godt system, gratis for andre, hvorfor så ikke gøre det for et reelt formål. Du har allerede startet på det som vi har brug for til vores side, og med lidt arbejde tror jeg at det kan blive flot og funktionelt.

Vil du være interreseret i at arbejde på det for os? Til gængæld kan vi tilbydde design goder, og link til når engang den side bliver færdig.

Hvis du er, så gå til http://paranut.dk og skriv dig op som bruger. Derefter gå til http://paranut.dk/forum/viewtopic.php?t=1320, hvor dit arbejde allerede er under diskussion. Det ville være rart at høre fra dig, og det kunne da være fedt med et samarbejde.
Avatar billede webcreator Nybegynder
30. december 2003 - 00:37 #39
schaefner > Din : eval(' ?' . '>' . $row['content'] . '<' . '?php ');
virker ikke helt efter hensigten. Men hvis du kan få det til at virke, så ville det være perfekt. Kunne være en rigtig god forbedring.
Avatar billede webcreator Nybegynder
30. december 2003 - 00:38 #40
Nej, vent. Jeg hopper lige lidt på mig selv.. Jeg havde glemt at skrive variablen ind. Klart der ikke kommer noget ud :)
Avatar billede webcreator Nybegynder
30. december 2003 - 00:41 #41
Nu er der dog opstået et problem, jeg langt fra er glad for. Man bliver nød til at skrive <br>, for at få et linieskifte. Netop en af de ting, der gjorde, at folk slap helt for kode hvis de ville.
Avatar billede ahv Nybegynder
30. december 2003 - 00:48 #42
Dine linieskift kan du få lavet med følgende indbygget funktion i php:
nl2br($var);
Avatar billede webcreator Nybegynder
30. december 2003 - 00:51 #43
Ja, det er jeg klar over. Men så duer det desværre ikke sammen med Eval. Jeg kan i hvertfald ikke få det til at dutte.
Avatar billede webcreator Nybegynder
30. december 2003 - 00:52 #44
Det må jeg svare til, at jeg bare smider nogle <br>'er ind midt i min kode. Og sådan nogen har det bedste i en echo :)
Avatar billede ahv Nybegynder
30. december 2003 - 00:52 #45
Desuden ser dit CMS meget fint ud. Jeg savner dog at kunne se et preview af en side inden man gemmer den. Hvad med billeder, vil det blive en mulighed? Jeg kan se der lige nu er en del problemer med at køre php-scriptsne ordenligt, men det bliver der vel rette op på.

Det virkede for mig lidt forvirrende at jeg først skulle oprette en kategori, så en side og efterfølgende et link til denne side. Linket til siden burde være under oprettelsen af denne efter min mening.
Avatar billede webcreator Nybegynder
30. december 2003 - 01:05 #46
Tak for feedback, Ahv :)

Hvad angår PreView, så vil jeg lige tænke lidt over det. Burde være nemt at lave.

Ang. billeder, så havde jeg egentlig ikke tænkt mig at lave andet end et eksempel på, hvordan man indsatte det vha. HTML kode. Men så skal folk jo også lige uploade det selv. Måske ikke så smart. Så jeg vil muligvis fikse noget i den retning også.

Pt. fungerer PHP scripts'ne ordentligt på mit eget hotel. Det store problem ligger i at få hele sitet til at virke på alle servere - lige meget om de benytter magic_quote eller ej. Så det bliver dagens opgave.

Jeg har delt administration af links, sider og kategorier mest muligt op, for at give mest mulig frihed. Det er ikke sikkert, at folk ønsker at gøre en side helt officielt. Derfor skal der være mulighed for at oprette tingene hver for sig.
Avatar billede webcreator Nybegynder
30. december 2003 - 01:05 #47
Men der er ingen tvivl om, at systemet kræver forklaring. Og det skal der nok komme noget af :-)
Avatar billede ahv Nybegynder
30. december 2003 - 01:19 #48
Jeg ser lige det hele igennem igen når jeg har fået lidt søvn, godnat her fra.
Avatar billede artsycho Nybegynder
30. december 2003 - 01:19 #49
Tjaeh, brugervenligt er det ikke helt endnu, dog vil jeg mene at alle sider som kommer opensource eller til gratis download, bør have en lille manual med. Fortsæt det gode atbejde, glæder mig til at se det færdigt. :)
Avatar billede webcreator Nybegynder
30. december 2003 - 01:21 #50
Mange tak, ahv. Vil glæde mig meget, hvis du gider tjekke koden rigtigt igennem.

Artsycho > En manual skal der til, ja. Og den skal jeg nok få lavet til den endelige version. Jeg glæder mig også selv til, at kunne frigive systemet :)
Avatar billede webcreator Nybegynder
30. december 2003 - 02:54 #51
Hej igen.

Jeg har nu lagt en ny og forbedre version op.
http://powerzone.dk/ewm.zip

Jeg har i filen admin/add.php forsøgt, at afhjælpe problemet ved brug af '-tegn. Det virker ved nogle punkter. Men fx. ved tilføjelse af en ny side med PHP kode, opstår der problemer. Alle mine \-tegn bliver fjernet. Og dem kan man altså ikke undvære i fx. echo "<div class=\"text\">".

Jeg kunne godt tænke mig at vide, om det er den måde jeg bør bruge systemet på, og hvordan problemet med manglende \'er kan løses.

Yderligere er install-metoden nu blot :

1 ) Redigér de nødvendige punkter i config.php
2 ) Gå ind på filen configure.php vha din browser. (sætter DB'en op)

Jeg håber koden vil blive gennemgået grundigt, så jeg kan få udgivet mit system. Pt. virker det perfekt på min egen server, men jeg benytter mig jo også af magic_quote.

På forhånd mange tak :)
Avatar billede ahv Nybegynder
30. december 2003 - 12:10 #52
Jeg synes mysql queries er mere over skuelige hvis det den "skal" står med stort,  du har f.eks. skrevet:

select * from ".$prefix."main where id='$id'
i main.php, jeg finder den mere overskuelig hvis der står:

SELECT * FROM ".$prefix."main WHERE id='$id'

Det er vidst skrevet før, dine queries kan opdateres en del, du hiver alt ud af dine tabeller og prøver kun 1-2 kolonner fra dem.

I visitors.php henter du ip'en som følger:
$ip = getenv('REMOTE_ADDR');
Dette kan der være problemer med på nogle servere, derfor bør du hente ip'en på denne måde:
$ip = $_SERVER['REMOTE_ADDR'];

I dine inserts har du f.eks:
INSERT INTO ".$prefix."visitors (ip, page, time, count) VALUES ('$ip', '$page', now(), '1')

Jeg ville sætte ` rundt om kolonnenavnene, dette ville jeg gøre fordi, hvis disse ord/bogstavkombinationer i fremtiden skulle blive reseveret vil den melde fejl, dette vil den dog ikke gøre med ` rundt om navnet.

De hidtil reseverede ord kan ses på:
http://www.mysql.com/doc/en/Reserved_words.html

Du bruger bl.a. også:
$func = $_REQUEST["func"];
Altså du bruger REQUEST til at få fat på variablen, dette kan skabe lidt problemer, da erfarne brugere så kan prøve at lave noget lort, lad os sige du her henter værdien fra en form med POST, så kan man skrive en variable i URL-add. som jo skal hentes med GET, men denne vil siden hente da du har sat den op til REQUEST. Jeg mener dermed at du bør gennemgå disse og tjekke efter om det er en nødvendighed at det er REQUEST og ikke bloe GET eller POST.

På dine admin sider bruger du følgende:
$info = explode("|",$_COOKIE['sac']);
$cookieuser = $info[0];
$cookiepass = $info[1];
Jeg håber da ikke du blot logger brugernavn og kodeord ukrypteret i en cookie?

Du tjekker desuden på admin siderne om både: $_SESSION['sacuser'] && $_SESSION['sacpass'] er sat.
Er der nogen grund til det? Kan du ikke blot logge brugernavnet? Desuden synes jeg ikke jeg kan se at denne "sikring" er på alle admin-siderne?

Hvis jeg skal give lidt mere feedback på frontenden, så synes jeg det ville være godt hvis der under den side, hvor man kan få et overblik over alle siderne, kunne være en kolonne hvor der stod om der var et link til den pågældende side.
Avatar billede webcreator Nybegynder
30. december 2003 - 12:19 #53
Hej Ahv. Mange tak for feedback. Jeg vil straks begynde rettearbejdet :)

Hvad angår min cookie, så ja - jeg har faktisk glemt at bruge MD5 - vil jeg lige lave om.

Skal ligeledes se på det andet.

Dette forstår jeg ikke :
"Hvis jeg skal give lidt mere feedback på frontenden, så synes jeg det ville være godt hvis der under den side, hvor man kan få et overblik over alle siderne, kunne være en kolonne hvor der stod om der var et link til den pågældende side."
Avatar billede ahv Nybegynder
30. december 2003 - 12:21 #54
Under din Edit pages synes jeg det ville være godt hvis der et sted stod om der var lavet et link til siden eller ej.
Avatar billede webcreator Nybegynder
30. december 2003 - 12:23 #55
Nåå - på den måde. Ja, god ide :)
Avatar billede webcreator Nybegynder
30. december 2003 - 12:25 #56
Hvordan så det forøvrigt ud med brugen af addslashes (som jeg kun har brugt i admin/add.php, og som i øvrigt ikke virker ordentligt under func=3)
Avatar billede webcreator Nybegynder
30. december 2003 - 12:30 #57
Bør jeg også gøre brug af '-tegn i forbindelse med ORDER BY ?
$menu = mysql_query("SELECT * FROM ".$prefix."menu WHERE category='0' ORDER BY orderby");
Avatar billede ahv Nybegynder
30. december 2003 - 12:34 #58
Det er ikke ' men `, ja det bør du vel, alle de steder hvor du har navnene på dine kolonner.
Jeg mener du bør bruge addslashes ved alle inserts.
Avatar billede webcreator Nybegynder
30. december 2003 - 12:37 #59
Ok, tak :)
Avatar billede ahv Nybegynder
30. december 2003 - 12:42 #60
Du har ikke overvejet at lave noget af koden om til funktioner? Du bruger meget af den samme kode rundt omkring.
Avatar billede webcreator Nybegynder
30. december 2003 - 12:44 #61
Tjo, det ville jo egentlig være smart. Vil lige se, om jeg kan få tilpasset noget af koden, så det kan genbruges. Vender lige tilbage ang. dét, når jeg har lavet rettelserne på de fejl du har fundet.
Avatar billede ahv Nybegynder
30. december 2003 - 12:45 #62
Undskyld, du har jo lavet en sikring på dine admin-sider, havde ikke set du included check.php
Avatar billede webcreator Nybegynder
30. december 2003 - 12:47 #63
Ok. Undrede mig også lidt over, at du ikke kunne se det. Men havde ikke tjekket, om jeg havde glemt mit check på en enkelt side. Men godt at vi er enige :)
Avatar billede webcreator Nybegynder
30. december 2003 - 13:15 #64
Hm, kan du/I se nogen fejl i filen add.php hvad angår addslashes? På min egen server (magic_quotes_gpc = ON) virker det fint. På Frac.DK's server (magic_quotes_gpc = OFF) virker det ikke. Hvis jeg tilføjer : echo "hun sagde \"hej\"";, så ligger flg. i DB'en : echo "hun sagde "hej"";
Avatar billede webcreator Nybegynder
30. december 2003 - 13:44 #65
Vi er forøvrigt enige om flg. ikke ? :

$_GET["var"] - Henter fra URL
$_POST["var"] - Henter fra form
$_REQUEST["var"] - Henter fra både URL og from
Avatar billede webcreator Nybegynder
30. december 2003 - 14:00 #66
Så, nu har jeg vist fået rettet det meste.

Mangler dog stadig en løsning mht. de pokkers slashes. Kan jeg ikke få til at virke. Jeg kunne self. lave en funktion, som jeg smed mine variabler ind i. Denne ville dels tjekke, om magic_quotes var slået til, og hvis det er tilfældet, så stripslashes og efterfølgende slasher variablerne.
Avatar billede webcreator Nybegynder
30. december 2003 - 14:00 #67
- men det er jo netop det princip jeg har brugt i admin/add.php - og her virker det ikke på frac.dk's server.
Avatar billede Slettet bruger
30. december 2003 - 14:35 #68
Kunne du ikke bruge noget i denne stil (taget lige fra PHP-manualen):

if (!get_magic_quotes_gpc()) {
  $lastname = addslashes($_POST['lastname']);
} else {
  $lastname = $_POST['lastname'];
}
Avatar billede webcreator Nybegynder
30. december 2003 - 14:40 #69
Jo, var også sådan jeg ville lave det. Og jeg har fundet ud af, hvorfor func=3 i min kode ikke virkede. Jeg stripslasher jo hele mit input. Så naturligvis fjernes alle \'er fra min kode.
Avatar billede ahv Nybegynder
30. december 2003 - 15:00 #70
$_POST['varname'] = variabler der er blevet sendt via en FORM med method="POST"
$_GET['varname'] = variabler fra adresselinien, eg: index.php?side=index (FORM med method="GET")
$_COOKIE['varname'] = variabler fra cookies
$_REQUEST['varname'] = alle de tre ovenstående samlet i en
$_SESSION['varname'] = variabler fra sessions
$_ENV['varname'] = servervariabler om "enviroment" ting (brugerens IP)
$_SERVER['varname'] = ass. servervariabler som fx PHP_SELF
Avatar billede webcreator Nybegynder
30. december 2003 - 15:34 #71
Ok, Tak, ahv. Så fik vi lige sat det på plads :)
Avatar billede webcreator Nybegynder
30. december 2003 - 16:17 #72
Hm, jeg kan ikke få min funktion til at virke. Kan jeg bruge nedenstående ? :

function slash($input) {
   
    global $input;
   
    if (get_magic_quotes_gpc()) {
        $vari = $_POST["$input"];
    } else {
        $addslash = $_POST["$input"];
        $vari = addslashes($addslash);
    }
   
    $input = $vari;
   
}

slash('cate'); // Her reguester jeg indholdet, og samtidig oprettes variablen $cate.
Avatar billede webcreator Nybegynder
30. december 2003 - 16:23 #73
Jeg kan godt få det til at virke,  ved at oprette variablen manuelt. Men det ville være smart, hvis den blev oprettet inde i funktionen.
Avatar billede webcreator Nybegynder
30. december 2003 - 16:25 #74
Den funktionelle version kan ses her : www.powerzone.dk/funk.txt
Avatar billede ahv Nybegynder
30. december 2003 - 16:27 #75
$_POST["input"];

Er det ikke det du har i $input?
Avatar billede webcreator Nybegynder
30. december 2003 - 16:29 #76
Med $input forklare jeg, hvad jeg vil have requested. Fx. cate.
Så hvis jeg skrive :

$input = "cate";
$_POST["$input"], så får jeg jo requested cate fra min form.
Avatar billede ahv Nybegynder
30. december 2003 - 16:29 #77
Jeg har ikke leget med det magic_quotes før, men hvis det er sat til, så skal den bare lade variablen være uden addslashes?
Avatar billede webcreator Nybegynder
30. december 2003 - 16:30 #78
Yep. Hvis Magic_Quote er sat til, så må den ikke tilføje med addslashes. Hvis det ikke er sat til, så SKAL den tilføje med addslashes.
Avatar billede ahv Nybegynder
30. december 2003 - 16:32 #79
Hvorfor kører du ikke alle dine inputs igennem denne funktion? Hvis det jeg skrev før ellers var rigtigt kan din funktion jo simpelt blive:

<?php
function slash($input) {
    if (get_magic_quotes_gpc()) {
        return $input;
    } else {
        $input = addslashes($input);
        return $input;
    } 
}
?>

Så hvis du har noget indhold i $_POST['cate'] du gerne vil have addslashes på så laver du den simpelt:

$cate = slash($_POST['cate']);
Så har du i variablen $cate, $_POST['cate'] med addslashes.
Avatar billede Slettet bruger
30. december 2003 - 16:34 #80
Du kunne lave en funktion således:

function slash($input) {
  if (!get_magic_quotes_gpc()) {
    return addslashes($_POST['lastname']);
  } else {
    return $_POST['lastname'];
  }
}

Så siger du bare

$input=slash($_POST["input"]);
Avatar billede webcreator Nybegynder
30. december 2003 - 16:35 #81
Nå ja :)
Jeg kendte ikke lige return - men så fik jeg mulighed for at lære den at kende også :)
Avatar billede Slettet bruger
30. december 2003 - 16:36 #82
Og den var funktionelt magen til ahvs
Avatar billede webcreator Nybegynder
30. december 2003 - 16:36 #83
Ah, du har også en, sandbox. Tak tak :)
Avatar billede ahv Nybegynder
30. december 2003 - 16:37 #84
sandbox -> Bruger du icq eller msn?
Avatar billede Slettet bruger
30. december 2003 - 16:37 #85
Brug ahvs jeg havde lavet en skrivebøf, så min dur ikke.½
Avatar billede Slettet bruger
30. december 2003 - 16:38 #86
ahv: icq 25773325
Avatar billede webcreator Nybegynder
30. december 2003 - 16:38 #87
:)
Avatar billede Slettet bruger
30. december 2003 - 16:43 #88
Min skulle have set sådan ud:

function slash($input) {
  if (!get_magic_quotes_gpc()) {
    return addslashes($input);
  } else {
    return $input;
  }
}
Avatar billede webcreator Nybegynder
30. december 2003 - 17:02 #89
Jeg kan bedre lide den "invertede" version : :-)

function slash($input) {
    if (get_magic_quotes_gpc()) {
        return $input;
    } else {
        return addslashes($input);
    } 
}
Avatar billede webcreator Nybegynder
30. december 2003 - 17:08 #90
Citat, Ahv : "Hvorfor kører du ikke alle dine inputs igennem denne funktion?"
Er det ikke en smule overkill, hvis jeg ved, at indholdet blot er et tal ? - fx. et ID nummer.
Avatar billede Slettet bruger
30. december 2003 - 17:18 #91
Jo, så kan du nøjes med at kontrollere, om indholdet reelt er et tal med is_numeric
Avatar billede ahv Nybegynder
30. december 2003 - 17:36 #92
webcreator -> Hvis du er 100% på at det er et tal kører du den jo bare uden om.
Avatar billede ahv Nybegynder
30. december 2003 - 18:25 #93
Hvis jeg f.eks. indtaster:
http://www.jemt.frac.dk/ewm/index.php?id=11
Så kommer jeg til en 404 Not Found side. Jeg vil mene det var praktisk hvis du blot viderestillede til forsiden, eller til en anden side der forklarede at den pågældende side ikke findes.
Avatar billede webcreator Nybegynder
30. december 2003 - 18:29 #94
Jeg har lige pillet ved filerne - nok derfor.
Hvis en side ikke eksisterer, hentes siden med mindste nummer i orderby. Men faktisk er jeg usikker på, om det er den korrekte måde jeg får fat i denne post på. (i main.php)
Avatar billede webcreator Nybegynder
30. december 2003 - 18:32 #95
Nyeste kode lagt ud : www.powerzone.dk/ewm.zip

Gider du/i tjekke den igennem endnu engang ? Hvis alt ser ok ud, så vil jeg få mit eget website configureret, og få udgivet mine 2 færdige systemet (EasyBookMarks er det andet).

Forresten har jeg valgt ikke at optimere mine MySQL queries. Dels finder jeg det meget behageligt, at jeg ikke skal tænke på at pille i mine MySQL sætninger, hvis jeg skal hente noget nyt data. Og så er det nemmere for andre, at udvikle videre på mit system.
Avatar billede webcreator Nybegynder
30. december 2003 - 18:33 #96
Nyeste kode lagt ud : www.powerzone.dk/ewm2.zip

Skulle naturligvis være nr. 2 :)
Avatar billede ahv Nybegynder
30. december 2003 - 18:49 #97
I add.php skriver du:
if ($exist["id"] == "") {

Dette kan omskrives til:
if (!$exist["id"]) {

Der er flere steder du bare tjekker om noget er sat ved at skrive if($var) {
Hvis du vil være helt sikker så skal du nok bruge if(isset($var)) { Denne vil også tage højde for hvis værien er 0. Ville hvertfald tilføje den der hvor du gøre brug af forms, hvis du så tjekker om alle felter er udfyldt skal du bruge isset.

I din edit.php har du følgende:
mysql_query("UPDATE ".$prefix."categories SET `name`='$cate' WHERE `id`='$id'") or die(mysql_error());
$suc = "Category updated successfully";

Hvis du vil være sikker på at den virkelig er opdateret kan du efterfølgende kører dette:
if (mysql_affected_rows() > 0) {
// Så er der virkelig sket en opdatering

Denne tjekker om der virkelig er ændret i en række i den givne tabel.

Du kunne også lave en funktion til når du skal udskrive nogle stringe, hvor du har spripslashes og htmlentities på.
Avatar billede webcreator Nybegynder
30. december 2003 - 18:55 #98
Perfekt. Ser lige på det med det samme :)
Avatar billede webcreator Nybegynder
30. december 2003 - 19:03 #99
Jeg har nu ændret mine exist-tjek.

Hvad angår tjek af variabler, så skulle jeg ellers mene, at jeg har tjekket på den måde jeg ønsker. Jeg vil ikke have, at man kan omgå de tvungne felter i en form. Det vil man jo netop kunne, ved at tilføje isset (så vidt jeg forstår). pt. skal brugeren indtaste i de felter jeg "forlanger".

Hvad angår tjekket på, om der _virkelig er_ sket en update, er det så ikke lidt overkill? Jeg har jo en 'or die(mysql_error());' på min streng. Så hvis en update ikke kan lykkes, så meldes der straks fejl.

Jeg er udemærket klar over, at du er langt bedre til PHP end mig - så ret mig endelig hvis jeg tager fejl :)
Avatar billede ahv Nybegynder
30. december 2003 - 19:19 #100
Det var blot hvis du ville tjekke om der virkelig var sket en ændring, at der ikke blot var trykket udfør. Fejlen skal din or die jo nok klare :o)
Avatar billede webcreator Nybegynder
30. december 2003 - 19:23 #101
Ok. Helt fint :)
Så tror jeg næsten, at systemet er ved at være færdigt. Nogen der har et par sidste kommentare, inde jeg lukker helt ned ? :)
Avatar billede ahv Nybegynder
30. december 2003 - 19:29 #102
Du bruger både session_unset(); & session_destroy(); ved logout, session_destroy(); burde være nok.
Avatar billede webcreator Nybegynder
30. december 2003 - 19:31 #103
Ok. Fik at vide, at jeg skulle bruge de to. Troede jeg skulle bruge dem sammen :)

Tak.

Lader lige spm.'et stå åbent lidt endnu, i tilfælde at af du/andre finder flere fejl.
Avatar billede webcreator Nybegynder
31. december 2003 - 04:04 #104
Jeg fandt nogle fejl i admin/edit.php. Jeg havde ikke brugt stripslashes/htmlentities korrekt. Så det fik jeg lige rettet. En ny version vil snart blive lagt op på www.powerzone.dk - så kan folk få lov at hente og installere system hvis de har lyst :)
Avatar billede webcreator Nybegynder
02. januar 2004 - 02:58 #105
Mange tak for hjælpen alle sammen - og specielt til dig, Ahv. Var utroligt rart, at du gad hjælpe med at finde fejl :-)

Til jer andre : Easy WebManager kan nu hentes på mit website. Jeg håber I får glæde af det :)

http://www.powerzone.dk/powerzone/index.php?id=36

/Webcreator
Avatar billede jorn1 Nybegynder
06. januar 2005 - 02:38 #106
Har idag hentet dette

starter med at få følgende fejl.

Notice: Undefined index: conf in C:\!webserver\!jt-edb.dk\www\ewm\configure.php on line 5


dernæst når jeg går til http://www.mitdomæne.dk/ewm/

Notice: Undefined index: id in C:\!webserver\!jt-edb.dk\www\ewm\index.php on line 6

når jeg så går til administrations modulet får jeg disse fejl

Notice: Undefined index: user in C:\!webserver\!jt-edb.dk\www\ewm\admin\index.php on line 6

Notice: Undefined index: pass in C:\!webserver\!jt-edb.dk\www\ewm\admin\index.php on line 7

Notice: Undefined index: auto in C:\!webserver\!jt-edb.dk\www\ewm\admin\index.php on line 8

Notice: Undefined index: subm in C:\!webserver\!jt-edb.dk\www\ewm\admin\index.php on line 9

Notice: Undefined index: sac in C:\!webserver\!jt-edb.dk\www\ewm\admin\index.php on line 11

Notice: Undefined index: sac in C:\!webserver\!jt-edb.dk\www\ewm\admin\menu.php on line 3

Notice: Undefined index: sacuser in C:\!webserver\!jt-edb.dk\www\ewm\admin\menu.php on line 3

EasyWebManager
Index | Add category | Edit categories | Add link | Edit links | Sort links | Add new page | Edit pages
Notice: Undefined variable: logout in C:\!webserver\!jt-edb.dk\www\ewm\admin\menu.php on line 11


så der er noget at arbejde på.

www.jt-edb.dk/ewm/
Avatar billede Slettet bruger
08. januar 2005 - 21:00 #107
Prøv at geninstallerer ved at følge beskrivelsen i readme.txt - Jeg havde ingen problemer med installation
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester