abonnement Unibet Coolblue Bitvavo
  donderdag 4 augustus 2005 @ 19:04:00 #151
32768 DionysuZ
Respect my authority!
pi_29427789
en heb je wel de goede rechten toegekend aan de dir? chmod wil soms nog wel es helpen
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_29431526
Hij kon zelfs in de root folder wegschrijven.. lijkt me dus van wel..
  vrijdag 5 augustus 2005 @ 11:18:13 #153
42000 HaKeeM
"Want zo is het ook."
pi_29441737
Ik wil graag op 1 pagina bewerkingen doen op twee databases (op dezelfde host). Met mijn connect_inc.php file waarin ik de database aanroep heb ik tot nu toe gewerkt met 1 database per keer. Ik wil dit nu graag met twee databases. Ik weet dat je in je query kan werken met
databasenaam.tabelnaam om het onderscheid in je query's aan te geven maar hoe open je een connectie met twee databases tegelijk.

Mijn single database connect_inc.php ziet er zo uit:

1
2
3
4
5
6
7
8
9
<?
$host = "hostip";
$Username = "username";
$Password = "WaChTwOoRd";
$Database = "databasenaam";

mysql_connect("$host","$Username","$Password") or die (mysql_error());
mysql_select_db("$Database") or die ("Database connection failed!");
?>
iMac G5 20"
2,1 GHz PowerPC G5
pi_29442703
Mijn broertje is op vakantie en ik heb totaal geen verstand van PHP.
Maar nu krijg ik op het forum van onze site het de volgende melding.

Notice: Only variables should be assigned by reference in /home/xxx.com/forum/Sources/Subs.php on line 232

Notice: Undefined index: is_admin in /home/xxx.com/forum/Sources/Security.php on line 556

Notice: Undefined index: permissions in /home/xxx.com/forum/Sources/Security.php on line 563

Warning: in_array(): Wrong datatype for second argument in /home/xxx.com/forum/Sources/Security.php on line 563
session_start(): Cannot send session cookie - headers already sent by (output started at /home/xxx.com/forum/Sources/Subs.php:232)


Wat moet ik veranderen? Of wat is er aan de hand?
Alvast bedankt
Leverancier van www.autogespot.nl
pi_29443597
Ik ben bang dat wij weinig kunnen met deze foutmeldingen. Heb je recentelijk iets veranderd? Of je broertje, voor hij weg ging?
pi_29444011
Nee helemaal nix

Ik ben vanochtend nog online geweest op het forum.

Maar goed boeie we zien wel verder
Leverancier van www.autogespot.nl
  vrijdag 5 augustus 2005 @ 14:52:31 #157
16228 Postman_Pat
I've got mail for U
pi_29444778
--------------------------------------------------------------------------------

Hallo..

ik heb onderstaand scriptje...

<?
$sSql = mysql_query("SELECT
ROUND(SUM(`Doelpunten`) / SUM('AanwezigWinst'),2) AS `gemiddeld`
FROM `speler2005` LIMIT 0,1") or die(mysql_error());
$sRow = mysql_fetch_assoc($sSql);
echo 'Gemiddeld aantal doelpunten per wedstrijd is '.$sRow['gemiddeld'].'.<br />';
?>

Aantal doelpunten is 4, en AanwezigWinst is 3. Gemiddeld is dat dus 1.33 per gespeelde wedstrijd.

Dit gaf de pagina de eerste paar keer wel aan, maar nu houdt de pagina op na "doelpunten per wedstrijd is "

Hoe kan dit?


En als ik

SUM('AanwezigWinst'+'AanwezigVerlies'+'AanwezigGelijk')

toevoeg, rekent ie alleen maar met AanwezigWinst (zolang het duurt/zichtbaar is op de pagina)
[url=http://www.wip-inn.nl]WIP-INN[/url] [url=http://www.dekanientjes.nl]De Kanientjes[/url]
  FOK!-Schrikkelbaas vrijdag 5 augustus 2005 @ 16:35:12 #158
1972 Swetsenegger
Egocentrische Narcist
pi_29446377
1
2
3
<?php
$text
=preg_replace('#<table>(.*?)</table>#i','',$originele_text);
?>


Doet dit wat ik denk dat het doet, namelijk alles vanaf <table> tot </table> weghalen?
pi_29448496
quote:
Op vrijdag 5 augustus 2005 11:18 schreef HaKeeM het volgende:
Ik weet dat je in je query kan werken met
databasenaam.tabelnaam om het onderscheid in je query's aan te geven
Dat kan niet in MySql. Je kan dus ook geen query maken die over meerdere databases gaan.
quote:
maar hoe open je een connectie met twee databases tegelijk.
Als je query's op meerdere databases uit wil voeren dan moet je per database een verbinding maken. Bij mysql_connect moet je de parameter new_link = true opgeven. Bij elke query die je uitvoert moet je opgeven welke verbinding gebruikt moet worden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Config
$db1 = array(
   'server' => 'localhost',
   'username' => 'sa',
   'password' => '******',
   'database' => 'test1'
);
$db2 = array(
   'server' => 'localhost',
   'username' => 'sa',
   'password' => '******',
   'database' => 'test2'
);

// Open connections
$conn1 = mysql_connect($db1['server'], $db1['username'], $db1['password'], true);
if (!$conn1) { die('Error: could not connect to server.'); }
mysql_selectdb($db1['database']);

$conn2 = mysql_connect($db2['server'], $db2['username'], $db2['password'], true);
if (!$conn2) { die('Error: could not connect to server.'); }
mysql_selectdb($db2['database']);

// Execute queries
$sql1 = 'SELECT * FROM table1';
$result1 = mysql_query($sql1, $conn1);
if (!$result1) { die('Error: could not execute query.'); }

$sql2 = 'SELECT * FROM table2';
$result2 = mysql_query($sql2, $conn2);
if (!$result2) { die('Error: could not execute query.'); }
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_29448619
quote:
Op vrijdag 5 augustus 2005 16:35 schreef Swetsenegger het volgende:

[ code verwijderd ]

Doet dit wat ik denk dat het doet, namelijk alles vanaf <table> tot </table> weghalen?
Als <table> en </table> op dezelfde regel staan. Anders even de s modifier toevoegen. Dan matcht de punt elk teken, inclusief een newline.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_29448735
quote:
Op vrijdag 5 augustus 2005 14:52 schreef Postman_Pat het volgende:
...
1SUM('AanwezigWinst')

moet zijn

1SUM(`AanwezigWinst`)


Zoek de verschillen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas vrijdag 5 augustus 2005 @ 19:01:41 #162
1972 Swetsenegger
Egocentrische Narcist
pi_29448956
quote:
Op vrijdag 5 augustus 2005 18:41 schreef SuperRembo het volgende:

[..]

Als <table> en </table> op dezelfde regel staan. Anders even de s modifier toevoegen. Dan matcht de punt elk teken, inclusief een newline.
1
2
3
<?php
$text
=preg_replace('#<table>(.*?)</table>#is','',$originele_text);
?>


Ik had deze met een beetje nadenken kunnen herleiden aan de hand van jouw url parser (waarvoor nog steeds dank ). Maar.... wat doet de #? Ik vind die niet terug in tuts

[ Bericht 6% gewijzigd door Swetsenegger op 05-08-2005 19:15:26 ]
pi_29449765
De #jes zijn de scheidingstekens van de regexp. Standaard is het een /, maar je mag er allerlei tekens voor gebruiken: /foo/, #foo# en <foo> doen hetzelfde. Als je een scheidingsteken in het patroon zelf wil gebruiken dan moet je die wel escapen met een \.

1
2
3
4
#<table>(.*?)</table>#is
/<table>(.*?)<\/table>/is
<\<table\>(.*?)\</table\>>is
{<table>(.*?)</table>}is

Het hangt dus een beetje van het patroon af wat het handigste scheidingsteken is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zaterdag 6 augustus 2005 @ 14:40:53 #164
1972 Swetsenegger
Egocentrische Narcist
pi_29466189
Het blijft me maar bezig houden...: OOP

Ik kom maar geen goede tutorial tegen welke me de fineses van OOP goed uitlegt. Tot op heden zie ik het meer als een uitgebreide functie, maar er zal best meer achter zitten .

Het kwartje wil dus maar niet vallen, en ik blijf op zoek naar goede heldere stap voor stap documentatie met duidelijke en nuttige voorbeelden. Dit mag bv ook een boek zijn (graag zelfs) welke OOP in PHP 4 en 5 helder beschrijft.

Iederen met tips voor nederlandstalig online tutorials of duidelijke boeken, ik hou me aanbevolen.
En nederlands omdat wanneer ik de techniek opzich niet begrijp, me ook nog niet druk wil maken of ik de vertaling wel juist interpreteer
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 16:47:57 #165
1972 Swetsenegger
Egocentrische Narcist
pi_29488036
Dan maar gewoon beginnen met OOP, al doende leert men

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class Database
{
    var $host;
    var $user;
    var $pass;
    var $database;

    // constructor
    function Database()
    {
        // initialiseer hier bepaalde gegevens
        $this->host = 'localhost';
        $this->user = 'mijnveelgebruikteusername';
        $this->pass = 'mijnveelgebruiktepassword';
    }

    // functie om de host te bepalen
    function Sethost($host)
    {
        $this->host = $host;
    }

    // functie om de user te bepalen
    function Setuser($user)
    {
        $this->user = $user;
    }

    // functie om de pass te bepalen
    function Setpass($pass)
    {
        $this->pass = $pass;
    }

    // functie om de database te bepalen
    function Setdatabase($database)
    {
        $this->database = $database;
    }
    
    // verbind met database
    function Connectdb()
    if($dbc=@mysql_connect($this->host,$this->user,$this->pass)){

                if(!@mysql_select_db($this->database)){
                die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>');
                }

        }else{
        die('<p>Niet verbonden wegens '.mysql_error().'</p>');
        }
}


Volgens mij is dit een werkende klasse, correct?
En die kan ik zou aanroepen?

1
2
3
4
5
$db= new Database;
$db->Setuser ('newuser');
$db->Setpass ('newpass');
$db->Setdatabase ('newdb');
$db->Connectdb ();


Indien correct (:P), wat is dan nu het grote voordeel van een klasse boven een functie.
Ik kan natuurlijk ook gewoon dit doen:

1
2
3
4
5
6
7
<?php
function ConnectDB ($host,$user,$pass,$database){
//database connectie maken
}

ConnectDB('mijnhost','mijnuser','mijnpass','mijndatabase');
?>


Wanneer wordt die highlighter bug nu eens gefixed

[ Bericht 21% gewijzigd door Swetsenegger op 07-08-2005 16:57:38 ]
pi_29488155
Overigens doet mijn upload script het nu, stonden oa. wat slashes verkeerd.
Als iemand de code wilt hebben kan ik het hier wel posten.

Alleen wil ik nog 1 ding er aan toevoegen: Hoe kan ik controlleren of een bestand al bestaat? Anders worden bestanden gewoon overschreven
pi_29488306
quote:
Op zaterdag 6 augustus 2005 14:40 schreef Swetsenegger het volgende:
Het blijft me maar bezig houden...: OOP

Ik kom maar geen goede tutorial tegen welke me de fineses van OOP goed uitlegt. Tot op heden zie ik het meer als een uitgebreide functie, maar er zal best meer achter zitten .

Het kwartje wil dus maar niet vallen, en ik blijf op zoek naar goede heldere stap voor stap documentatie met duidelijke en nuttige voorbeelden. Dit mag bv ook een boek zijn (graag zelfs) welke OOP in PHP 4 en 5 helder beschrijft.

Iederen met tips voor nederlandstalig online tutorials of duidelijke boeken, ik hou me aanbevolen.
En nederlands omdat wanneer ik de techniek opzich niet begrijp, me ook nog niet druk wil maken of ik de vertaling wel juist interpreteer
ik ken dat probleem

maar OOP is , vind ik, eigenlijk een heel omslachtige manier om dingen te laten uitvoeren
volgens mij wilde ze gewoon iets hebben dat altijd een standaard opbouw had en hebben ze daarom OOP gekozen
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 17:16:14 #168
1972 Swetsenegger
Egocentrische Narcist
pi_29488450
quote:
Op zondag 7 augustus 2005 17:06 schreef mschol het volgende:

[..]

ik ken dat probleem

maar OOP is , vind ik, eigenlijk een heel omslachtige manier om dingen te laten uitvoeren
volgens mij wilde ze gewoon iets hebben dat altijd een standaard opbouw had en hebben ze daarom OOP gekozen
Ja, zoiets heb ik ook. Een klasse ziet eruit als een verzameling functies. Dan kan ik net zo goed... een verzameling functies aanleggen

Er MOET meer achter zitten
pi_29488637
Ik zie het gewoon als een logische verzameling functies. Met als leuk voordeel dat je in je code maar 1 naam gebruikt en alles daarachter verstopt zit. Je hebt bijvoorbeeld een variabele $db voor je database-klasse. En verschillende variabelen en functies die iets met een database te maken hebben. Zo heb je in die klasse een variabele "user". En ook in je code mag je gewoon "user" blijven gebruiken, zonder dat je conflicten krijgt
pi_29488901
quote:
Op zondag 7 augustus 2005 16:47 schreef Swetsenegger het volgende:
Dan maar gewoon beginnen met OOP, al doende leert men
[ code verwijderd ]

Volgens mij is dit een werkende klasse, correct?
En die kan ik zou aanroepen?
[ code verwijderd ]

Indien correct (:P), wat is dan nu het grote voordeel van een klasse boven een functie.
Ik kan natuurlijk ook gewoon dit doen:
[ code verwijderd ]
Je kunt het ook iets anders doen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Database
{
    var $host;
    var $user;
    var $database;

    // constructor
    function Database($host, $user, $pass, $database)
    {
        // initialiseer hier bepaalde gegevens
        $this->host = $host;
        $this->user = $user;
        $this->database = $database;

        if( @mysql_connect($this->host, $this->user, $pass) ) {
            if(! @mysql_select_db($this->database)) {
                die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>');
            }
        } else {
            die('<p>Niet verbonden wegens '.mysql_error().'</p>');
        }
    }
}

Merk op dat ik $pass nergens opsla. Als je dan eens een print_r($db) gebruikt blijft het wachtwoord iig verborgen. En zo kun je in 1 keer verbinding maken:
1$db = new Database('mijnhost', 'mijnuser', 'mijnpass', 'mijndb');

Je kunt je Database-klasse ook meer laten doen dan alleen het maken van een verbinding. Denk aan het tellen van queries, en bijhouden hoe lang de queries duren. Dan heeft zo'n klasse echt meerwaarde boven de standaard mysql_ functies. En het zijn dingen die een query-functie er wel bij kan doen.
pi_29488997
Al die properties helemaal uitschrijven met setters en getters daar heb je in php4 niet zo veel aan. Je hebt geen onderscheid in private en public members.

Het voordeel van classes is dat je functies en variabelen bij elkaar houdt. Je maakt bijvoorbeeld een database class die zelf de connectie bevat. Je kan dan dezelfde class gebruiken om met verschillende databases te connecten zonder dat je connecties door elkaar raken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 19:11:58 #172
1972 Swetsenegger
Egocentrische Narcist
pi_29490027
quote:
Op zondag 7 augustus 2005 17:51 schreef Light het volgende:

[..]

Je kunt het ook iets anders doen
[ code verwijderd ]

Merk op dat ik $pass nergens opsla. Als je dan eens een print_r($db) gebruikt blijft het wachtwoord iig verborgen. En zo kun je in 1 keer verbinding maken:
[ code verwijderd ]

Je kunt je Database-klasse ook meer laten doen dan alleen het maken van een verbinding. Denk aan het tellen van queries, en bijhouden hoe lang de queries duren. Dan heeft zo'n klasse echt meerwaarde boven de standaard mysql_ functies. En het zijn dingen die een query-functie er wel bij kan doen.
Die is wel netjes inderdaad. Maar kan ik hier nu ook zorgen dat de host al gedeclareerd is naar localhost, en indien nodig ik deze kan overschrijven?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Database
{
    var $host;
    var $user;
    var $database;

    // constructor
    function Database($host, $user, $pass, $database)
    {
        // initialiseer hier bepaalde gegevens
        $this->host='localhost';
        $this->host = $host;
        $this->user = $user;
        $this->database = $database;

        if( @mysql_connect($this->host, $this->user, $pass) ) {
            if(! @mysql_select_db($this->database)) {
                die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>');
            }
        } else {
            die('<p>Niet verbonden wegens '.mysql_error().'</p>');
        }
    }
}


en dan zo aanroepen

1$db= new Database('mijnuser','mijnpass','mijndb');


Het voordeel is dus behalve dat het misschien wat netter en overzichtelijker is, dat ik mijn variabelen bij de 'functie' hou. Geen risico op overschrijven zeg maar?
quote:
Al die properties helemaal uitschrijven met setters en getters daar heb je in php4 niet zo veel aan. Je hebt geen onderscheid in private en public members.
...members... tuurlijk.
pi_29490765
Je hebt dan ook OOP puur voor het gemak van objecten, of OOP als vorm van namespacing (oftewel, classes als functielibraries).

Het voordeel van OOP komt pas als je gaat overerven en echt met objecten aan de gang gaat.

De genoemde database class is bijvoorbeeld ietwat simplistisch. In de object attributen zou je bijvoorbeeld de link identifier moeten opslaan en deze consequent gebruiken bij alle methoden. Dan kan je namelijk op eenvoudige manier een connectie onderhouden met twee mysql servers, dmv twee verschillende db-objecten. Zoals het nu in elkaar zit kan dat niet, en is er geen meerwaarde tov een serie platte functies.
pi_29490802
quote:
Op zondag 7 augustus 2005 19:11 schreef Swetsenegger het volgende:

[..]

Die is wel netjes inderdaad. Maar kan ik hier nu ook zorgen dat de host al gedeclareerd is naar localhost, en indien nodig ik deze kan overschrijven?
Uiteraard kan dat
1function Database($user, $pass, $database, $host='localhost')

Let wel op de gewijzigde volgorde van de argumenten Als je localhost wilt gebruiken dan geef je gewoon maar 3 argumenten.
quote:
Het voordeel is dus behalve dat het misschien wat netter en overzichtelijker is, dat ik mijn variabelen bij de 'functie' hou. Geen risico op overschrijven zeg maar?
[..]
Dat vind ik iig een voordeel Zo'n klasse is in principe volledig los van de andere code te maken.
quote:
...members... tuurlijk.
Functies en variabelen. Talen die meer OO zijn kennen public en private members. Van private members is buiten de class het bestaan niet eens te zien. Dat kan in PHP niet, daar zijn alle functies en variabelen van buitenaf te zien en aan te spreken.
pi_29490818
members is de verkeerde naam voor attributen gok ik zo.
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 20:14:37 #176
1972 Swetsenegger
Egocentrische Narcist
pi_29490884
quote:
Op zondag 7 augustus 2005 20:09 schreef Light het volgende:

[..]

Uiteraard kan dat
[ code verwijderd ]

Let wel op de gewijzigde volgorde van de argumenten Als je localhost wilt gebruiken dan geef je gewoon maar 3 argumenten.
dus het voorbeeld wat ik gaf werkt niet?
pi_29490902
quote:
Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
In java wordt de term members gebruikt. Hoe dat is in andere OO-talen weet ik niet.
pi_29490943
hmz. waarom ziet de textonlylayout er zo ongelovelijk brak uit
pi_29490967
quote:
Op zondag 7 augustus 2005 20:14 schreef Swetsenegger het volgende:

[..]

dus het voorbeeld wat ik gaf werkt niet?
Je gaat een variabele 2 keer toewijzen, resultaat is dat de eerste eigenlijk wel weg kan. Je kunt wel iets doen dat als je een lege string opgeeft voor $host, dat dan localhost gebruikt wordt. Als je een variabele wilt weglaten dan moet het de laatste zijn.
pi_29491010
quote:
Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
Oh kut het is ook nooit goed.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')