Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

php program, søge

0 views
Skip to first unread message

oz7aik

unread,
Dec 19, 2009, 8:49:24 AM12/19/09
to
findes der et php eller lin. program, man kan have p� sin side (server)
som "database" s� bes�gene kan s�ge p� ens hjemmeside,

oz7 J�rgen

oz7aik

unread,
Dec 19, 2009, 8:52:44 AM12/19/09
to

"oz7aik" <ozx...@xxxxx.dk> skrev i meddelelsen
news:4b2cd9e6$0$56768$edfa...@dtext02.news.tele.dk...

> findes der et php eller lin. program, man kan have p� sin side (server)
> som "database" s� bes�gene kan s�ge p� ens hjemmeside,
>
> oz7 J�rgen

hej igen
min hjemmeside best�r af mange sider
http://www.oz7aik.dk/FVC2605/

oz7

Philip Nunnegaard

unread,
Dec 19, 2009, 9:01:35 AM12/19/09
to
oz7aik skrev:

> findes der et php eller lin. program, man kan have p� sin side (server)
> som "database" s� bes�gene kan s�ge p� ens hjemmeside,

Hvis indholdet p� din side ligger i en database, og du er vant til at
skrive SQL-s�tninger, er det ligetil.

$soegeord = $_GET["soegeord"];
(... inputvalidering ...)

$sql = select (feltnavne) from [tabel-navn]
where overskrift like '%".$soegeord."%'
or tekst like '%".$soegeord."%' ";

Ellers er der jo Freefind:
http://www.freefind.com/

--
Philip - http://www.chartbase.dk | http://www.hitsurf.dk

oz7aik

unread,
Dec 19, 2009, 9:09:21 AM12/19/09
to

"Philip Nunnegaard" <nunne...@hitsurf.dk> skrev i meddelelsen
news:4b2cdcba$0$56781$edfa...@dtext02.news.tele.dk...

nej indholdet ligge ikke i en database,
findes der et program som kan designe en database ud fra de sider jeg har,
og vises p� en ny side en eller anden form for, faq, hj�lp m.m.

oz7

oz7aik

unread,
Dec 19, 2009, 9:16:28 AM12/19/09
to

"oz7aik" <ozx...@xxxxx.dk> skrev i meddelelsen
news:4b2cde96$0$56771$edfa...@dtext02.news.tele.dk...

hej igen
eller et program som kan lavet en form for Indholdfortelse med bogm�rker
m.m.
eller skal man lave det manuel

oz7

Stig Johansen

unread,
Dec 19, 2009, 1:05:18 PM12/19/09
to
Philip Nunnegaard wrote:

> $soegeord = $_GET["soegeord"];
> (... inputvalidering ...)
>
> $sql = select (feltnavne) from [tabel-navn]
> where overskrift like '%".$soegeord."%'
> or tekst like '%".$soegeord."%' ";

Hov hov - Philip, det har altid[1] v�ret god latin at bruge parameterized
queries, eller prepared statements, som det ogs� kaldes.

Selv PHP/mySQL ser ud til at underst�tte det nu:
<http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html>
s� der er ingen undskyldning ;)

[1] Ja ok, 'altid' er et vidt begreb, men for mit vedkommende siden ca. '95,
hvor jeg begyndte at kigge p� RDBMS'er i stedet for netv�rksdatabaser.

--
Med venlig hilsen
Stig Johansen

Michael Rasmussen

unread,
Dec 19, 2009, 1:50:18 PM12/19/09
to
On Sat, 19 Dec 2009 19:05:18 +0100
Stig Johansen <wop...@gmaill.com> wrote:

> Selv PHP/mySQL ser ud til at understøtte det nu:
> <http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html>
> så der er ingen undskyldning ;)
>
Nyt og nyt:-) MySQL 4.1 er fra 2003. PHP har understøttet prepared
statements siden php3. php3 blev udgivet i slutningen af 1990'erne.

--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Stig Johansen

unread,
Dec 19, 2009, 11:11:12 PM12/19/09
to
Michael Rasmussen wrote:

> On Sat, 19 Dec 2009 19:05:18 +0100
> Stig Johansen <wop...@gmaill.com> wrote:
>

>> Selv PHP/mySQL ser ud til at underst�tte det nu:
>>
<http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html>

>> s� der er ingen undskyldning ;)
>>
> Nyt og nyt:-) MySQL 4.1 er fra 2003. PHP har underst�ttet prepared


> statements siden php3. php3 blev udgivet i slutningen af 1990'erne.

Jeg underes�gte det ikke s� n�je, h�ftede mig blot ved, at der blev n�vnt
PHP 5 i det link jeg henviste til, samt at de store CMS'er (wordpress,
drupal o. lign.) ikke bruger prepared statements.

oz7aik

unread,
Dec 20, 2009, 4:09:02 AM12/20/09
to

"Stig Johansen" <wop...@gmaill.com> skrev i meddelelsen
news:4b2da441$0$279$1472...@news.sunsite.dk...

tak

Jeg blev ikke kloger

jeg m� nok lave et indholdfortegelse manuel

oz7

Philip Nunnegaard

unread,
Dec 23, 2009, 6:31:47 AM12/23/09
to
Stig Johansen skrev:

> Hov hov - Philip, det har altid[1] v�ret god latin at bruge parameterized
> queries, eller prepared statements, som det ogs� kaldes.

Desv�rre er der ingen steder p� nettet, hvor man kan se hvordan man
klarer det. MySQL's manual er ikke meget bevendt. Den forklarer kun at
man kan g�re det. Ikke hvordan.

Jeg googlede selv videre i dagene som fulgte, men ingen steder giver
noget som ikke er helt sort snak for mig.

S� det bliver nok noget jeg implementerer om en 5-10 �r, n�r der endelig
dukker en person op som ikke er mere n�rdet end at han kan formulere en
tutorial p� et forst�eligt sprog.

Indtil da m� jeg bare leve med en masse linjer der validerer de enkelte
variabler, inden de puttes ind i sql-s�tningerne.


Stig Johansen

unread,
Dec 23, 2009, 10:28:14 AM12/23/09
to
Philip Nunnegaard wrote:

> Jeg googlede selv videre i dagene som fulgte, men ingen steder giver
> noget som ikke er helt sort snak for mig.
>
> S� det bliver nok noget jeg implementerer om en 5-10 �r, n�r der endelig
> dukker en person op som ikke er mere n�rdet end at han kan formulere en
> tutorial p� et forst�eligt sprog.
>
> Indtil da m� jeg bare leve med en masse linjer der validerer de enkelte
> variabler, inden de puttes ind i sql-s�tningerne.

Leif har p� et tidspunkt givet et eksempel:
<http://groups.google.com/group/dk.edb.internet.webdesign.serverside.php/tree/browse_frm/thread/3a07be57bc7b73be/43558b9e82babec6?rnum=1&q=sql+prepare+group%3Adk.edb.internet.webdesign.serverside.php+author%3Aleif+author%3Aneland&_done=%2Fgroup%2Fdk.edb.internet.webdesign.serverside.php%2Fbrowse_frm%2Fthread%2F3a07be57bc7b73be%2F107b49468febc0b3%3Fq%3Dsql%2Bprepare%2Bgroup%253Adk.edb.internet.webdesign.serverside.php%2Bauthor%253Aleif%2Bauthor%253Aneland%26#doc_107b49468febc0b3>
og
<http://groups.google.com/group/dk.edb.internet.webdesign.serverside.php/tree/browse_frm/thread/21b9902295001f8a/fc2154c5028d7d7f?rnum=11&q=sql+prepare+group%3Adk.edb.internet.webdesign.serverside.php+author%3Aleif+author%3Aneland&_done=%2Fgroup%2Fdk.edb.internet.webdesign.serverside.php%2Fbrowse_frm%2Fthread%2F21b9902295001f8a%2F3e7c1614489a5334%3Fq%3Dsql%2Bprepare%2Bgroup%253Adk.edb.internet.webdesign.serverside.php%2Bauthor%253Aleif%2Bauthor%253Aneland%26#doc_3e7c1614489a5334>

Det handler egenlig blot om at substituere input variable med ? i SQL
s�tningerne, og 'binde' dem til variablerne efterf�lgende.

I ASP har jeg lavet denne lille funktion som jeg includer:
<http://w-o-p-r.dk/tips/asp/SQL.inc.asp.txt>
s� brugen g�r det nemmere, som f.eks:
SQL = "select noget from tabel where id=?"
set rs=query(conn,SQL,Array(input),1)

eller
SQL = "insert into tabel values ?"
rowsaffected = query(conn,SQL,Array(input),1)

Det m� v�re lige ud ad landevejen at lave det samme i PHP.

Philip Nunnegaard

unread,
Dec 23, 2009, 4:47:36 PM12/23/09
to
Stig Johansen skrev:

Ja, den giver lidt mere svar p� hvordan man "overs�tter" min SQL-s�tning
til "det nye".

> Det handler egenlig blot om at substituere input variable med ? i SQL
> s�tningerne, og 'binde' dem til variablerne efterf�lgende.

Det havde jeg n�sten regnet ud. Det var bare det med at opsnappe hvordan
man indsatte en bestemt streng p� ?'ets plads (det forst�r jeg stadig
ikke helt).
Selve syntaksen er sort snak for mig, men det skyldes nok at jeg ikke
forst�r dette "->".
Jeg g�tter p� at det er en alternativ m�de at k�re med arrays p�,
hvilket din ASP-version ogs� antyder.

Jeg er ofte st�et af, n�r syntaksen bev�ger sig for langt v�k fra det
talte sprog.

Uanset s� ser det ud til at ogs� selve forbindelsen til databasen skal
laves helt om i forhold til mit nuv�rende, s� jeg vil blive n�dt til at
k�re med 2 �bnefunktioner i en overgangsperiode, til det gamle er helt
udfaset.

Stig Johansen

unread,
Dec 23, 2009, 8:41:18 PM12/23/09
to
Philip Nunnegaard wrote:

>
> Ja, den giver lidt mere svar p� hvordan man "overs�tter" min SQL-s�tning
> til "det nye".

Glemte vist lige et link til eksempler med mere end 1 parameter:
<http://php.net/manual/en/mysqli-stmt.bind-param.php>

Stig Johansen

unread,
Dec 23, 2009, 8:39:30 PM12/23/09
to
Philip Nunnegaard wrote:

> Det havde jeg n�sten regnet ud. Det var bare det med at opsnappe hvordan
> man indsatte en bestemt streng p� ?'ets plads (det forst�r jeg stadig
> ikke helt).
> Selve syntaksen er sort snak for mig, men det skyldes nok at jeg ikke
> forst�r dette "->".
> Jeg g�tter p� at det er en alternativ m�de at k�re med arrays p�,
> hvilket din ASP-version ogs� antyder.

B�de ja og nej.
Normalt ville man skrive eks.
select <noget> from <tabel> where user='philip', eller rettere
select <noget> from <tabel> where user='$_GET[user]'

Hvis user indeholder phillip, s� bliver den aktuelle streng send til
serveren, og her har man brug for 'sanitizing' af input, s� man ikke kan
lave SQL injection.
Det kr�ver at man tager h�jde for en masse ting, ikke blot ', men ogs� hex
v�rdier m.m.

Det man g�r i stedet er at angive en parameter, eller placeholder med ? ,
som fort�ller, at her skal der inds�ttes noget data.

Her er forskellen at selve SQL s�tningen og data sendes hver for sig, s�
uanset hvad man skriver i felterne, vil det altid v�re _data_ og ikke
_sql_.

Derfor beh�ver man ikke nogen som helst validering af inputfelter (ud over
det kosmetiske/systemm�ssige).

Det foreg�r p� den m�de, at ?-tegnene repr�senterer en parameter i den
r�kkef�lge de optr�der, s� hvis der er mange, skal man holde tungen lige i
munden.

S� du skal bare forestille dig, at data til parametrene bliver indsat
p� ?-tegnenes plads, selv om det foreg�r p� en anden m�de teknisk set.

> Jeg er ofte st�et af, n�r syntaksen bev�ger sig for langt v�k fra det
> talte sprog.

Ja, det er ogs� lidt kryptisk med de ?-tegn.

I nogle af mine andre udviklingsv�rkt�jer kan man internt operere med
navngivne parametre, s� man i stedet kan skrive:
select <noget> from <tabel> where user=:user

og referere til parameteren med:
parameters('user')

Det giver et bedre overblik.

Hvis man skulle bruge det meget (og tit) kunne man lave en lille funktion,
der holder styr p� disse navne, og generere ? til serveren, men i ASP regi
bruger jeg ikke de store komplicerede queries, s� det kan ikke betale sig.

> Uanset s� ser det ud til at ogs� selve forbindelsen til databasen skal
> laves helt om i forhold til mit nuv�rende, s� jeg vil blive n�dt til at
> k�re med 2 �bnefunktioner i en overgangsperiode, til det gamle er helt
> udfaset.

Det har jeg ikke taget stilling til, da jeg ikke rigtig bruger PHP til andet
end lidt sm�test.

I MS verdenen har vi ADO, som er universel p� tv�rs af databaser (og
tekst/regneark), s� der er ikke behov for at skelne/�ndre p� tv�rs af
databaser og metoder, og f�r det ODBC, som ogs� var standard p� tv�rs af
databaser.

Det har undret mig, at man i PHP har laver klienter til hver sin database i
stedet for at normalisere det, for det betyder at man er l�st fast til en
given database.

Men jeg synes jeg har set noget der hedder PDO, s� m�ske kommer det engang.

Dog er det formentlig noget som udbyderne ogs� skal underst�tte.

Jonathan Stein

unread,
Dec 26, 2009, 5:56:07 AM12/26/09
to
Philip Nunnegaard skrev:

> Selve syntaksen er sort snak for mig, men det skyldes nok at jeg ikke
> forst�r dette "->".

Det er PHP's syntaks, n�r man arbejder med objekter.

En af fordelene ved Mysqli-interfacet er, at det (ogs�) er implementeret
objektorienteret.

"Ogs�" betyder dog, at der er frit valg - man kan stadig bruge
almindelige funktionskald som med det gamle MySQL-interface.

M.v.h.

Jonathan

--
Er din email vigtig? Er du tr�t af, at din hjemmeside er nede?
Stabilt webhotel p� redundant setup med daglig backup.
POP3, IMAP, PHP, JSP, Java, Perl, Python, Telnet, SSH, Cron-jobs m.v.
http://www.jsp-hotel.dk/

Jonathan Stein

unread,
Dec 26, 2009, 6:00:26 AM12/26/09
to
Stig Johansen skrev:

> Det har undret mig, at man i PHP har laver klienter til hver sin database i
> stedet for at normalisere det, for det betyder at man er l�st fast til en
> given database.

Man skal jo starte et sted - og s� l�nge databaserne er forskellige, m�
man jo starte med en driver til hver enkelt.

> Men jeg synes jeg har set noget der hedder PDO, s� m�ske kommer det engang.

Der findes flere forskellige abstraktionslag (bl.a. et ODBC-interface):
http://www.php.net/manual/en/refs.database.abstract.php

> Dog er det formentlig noget som udbyderne ogs� skal underst�tte.

Et abstraktionslag m� jo altid v�lge mellem at tilbyde laveste
f�llesn�vner - eller tilbyde noget, som ikke er underst�ttet af alle
bagvedliggende systemer.

Stig Johansen

unread,
Dec 26, 2009, 7:01:38 AM12/26/09
to
Jonathan Stein wrote:

> Et abstraktionslag m� jo altid v�lge mellem at tilbyde laveste
> f�llesn�vner - eller tilbyde noget, som ikke er underst�ttet af alle
> bagvedliggende systemer.

Taler vi samme sprog?

Der er ikke noget til hinder for at lave et abstraktionslag, der som minimum
er SQL compliant.

At man s� evt. kan lave nogle ekstra funktioner (aka vendor lockin) betyder
ikke, at det er 'laveste f�llesn�vner', blot at man bev�ger sig ud over
standarder.

Hvilke funktioner mener du der er s�regne for de forskellige
abstraktionslag?

(og som har _betydning_ i et produktionsmilj�).

Jonathan Stein

unread,
Dec 26, 2009, 9:06:12 AM12/26/09
to
Stig Johansen skrev:

>> Et abstraktionslag m� jo altid v�lge mellem at tilbyde laveste
>> f�llesn�vner - eller tilbyde noget, som ikke er underst�ttet af alle
>> bagvedliggende systemer.
>
> Taler vi samme sprog?

M�ske ikke. Jeg l�ste "udbyderne" som database-producenterne, men nu kan
jeg se, at det nok skulle l�ses som webhotel-udbyderne.

0 new messages