| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | php program, søge Fra : oz7aik | 
  Dato :  19-12-09 14:49 |  
  |   
            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 (19-12-2009) 
         
	
            | Kommentar Fra : oz7aik | 
  Dato :  19-12-09 14:53 |  
  |   
            
"oz7aik" <ozxxxx@xxxxx.dk> skrev i meddelelsen 
 news:4b2cd9e6$0$56768$edfadb0f@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 (19-12-2009) 
         
	
            | Kommentar Fra : Philip Nunnegaard | 
  Dato :  19-12-09 15:02 |  
  |  
 
            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 (19-12-2009) 
         
	
            | Kommentar Fra : oz7aik | 
  Dato :  19-12-09 15:09 |  
  |   
            
"Philip Nunnegaard" <nunnenospam@hitsurf.dk> skrev i meddelelsen 
 news:4b2cdcba$0$56781$edfadb0f@dtext02.news.tele.dk...
 > 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
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 (19-12-2009) 
         
	
            | Kommentar Fra : oz7aik | 
  Dato :  19-12-09 15:16 |  
  |   
            
"oz7aik" <ozxxxx@xxxxx.dk> skrev i meddelelsen 
 news:4b2cde96$0$56771$edfadb0f@dtext02.news.tele.dk...
 >
 > "Philip Nunnegaard" <nunnenospam@hitsurf.dk> skrev i meddelelsen 
 > news:4b2cdcba$0$56781$edfadb0f@dtext02.news.tele.dk...
 >> 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
>
 > 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
 >
 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 (19-12-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  19-12-09 19:05 |  
  |  
 
            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
            
              |   |   
            
        
 
            
         
            Philip Nunnegaard (23-12-2009) 
         
	
            | Kommentar Fra : Philip Nunnegaard | 
  Dato :  23-12-09 12:32 |  
  |   
            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 (23-12-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  23-12-09 16:28 |  
  |  
 
            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.
 -- 
 Med venlig hilsen
 Stig Johansen
            
              |   |   
            
        
 
            
         
              Philip Nunnegaard (23-12-2009) 
         
	
            | Kommentar Fra : Philip Nunnegaard | 
  Dato :  23-12-09 22:48 |  
  |   |   |   
            
        
 
            
         
               Stig Johansen (24-12-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  24-12-09 02:41 |  
  |  
 
            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>
-- 
 Med venlig hilsen
 Stig Johansen
            
              |   |   
            
        
 
            
         
               Stig Johansen (24-12-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  24-12-09 02:40 |  
  |   
            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.
 
 -- 
 Med venlig hilsen
 Stig Johansen
  
            
             |   |   
            
        
 
            
         
                Jonathan Stein (26-12-2009) 
         
	
            | Kommentar Fra : Jonathan Stein | 
  Dato :  26-12-09 12:00 |  
  |  
 
            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.
    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/
            
             |   |   
            
        
 
            
         
                 Stig Johansen (26-12-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  26-12-09 13:02 |  
  |   
            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ø).
 
 -- 
 Med venlig hilsen
 Stig Johansen
  
            
             |   |   
            
        
 
            
         
                  Jonathan Stein (26-12-2009) 
         
	
            | Kommentar Fra : Jonathan Stein | 
  Dato :  26-12-09 15:06 |  
  |  
 
            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.
    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 (26-12-2009) 
         
	
            | Kommentar Fra : Jonathan Stein | 
  Dato :  26-12-09 11:56 |  
  |  
 
            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/
            
             |   |   
            
        
 
            
         
           Michael Rasmussen (19-12-2009) 
         
	
            | Kommentar Fra : Michael Rasmussen | 
  Dato :  19-12-09 19:50 |  
  |   |   |   
            
        
 
            
         
           Stig Johansen (20-12-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  20-12-09 05:11 |  
  |  
 
            Michael Rasmussen wrote:
 > On Sat, 19 Dec 2009 19:05:18 +0100
 > Stig Johansen <wopr.dk@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.
 -- 
 Med venlig hilsen
 Stig Johansen
            
              |   |   
            
        
 
            
         
            oz7aik (20-12-2009) 
         
	
            | Kommentar Fra : oz7aik | 
  Dato :  20-12-09 10:09 |  
  |   
            
"Stig Johansen" <wopr.dk@gmaill.com> skrev i meddelelsen 
 news:4b2da441$0$279$14726298@news.sunsite.dk...
 > Michael Rasmussen wrote:
 >
 >> On Sat, 19 Dec 2009 19:05:18 +0100
 >> Stig Johansen <wopr.dk@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.
 >
 > -- 
 > Med venlig hilsen
 > Stig Johansen
 tak
 Jeg blev ikke kloger
 jeg må nok lave et indholdfortegelse manuel
 oz7 
            
              |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |