abonnement Unibet Coolblue Bitvavo
pi_43396815
misschien kijk ik ergens overheen..

ik heb

1   $prices[$row->Ext]['year'] = $row->year;

en krijg parse error
1Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in /usr/home/rmmedia/domains/roosmultimedia.nl/public_html/Site/scriptincludes/general/constants.php on line 26


line 26 is de regel die ik gepost heb. $row is een object gemaakt met mysql_fetch_object()..


Shite. heb hem al.. Objectnaam begon met een getal (ie. $row->1year)..
As a rule, I never touch anything more sophisticated and delicate than myself.
  FOK!-Schrikkelbaas donderdag 9 november 2006 @ 15:33:47 #152
1972 Swetsenegger
Egocentrische Narcist
pi_43396977
quote:
Op donderdag 9 november 2006 15:28 schreef Desdinova het volgende:
misschien kijk ik ergens overheen..

ik heb
[ code verwijderd ]

en krijg parse error
[ code verwijderd ]

line 26 is de regel die ik gepost heb. $row is een object gemaakt met mysql_fetch_object()..


Shite. heb hem al.. Objectnaam begon met een getal (ie. $row->1year)..
LOL. Nou succes verder
pi_43422957
quote:
Op donderdag 9 november 2006 13:04 schreef JeRa het volgende:

[..]

Je kunt dat op dezelfde manier doen als je joinet:
[ code verwijderd ]

Als de tabellen niet aan elkaar gerelateerd zijn kun je met subqueries werken.

Zoals ik in een aantal posts geleden opmerkte, MySQL werkt niet optimaal met ORDER BY RAND(). Als je heel veel records hebt kunnen de queries langzamer gaan werken, heb je er niet zo heel veel dan maakt het niets uit.
Kun je me iets meer uitleg geven, hier word ik niet zo wijs uit Het zijn trouwens vier tabellen:

streamrds: text
nieuws: datum titel
frequenties: stad frequentie
top100_shout: naam text

Dus van tabel 'streamrds' is het 'text' en van top100_shout 'naam' EN 'text'. Wat moet ik er dan neergooien?
dit
is
mijn
signature.
pi_43423074
quote:
Op vrijdag 10 november 2006 12:31 schreef RiderXXX het volgende:

[..]

Kun je me iets meer uitleg geven, hier word ik niet zo wijs uit
Misschien kun jij even uitleggen hoe je drie tabellen (toch?) aan elkaar gerelateerd zijn, en hoe je precies de random records daaruit wilt halen
pi_43423088
quote:
Op woensdag 8 november 2006 09:37 schreef Chandler het volgende:

[..]

Sr, htmlspecialchars werkt helaas niet... krijg dezelfde output. en goede headers stuur ik inderdaad niet. Heb namelijk geen idee welke ik moet sturen die zowel gewone karakters als thaise karakters ondersteunen...
Ik ben er bijna uit, het excel probleem dan...

Nu heb ik een ander probleem.

Voor mijn webshop ben ik bezig met een class, deze is natuurlijk bij iedere aanroep (include) weer leeg, echter wil ik proberen met sessies de inhoud te saven... echter gaat er iets fout..

Om de sessie aantemaken en de produkten te saven
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    
function saveSession()
    {
        
$_SESSION['shop'] = array();
        
        
$_SESSION['shop']['stuks']           = $this->stuks;
        
$_SESSION['shop']['produkten']       = addslashes(serialize($this->produkten));
        
$_SESSION['shop']['produkten_stuks'] = $this->produkten_stuks;
        
$_SESSION['shop']['totaalbedrag']    = $this->totaalbedrag;

        echo
'save';
            
print_r($_SESSION['shop']);

    }
?>


en om het weer in te laden gebruik ik dit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    
function shop()
    {
        if (isSet(
$_SESSION['shop']))
        {
            
$this->stuks           = $_SESSION['shop']['stuks'];
            
$this->produkten       = stripslashes(unserialize($_SESSION['shop']['produkten']));
            
$this->produkten_stuks = $_SESSION['shop']['produkten_stuks'];
            
$this->totaalbedrag    = $_SESSION['shop']['totaalbedrag'];
        }
        else
        {
            
$this->stuks           = 0;
            
$this->produkten       = array();
            
$this->produkten_stuks = 0;
            
$this->totaalbedrag    = 0;
        }
    }
?>


Dit is de sessie en class inhoud bij bestellen van een produkt
quote:
$_SESSIE
Array
(
[stuks] => 1
[produkten] => a:1:{i:2;a:5:{s:5:"titel";s:15:"Produkt titel 2";s:10:"stuk_prijs";s:1:"0";s:12:"totaal_prijs";s:1:"0";s:5:"stuks";i:1;s:7:"details";s:15:"Produkt tekst 2";}}
[produkten_stuks] => 1
[totaalbedrag] => 0
)[/code]

[quote]CLASS data
object(shop)(4)
{
["stuks"]=> int(1)
["produkten"]=> array(1)
{
[2]=> array(5)
{
["titel"]=> string(15) "Produkt titel 2"
["stuk_prijs"]=> string(1) "0"
["totaal_prijs"]=> string(1) "0"
["stuks"]=> int(1)
["details"]=> string(15) "Produkt tekst 2"
}
}
["produkten_stuks"]=> int(1)
["totaalbedrag"]=> int(0)
}
Echter krijg ik steeds een probleem met het laden ervan... dan zegt het dat het een probleem heeft met unserialize van $_SESSION['shop']['produkten']..

PS addslashes en stripslashes heb ik er nu in zitten en geeft ie een ander probleem..

zonder addslashes/stripslashes
quote:
Notice: argument passed to unserialize() is not an string in d:wwwbedrijfwww.heartbeadsdesign.nlincludeshop.class.php on line 20
Lijn 20 is de unserialize regel in functie shop() waar de sessie tot class data wordt omgezet.

met addslashes/stripslashes
quote:
Warning: Invalid argument supplied for foreach() in d:wwwbedrijfwww.heartbeadsdesign.nlincludeshop.class.php on line 62
saveArray ( [stuks] => [produkten] => N; [produkten_stuks] => [totaalbedrag] => ) array(4) { ["stuks"]=> NULL ["produkten"]=> string(2) "N;" ["produkten_stuks"]=> NULL ["totaalbedrag"]=> NULL }
oftewel blijkt dat de array $this->produkten helemaal vern**kt is :X

Wie heeft een idee??
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_43423114
quote:
Op vrijdag 10 november 2006 12:35 schreef JeRa het volgende:

[..]

Misschien kun jij even uitleggen hoe je drie tabellen (toch?) aan elkaar gerelateerd zijn, en hoe je precies de random records daaruit wilt halen
Hmja, ik heb net die post geupdate met de tabellen en wat ik er precies uit wil halen. Ik wil dat dus gewoon geheel random doen, zoals ik met RAND() LIMIT 1 zou kunnen doen, en dan die uitkomst in $text gooien. Dan kan ik $text gebruiken om de titel in de server te veranderen..

Maar ik wil dat dus (in dit geval) met 4 tabelletjes doen, en dan ook vershillende rijnamen.
dit
is
mijn
signature.
pi_43423184
quote:
Op vrijdag 10 november 2006 12:31 schreef RiderXXX het volgende:

[..]

Het zijn trouwens vier tabellen:

streamrds: text
nieuws: datum titel
frequenties: stad frequentie
top100_shout: naam text

Dus van tabel 'streamrds' is het 'text' en van top100_shout 'naam' EN 'text'. Wat moet ik er dan neergooien?
En als ik je goed begrijp wil je dus uit één willekeurige tabel van de vier die je daar beschrijft een random row halen?
pi_43423233
Klopt asj een boessie! (klopt als een bus)
dit
is
mijn
signature.
pi_43423364
quote:
Op vrijdag 10 november 2006 12:40 schreef RiderXXX het volgende:
Klopt asj een boessie! (klopt als een bus) :P
Dan bepaal je éérst wat je random tabel is in PHP:
1
2
3
4
5
<?php
$tabellen
= array('streams', 'nieuws', 'etc');
$tabel = $tabellen[array_rand($tabellen)];
unset(
$tabellen);
?>

Vervolgens doe je een query:
1
2
3
4
5
<?php
$query
= 'SELECT * FROM `' . $tabel . '` ORDER BY RAND() LIMIT 1';
$result = mysql_query($query);
$data = mysql_fetch_assoc($result);
?>

En afhankelijk van welke $tabel je hebt output je de juiste kolommen :)
1
2
3
4
5
6
7
8
9
10
<?php
switch ($tabel)
{
    case
'streams':
        echo
$data['text']; //ofzo
        
break;
    case
'nieuws':
        
// etc
}
?>
pi_43423449
Aah relaxed!!! Dit snap ik tenminste.. bedankt

Edit: wat als ik nu alleen in de tabel 'nieuws' wil sorteren op 'datum' en daar ook dan maar random uit de laatste 10 berichten eentje wil kiezen?

[ Bericht 30% gewijzigd door RiderXXX op 10-11-2006 13:14:55 ]
dit
is
mijn
signature.
pi_43424875
quote:
Op vrijdag 10 november 2006 12:36 schreef Chandler het volgende:

[..]

Ik ben er bijna uit, het excel probleem dan...

Nu heb ik een ander probleem.

Voor mijn webshop ben ik bezig met een class, deze is natuurlijk bij iedere aanroep (include) weer leeg, echter wil ik proberen met sessies de inhoud te saven... echter gaat er iets fout..

Om de sessie aantemaken en de produkten te saven
[ code verwijderd ]

en om het weer in te laden gebruik ik dit
[ code verwijderd ]

Dit is de sessie en class inhoud bij bestellen van een produkt
[..]

Echter krijg ik steeds een probleem met het laden ervan... dan zegt het dat het een probleem heeft met unserialize van $_SESSION['shop']['produkten']..

PS addslashes en stripslashes heb ik er nu in zitten en geeft ie een ander probleem..

zonder addslashes/stripslashes
[..]

Lijn 20 is de unserialize regel in functie shop() waar de sessie tot class data wordt omgezet.

met addslashes/stripslashes
[..]

oftewel blijkt dat de array $this->produkten helemaal vern**kt is :X

Wie heeft een idee??
Ik heb het probleem anders opgelost... door de data die geserialized is te decoden met base64 en daar krijg ik dus weer geen errors van.

1
2
3
<?php
    $this
->produkten       = unserialize(base64_decode($_SESSION['shopdata']['produkten']));
?>

The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_43425048
quote:
Op vrijdag 10 november 2006 12:48 schreef RiderXXX het volgende:
Aah relaxed!!! Dit snap ik tenminste.. bedankt :D :*

Edit: wat als ik nu alleen in de tabel 'nieuws' wil sorteren op 'datum' en daar ook dan maar random uit de laatste 10 berichten eentje wil kiezen?
Hoe je dat in PHP doet moet je zelf gaan bepalen, maar de SQL ziet er ongeveer zo uit (subquery):
1
2
3
4
5
6
7
8
SELECT * FROM (
    SELECT *
    FROM nieuws
    ORDER BY datum DESC
    LIMIT 0, 10
) t1
ORDER BY RAND()
LIMIT 1
pi_43425252
quote:
Op woensdag 8 november 2006 09:53 schreef ralfie het volgende:

[..]

Je kunt natuurlijk ook de manier gebruiken die veel officiele instanties gebruiken
achternaam, tussenvoegsels

als in

Laan, van der
Jansen

Het wordt iets moeilijker om bijv 'van der Laan' te zoeken (dit zul je met php om moeten bouwen) maar verder denk ik dat het een goed alternatief is.
Ja dat zou inderdaad kunnen, maar zoeken naar 'der Laan' zou op die manier niet werken, terwijl dat wel de bedoeling is.
pi_43425368
quote:
Op vrijdag 10 november 2006 13:44 schreef GVRuud het volgende:

[..]

Ja dat zou inderdaad kunnen, maar zoeken naar 'der Laan' zou op die manier niet werken, terwijl dat wel de bedoeling is.
Je zou bepaalde woorden kunnen laten herkennen als tussenvoegsels, zodat je uiteindelijk toch op 'Laan' uitkomt?
pi_43425731
Nou, probleem één is klaar. Nu weer het volgende (grote) probleem:

Ik wil een database opbouwen met daarin 'album releases'. Ik wil dat op de volgende manier kunnen showen op de website:


[maand] [jaar]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]

[maand] [jaar]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]


etc.. en de nieuwste maand boven. Maar hoe kan ik dat het beste doen? Het mooiste zou zijn om gewoon één tabelletje te hebben met 'albumreleases' en dat ik daar alles invul, maar wat is het beste qua opbouw in php en sql?
dit
is
mijn
signature.
  FOK!-Schrikkelbaas vrijdag 10 november 2006 @ 14:57:55 #166
1972 Swetsenegger
Egocentrische Narcist
pi_43427535
quote:
Op vrijdag 10 november 2006 13:59 schreef RiderXXX het volgende:
Nou, probleem één is klaar. Nu weer het volgende (grote) probleem:

Ik wil een database opbouwen met daarin 'album releases'. Ik wil dat op de volgende manier kunnen showen op de website:


[maand] [jaar]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]

[maand] [jaar]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]
[dag] [artiest] [albumtitel] [label]


etc.. en de nieuwste maand boven. Maar hoe kan ik dat het beste doen? Het mooiste zou zijn om gewoon één tabelletje te hebben met 'albumreleases' en dat ik daar alles invul, maar wat is het beste qua opbouw in php en sql?
Lees eens wat over database normalisatie.
Ik zie hier sowieso al een tabel of 3 (tabel artiesten, tabel albums, tabel labels). Plus een koppeltabel waarbij je een artiest en label aan een album knoopt)

-edit- dat zal je op de langere termijn werk besparen (je hoeft elke artiest of label maar 1 keer in te voeren en kan je vervolgens meerdere malen aan een album titel koppelen. Zo hoef je bv maar 1 keer Metallica in te voeren voor Load, Reload en Garage inc.), je database kleiner houden omdat er geen dubbele invoer in staat EN makkelijker uitbreidbaar in de toekomst als je meer informatie wil bij je album releases.

[ Bericht 7% gewijzigd door Swetsenegger op 10-11-2006 15:04:46 (uitleg) ]
pi_43428654
Let overigens wel op dat alhoewel een genormaliseerde database een erg nette manier van datarepresentatie is, bepaalde database management systems zoals MySQL vaak veel sneller werken met redundante data. Even snel sorteren op het aantal nummers per artiest is er bijvoorbeeld niet bij, behalve als je dat in een apart veld in de tabel 'artiesten' opslaat met een index erop.

De oplossing voor dat soort problemen ligt bij materialized views, welke MySQL nog niet ondersteunt. Verder leken me cross-table indices ook een goed idee (indexen die je kunt definiëren over de hele database over meerdere tabellen ipv per tabel), maar toen ik dat op GoT voorstelde als nieuwe feature werden ze allemaal kwaad en vroegen me om MySQL-configuraties omdat ze dachten dat ik een performanceprobleem had
pi_43428786
ja maar GoT zijn nubs

* RiderXXX rent naar GoT.
dit
is
mijn
signature.
pi_43433967
Ik heb een wordpress blog en ik blijf errors krijgen, volgens mij server logs gebeurd het hier.


[Fri Nov 10 10:02:55 2006] [error] [client <MIJNIP> mod_security: Access denied with code 500. Pattern match "(ht|f)tps?:/" at POST_PAYLOAD [id "300018"] [rev "3"] [msg "Generic PHP code injection protection via ARGS"] [severity "CRITICAL"] [hostname "sk8indtc.trimsalonpluto.nl"] [uri "/wp-admin/link-manager.php?link_id=22&action=linkedit"] [unique_id "0VhGQ38AAAEAAGavwgkAAAAB"]


hier word ik alleen niet veel wijzer uit. er staat dus acces denied with code 500 dat krijg ik als ik een link edit in wordpress. ("/wp-admin/link-manager.php). Hoe kan ik dit oplossen?
ik zie daar ook staan Generic Code injection. Is het misschien dat een bepaalde beveiliging van mijn host dit tegengaat omdat ie denkt dat ik een hacker ben oid?
0023
pi_43434110
ik heb ff "Generic PHP code injection protection via ARGS" in google gegooid vond dit:
http://www.etomite.org/forums/lofiversion/index.php?t6231.html

die gast had hetzelfde lag dus aan de host die apache heeft dichtgetimmerd
0023
pi_43455667
quote:
Op woensdag 8 november 2006 14:15 schreef ralfie het volgende:
Je kunt $GLOBALS['mysql'] gebruiken, of in elke functie 'global $mysql;' zetten, om de globale variabele aan te spreken.

Andere tip:
Je kunt mysql->connect() beter als constructor maken. Mocht je dat niet kennen, Constructors zijn functies die automatisch aangeroepen worden als een object gemaakt wordt
[ code verwijderd ]

wanneer je nu $x=new MySQL; doet, zal __construct() aageroepen worden (bij <php 5 heeft de constructor de naam van het object zelf (in dit geval 'function MySQL()' ). Scheelt weer een regel.
bestaat er niet ook een manier om $db om te toveren naar een superglobal?
..///
pi_43482605
Ik heb wat vraagjes over sessies in PHP. Ten eerste, de veiligheid.

Ik gebruik de volgende code om wat informatie uit een gePOST formulier op te slaan in de sessie:

1
2
3
4
5
6
<?php
$_SESSION
["naam"]     = $_POST["naam"];
$_SESSION["adres"]    = $_POST["adres"];
$_SESSION["postcode"] = $_POST["postcode"];
$_SESSION["plaats"]   = $_POST["plaats"];
?>


Is dit veilig? De POST data wordt dus direct in de sessie opgeslagen. Verder wordt die sessie-data weer op het scherm van de gebruiker getoont. De sessies worden opgeslagen in een database via een eigen sessie handler (overgenomen uit PHP in a Nutshell). Verder wordt de data aan het einde van de sessie definitief weggeschreven in een andere tabel in de database.

Ik weet dat er dingen zijn als addslashes() enzo, maar zijn die ook nodig als de magic quotes aan staan?

En verder is er ook een array die wordt opgeslagen in $_SESSION["data"]. Die array wordt dan aan het einde verspreid over meerdere rijen in een andere tabel opgeslagen. Moet ik dan nog handmatig dingen doen met serialize en unserialize?

Verder gebeurd het soms (heel vreemd overigens) dat de data niet correct in de sessie wordt opgenomen. Voorbeeld: ik heb op 1 pagina staan:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
session_start
();

//wat code

if( /*is er gepost? */ )
{
  
$_SESSION["naam"] = $_POST["naam"];
}

//nog meer code

echo($_SESSION["naam"]);
?>


Als ik dan de naam POST naar die pagina, dan gebeurt het soms dat de naam (of andere velden) niet correct in de sessie worden bewaard. Het wordt wél op het scherm getoond, maar na een refresh (en dan niet herposten) is de data verdwenen.

Hebben jullie tips om dit te verbeteren, veiliger te maken en eventueel de "vergeet"-bug te verhelpen?
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_43482709
waarom save je $_POST gegevens niet zo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
foreach ($_POST as $key => $value)
{
    
// er van uitgaand dat er geen arrays in je posts staan
    
$_SESSION['postdata'][$key] = $value;
}

en wil je dit weer echooon

foreach ($_SESSION['postdata'] as $key => $value)
{
    echo
$key . " = " . $value . "<br />";
}
?>


zo ongv doe ik het ook met mijn parser... is altijd handig als je formulieren moet checken!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_43482804
quote:
Op zondag 12 november 2006 18:14 schreef Chandler het volgende:
waarom save je $_POST gegevens niet zo
[ code verwijderd ]

zo ongv doe ik het ook met mijn parser... is altijd handig als je formulieren moet checken!
Omdat niet alle data die wordt gepost ook in de sessie bewaard moet worden.

Dan kan ik die natuurlijk middels een if() er weer uit filteren, maar ik vond het zo makkelijker.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_43482862
Correct, maar stel je gebruikt een template... dan kun je alle namen weer laten hergebruiken in de velden van je template... zoals ik zelf nu doe bij invul velden van formulieren waarbij ik de data check... als het fout is wil ik graag ook weer de teksten terug in de velden die de gebruiker heeft ingevuld...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_43483044
Dat doe ik zo:

1<input id="fnaam" name="naam" type="text" tabindex="1" value="<?=$_SESSION["naam"]?>" />


Als iemand dus het formulier opnieuw wil/moet invullen, dan staat de reeds ingevulde data er al weer.

En het formulier laten genereren aan de hand van de data die in een $_SESSION["postdata"] zit gaat niet zo eenvoudig denk ik, omdat het formulier bestaat uit text, radio, select en hidden dingen . Dan zou die informatie ook weer apart moeten worden opgeslagen.

Ik heb daarom niet voor een template gekozen, maar het formulier dus zoals hierboven gewoon hardcoded opgeslagen. M'n site heeft overigens ook niet zoveel formulieren.

Overigens is het wel een goede tip die ik ga onthouden.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_43489209
Weet iemand het volgende..

Als ik fopen gebruik op het volgende:

1fopen('http://htmllive.com/button_maker/generate.php?font=arial&font_size=10&align_text=center&text_color=FFFFFF&text=Click Me&style=1','r')


Dan kan hij deze link niet openen...

Ik gebruik het volgens deze code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$url_file = fopen($web_image,'r');

$newimage = "c:/temp/test.gif";
if($url_file){
   $newfile = fopen($newimage,'wb');
   while (!feof($url_file)) {
      $chunk = fread($url_file,1024);
      fwrite($newfile,$chunk);
   }
   fclose($newfile);
}
else{
   $error['no_file'] = "no file found on URL $web_image";
}
pi_43493326
Een url openen met fopen() kan alleen als allow-url-fopen aan staat. Als het je eigen server is kan je dat aan zetten, anders gebruik je een socket.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zondag 12 november 2006 @ 23:26:10 #179
12880 CraZaay
prettig gestoord
pi_43493860
quote:
Op zondag 12 november 2006 18:10 schreef papernote het volgende:

Is dit veilig? De POST data wordt dus direct in de sessie opgeslagen. Verder wordt die sessie-data weer op het scherm van de gebruiker getoont.
Dit alleen is al niet veilig en biedt ruimte voor bijvoorbeeld XSS (Cross Site Scripting), omdat je untrusted data zonder controle teruggeeft richting de browser.
pi_43498458
quote:
Op zondag 12 november 2006 23:26 schreef CraZaay het volgende:

[..]

Dit alleen is al niet veilig en biedt ruimte voor bijvoorbeeld XSS (Cross Site Scripting), omdat je untrusted data zonder controle teruggeeft richting de browser.
Je hebt gelijk, je zo zou ie zo je data die je van $_POST of $_GET moeten checken!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')