abonnement Unibet Coolblue Bitvavo
pi_29997266
quote:
Op vrijdag 26 augustus 2005 11:53 schreef BarteS het volgende:
Ik heb een query, $result genaamd
Ik heb een fetch, mysql_fetch_array($result, MYSQL_ASSOC)

Nu wil ik dat in de tussentijd $result leeggemaakt word, op een dusdanige manier dat de fetch niet gaat protesteren met de melding: "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource "
Je wilt dus de resultset leegmaken, en deze vervolgens ophalen?

Of als je gewoon wilt dat mysql_fetch_array (of beter: mysql_fetch_assoc, zoals in de laatste post van het vorige topic stond) geen foutmelding geeft, dan doe je dit:

1
2
3
<?php
$data
= @mysql_fetch_assoc($result);  //geen resource? geen foutmelding!
?>
pi_30024981
Ik wil graag een error handler maken voor mn mysql queries. Die error moet dan in een file worden geschreven, is er een mogelijkheid om uit te vinden op welke regel in het script de foute query staat?
pi_30025296
__LINE__ The current line number of the file.
__FILE__ The full path and filename of the file.
__FUNCTION__ The function name. (This was added in PHP 4.3.0.)
__CLASS__ The class name. (This was added in PHP 4.3.0.)
__METHOD__ The class method name. (This was added in PHP 5.0.0)

bron
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_30056095
Heeft iemand goede tutorials over het gebruik van PHP en InnoDB? Ik wil hier het een en ander mee gaan stoeien, maar ik kan niet echt een tutorial erover vinden.

Maw: Hoe voer ik een query uit, hoe geef ik start, commit of roleback mee etc.
pi_30056191
quote:
Op zaterdag 27 augustus 2005 12:26 schreef ikke_ook het volgende:
Ik wil graag een error handler maken voor mn mysql queries. Die error moet dan in een file worden geschreven, is er een mogelijkheid om uit te vinden op welke regel in het script de foute query staat?
Iets wat ik vaak bij error handlers gebruik: debug_backtrace()
pi_30058019
quote:
Op zondag 28 augustus 2005 15:59 schreef JeRa het volgende:

[..]

Iets wat ik vaak bij error handlers gebruik: debug_backtrace()
Dat is ook wel handig eigenlijk alhoewel dat van SR er erg veel op lijkt, bedankt beiden
  FOK!-Schrikkelbaas maandag 29 augustus 2005 @ 21:53:21 #8
1972 Swetsenegger
Egocentrische Narcist
pi_30078412
Waarom zet hij mijn cookie niet?

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
<?php
if ($_SERVER['REQUEST_METHOD']=='POST'){

$password=md5($_POST['password']);

$query='SELECT * FROM user WHERE user="'.$_POST['user'].'" && password="'.$password.'"';
$result=mysql_query($query);
$row=mysql_fetch_array($result);

if(
mysql_num_rows($result) != 0){
  if(
$row['activated']!='0'){

                
session_start();
                
$_SESSION['IP']=$_SERVER["REMOTE_ADDR"];
                
$_SESSION['name']=$row['name'];
                
$_SESSION['login']='1';
                
header("Location: ../".$_POST['location']."");
                                        

                                }else{
                                
$login="<span style=\"color:red;\">U kunt pas inloggen als uw account is geactiveerd</span>";
                                
setcookie('posted',$login);
                                
header("Location: ../".$_POST['location']."");
                                }
                                }else{
                                
$login="<span style=\"color:red;\">Ongeldige inlog</span>";
                                
setcookie('posted',$login);
                                
header("Location: ../".$_POST['location']."");
                                }
}
?>


Indien ik dus een verkeerde login opgeef, werkt de header wel, maar mijn cookie is leeg.
Wat doe ik fout?
  FOK!-Schrikkelbaas maandag 29 augustus 2005 @ 22:13:22 #9
1972 Swetsenegger
Egocentrische Narcist
pi_30079177
Even een testje gemaakt, cookie heeft nu WEL waarde, maar is deze dus na de header kwijt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if(mysql_num_rows($result) != 0){
  if(
$row['activated']!='0'){
                
session_start();
                
$_SESSION['IP']=$_SERVER["REMOTE_ADDR"];
                
$_SESSION['name']=$row['name'];
                
$_SESSION['login']='1';
                
header("Location: ../".$_POST['location']."");
                                }else{
                                
$login="<span style=\"color:red;\">U kunt pas inloggen als uw account is geactiveerd</span>";
                                
setcookie('posted',$login);
                                
header("Location: ../".$_POST['location']."");
                                }
                                }else{
                                
setcookie('posted','<span style="color:red;">Ongeldige inlog</span>');
                                echo
$_COOKIE['posted'];
                                die();
                                
//header("Location: ../".$_POST['location']);
                                
}
}
?>
  FOK!-Schrikkelbaas maandag 29 augustus 2005 @ 22:40:49 #10
1972 Swetsenegger
Egocentrische Narcist
pi_30080262
path dus

*zucht*

domdomdom... path dus

1
2
3
<?php
setcookie
('posted',$login,'','/');
?>
pi_30080375
quote:
Op maandag 29 augustus 2005 22:40 schreef Swetsenegger het volgende:
path dus

*zucht*

domdomdom... path dus
[ code verwijderd ]
Houd je er dan ook rekening mee dat expire (de derde parameter) een integer moet zijn?
  FOK!-Schrikkelbaas maandag 29 augustus 2005 @ 23:38:59 #12
1972 Swetsenegger
Egocentrische Narcist
pi_30082462
quote:
Op maandag 29 augustus 2005 22:43 schreef Light het volgende:

[..]

Houd je er dan ook rekening mee dat expire (de derde parameter) een integer moet zijn?
cookie wordt op de volgende pagina uitgelezen en direct getrashed. Daarom stel ik geen expiration in
pi_30083899
quote:
Op maandag 29 augustus 2005 23:38 schreef Swetsenegger het volgende:

[..]

cookie wordt op de volgende pagina uitgelezen en direct getrashed. Daarom stel ik geen expiration in
Dan kun je alsnog beter 0 dan een lege string gebruiken. Of met sessions gaan spelen natuurlijk.
  donderdag 1 september 2005 @ 00:50:08 #14
71919 wonderer
Hung like a My Little Pony
pi_30152785
Ik heb een streaming chat in PHP die prima werkt. Nu wil ik hem op een andere server installeren, maar hij werkt niet, en ik weet niet waar het aan ligt. Ik ben er inmiddels achter dat het de stream functie is die last geeft, en die werkt met ob_implicit_flush();

De werkende heeft PHP versie 4.3.11, de nietwerkende 4.3.10. Verder is de config nagenoeg gelijk, hoewel session.use_trans_sid (genoemd als probleem bij ob_implicit_flush) bij de niet-werkende aan staat en bij de werkende uit. Ik ben niet zo thuis met ini_set dingen, maar als ik die bovenaan de stream funcie zet, zou dat dan moeten werken?

Of ligt het heel ergens anders aan? Ik vind het erg raar. Hij buffert dus gewoon en output pas als de loop is afgelopen.

Iemand een idee?
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_30153055
Buffering is mijns inziens een hel in PHP. Ook al heb je ob_implicit_flush aanstaan, probeer toch eens telkens als je iets output de volgende twee functies aan te roepen:

1
2
3
4
<?php
ob_flush
();
flush();
?>
  donderdag 1 september 2005 @ 01:14:21 #16
71919 wonderer
Hung like a My Little Pony
pi_30153290
quote:
Op donderdag 1 september 2005 01:02 schreef JeRa het volgende:
Buffering is mijns inziens een hel in PHP. Ook al heb je ob_implicit_flush aanstaan, probeer toch eens telkens als je iets output de volgende twee functies aan te roepen:
[ code verwijderd ]
Geen verschil. De pagina ziet er schematisch zo uit:

print headers
print html
print de laatste 15 regels
activeer stream -> print regels als ze gezegd worden

Hij print dus niks, ook de eerste drie dingen niet, terwijl het script in principe al drie jaar prima werkt op twee verschillende servers.

Het lijkt wel of de server configuratie het gewoon niet toestaat, maar waar dat dan aan ligt, ik heb geen idee.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_30153616
quote:
Op donderdag 1 september 2005 00:50 schreef wonderer het volgende:

Ik ben niet zo thuis met ini_set dingen, maar als ik die bovenaan de stream funcie zet, zou dat dan moeten werken?
Voor zover ik hier zo kan nagaan doet een ini_set bij session.use_trans_sid niets. Klinkt op zich ook wel logisch, maar het betekent ook dat de enige manier om dit aan te passen is in de server-config. Je zou de suggestie in de php manual kunnen overnemen, dus session_start() weghalen.
  donderdag 1 september 2005 @ 01:47:56 #18
71919 wonderer
Hung like a My Little Pony
pi_30153867
session_start uit werkt niet. Dus het moet ergens anders aan liggen...
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_30158275
Het probleem kan bij Apache liggen maar ook bij PHP of in je script. Post anders eens wat relevante regels code?
pi_30167519
Ik wil een aantal gegevens ontsluiten naar mensen die onze site bezoeken. Ik heb daarvoor een tweetal tabellen aangemaakt met extra informatie van deze mensen. Ik wil daarvoor het standaard ID wat mysql aanmaakt in tabel users gebruiken waar ik het ID als foreign key wil gebruiken.
Dat is geen probleem, maar hoe kan ik het ID uitlezen op user.html.php???
Ik heb daar een query waar ik het ID aan mee wil geven zodat de juiste mensen de juiste gegevens te zien krijgen.
de boom verbindt in weer en wind de wereld met de wolken om met zijn takken onze groet naar boven te vertolken, waar zij, door ons zo teer bemind het hemelrijk bevolken
pi_30175057
Bedoel je mysql_insert_id?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 19:52:48 #22
1972 Swetsenegger
Egocentrische Narcist
pi_30176331
quote:
Op donderdag 1 september 2005 15:16 schreef reinierb het volgende:
Ik wil een aantal gegevens ontsluiten naar mensen die onze site bezoeken. Ik heb daarvoor een tweetal tabellen aangemaakt met extra informatie van deze mensen. Ik wil daarvoor het standaard ID wat mysql aanmaakt in tabel users gebruiken waar ik het ID als foreign key wil gebruiken.
Dat is geen probleem, maar hoe kan ik het ID uitlezen op user.html.php???
Ik heb daar een query waar ik het ID aan mee wil geven zodat de juiste mensen de juiste gegevens te zien krijgen.
<a href="user.html.php?id=<?=$gebruikersid;?>">

$query=" SELECT * FROM database WHERE id='".$_GET['id']";

[ Bericht 1% gewijzigd door Swetsenegger op 01-09-2005 20:08:40 ]
pi_30176400
Daar gebruiken we natuurlijk niet $_GET direct voor maar op deze manier:

1
2
3
4
<?php
$id
= intval($_GET['id']);
$query = 'SELECT * FROM `database` WHERE `id` = ' . $id;
?>

Bij de methode van Swetsenegger heb je kans op een SQL injection.
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 20:01:20 #24
1972 Swetsenegger
Egocentrische Narcist
pi_30176612
quote:
Op donderdag 1 september 2005 19:55 schreef JeRa het volgende:
Daar gebruiken we natuurlijk niet $_GET direct voor maar op deze manier:
[ code verwijderd ]

Bij de methode van Swetsenegger heb je kans op een SQL injection.
Ik heb het geprobeerd te injecten, en dat lukt echt niet zolang je je data in je query maar tussen ' zet.
En gewoon is_numeric volstaat natuurlijk ook

want laten we het nu eens proberen te injecten
we maken '""DROP TABLE tabel" van de id= in de url.
wat krijgen we dan?

$query="SELECT * FROM table WHERE id=''"DROP TABLE table";

geeft een prachtige sql fout. Maar goed, is_numeric of addslashes

en ow... natuurlijk nooit backticks gebruiken in je query

[ Bericht 9% gewijzigd door Swetsenegger op 01-09-2005 20:06:45 ]
pi_30177824
quote:
Op donderdag 1 september 2005 20:01 schreef Swetsenegger het volgende:
en ow... natuurlijk nooit backticks gebruiken in je query
Wat is er mis met backticks?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_30178200
quote:
Op donderdag 1 september 2005 20:01 schreef Swetsenegger het volgende:

[..]

Ik heb het geprobeerd te injecten, en dat lukt echt niet zolang je je data in je query maar tussen ' zet.
En gewoon is_numeric volstaat natuurlijk ook

want laten we het nu eens proberen te injecten
we maken '""DROP TABLE tabel" van de id= in de url.
wat krijgen we dan?

$query="SELECT * FROM table WHERE id=''"DROP TABLE table";

geeft een prachtige sql fout. Maar goed, is_numeric of addslashes

en ow... natuurlijk nooit backticks gebruiken in je query
SQL injection gaat niet alleen om het droppen van tables, het gaat ook om het vergaren van data die niet rechtmatig is. met een '\' OR 1 OR \'' kun je al veel doen. Bovendien, het is gewoon fout om zomaar user data in een query te stoppen, de 'maar het werkt toch'-beredenering is natuurlijk een van de meest foute een query behoort altijd te werken, ook als de user iets vreemds opgeeft (intval levert in het geval van ongeldige user input gewoon 0 op). Als er tekst van de user moet worden geinserted in een query, behoor je altijd mysqli_real_escape_string te gebruiken. Gebruik je tekst van de user in een query met LIKE, zorg er dan ook voor dat de procenten (%) en de underscores (_) ge-escaped worden want die hebben een speciale betekenis in queries. Dit soort basics zorgen ervoor dat je vanaf het begin een script maakt dat veilig is; zolang je er maar over nadenkt

Natúúrlijk nooit backticks gebruiken, want de verdomd goede reden om dat niet te doen is...?
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 21:10:36 #27
1972 Swetsenegger
Egocentrische Narcist
pi_30179249
quote:
Op donderdag 1 september 2005 20:46 schreef JeRa het volgende:

[..]

SQL injection gaat niet alleen om het droppen van tables, het gaat ook om het vergaren van data die niet rechtmatig is. met een '\' OR 1 OR \'' kun je al veel doen. Bovendien, het is gewoon fout om zomaar user data in een query te stoppen, de 'maar het werkt toch'-beredenering is natuurlijk een van de meest foute
En dan ook niet mijn redenering. Ik heb voldoende gelezen over injection om te weten dat mijn methode veilig is.
quote:
een query behoort altijd te werken, ook als de user iets vreemds opgeeft (intval levert in het geval van ongeldige user input gewoon 0 op).
Je hoort mij niet zeggen dat dat niet zo is. Als een user wat vreemds in de url propt krijgt hij gewoon netjes een melding dat hij dat niet moet doen.
quote:
Als er tekst van de user moet worden geinserted in een query, behoor je altijd mysqli_real_escape_string te gebruiken. Gebruik je tekst van de user in een query met LIKE, zorg er dan ook voor dat de procenten (%) en de underscores (_) ge-escaped worden want die hebben een speciale betekenis in queries.
Joh....
quote:
Dit soort basics zorgen ervoor dat je vanaf het begin een script maakt dat veilig is; zolang je er maar over nadenkt
En dat doe ik ook. Ik denk dat niemand met 100% zekerheid kan stellen dat zijn script veilig is, maar zolang ik numerieke gets check of ze ook daadwerkelijk numeriek zijn (lijkt me een stuk veiliger dan intval, welke een string gewoon interpreteert als integer en derhalve wel eens meer informatie uit je tabel kan trekken dan voor de user bedoeld was) en ASCII gets gewoon escape is er niets aan de hand. PLUS het feit dat ik mijn data altijd tussen quotes zet in een query, maakt injection redelijk lastig.

In dit geval gaf ik een antwoord op een vraag. Ik hoef toch geen veiligheid tutorial te schrijven bij dit soort vragen?
quote:
Natúúrlijk nooit backticks gebruiken, want de verdomd goede reden om dat niet te doen is...?
backticks zijn een workaround voor beroerde database modellen, waarbij je reserved names als veldnamen gebruikt. Dat moet je gewoon niet doen, en derhalve zijn backticks volledig overbodig. Wanneer je je aanleert geen backticks te gebruiken, zal je dus ook geen reserved words als veldnamen nemen, waardoor je beter hebt nagedacht over je databasde model
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 21:13:07 #28
1972 Swetsenegger
Egocentrische Narcist
pi_30179383
Overigens wel leuk in het licht van deze veiligheids dicussie, een mooi artikel op phpfreakz. Must read
  donderdag 1 september 2005 @ 21:15:58 #29
71919 wonderer
Hung like a My Little Pony
pi_30179522
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
<?php
function stream($kamer,$user)
{
ob_implicit_flush();
$result=runquery("SELECT * FROM $kamer ORDER BY ID DESC LIMIT 0,1");
$row=mysql_fetch_array($result);
$last_ID=$row[ID];

$res=runquery("SELECT * FROM chat_times WHERE chatroom='$kamer' AND username='$user'");
$ro=mysql_fetch_array($res);
$their_time=$ro[said_time];
$now=time();
$diff=$now-$their_time;

$iotime=600; #idle out time

while($diff &lt; $iotime && !connection_aborted()){
$result=runquery("SELECT * FROM $kamer ORDER BY ID DESC LIMIT 0,1");
$row=mysql_fetch_array($result);
$new_ID=$row[ID];
while(
$new_ID&gt;$last_ID){
  
$i=$last_ID+1;
  
$result2=runquery("SELECT * FROM $kamer WHERE ID='$i'");
  
$row2=mysql_fetch_array($result2);
  
$sentence=parse_sentence($row2[sentence],$row2[systemmess]);
  
$result3=runquery("SELECT * FROM chat_leden WHERE username='$row2[username]'");
  
$row3=mysql_fetch_array($result3);
  
$line=lineformat($row2[ID], $row[datum], $row3[access_level], $row2[chatname], $row2[kleur], $sentence, $row2[adminmess], $row2[username]);
  print (
$line);
  
$line="";
  
$last_ID++;
}
if(
$diff%25&lt;=1){
  
$idleline='<!---->';
  print (
$idleline);
}
sleep(1);
$rest=runquery("SELECT * FROM chat_times WHERE chatroom='$kamer' AND username='$user'");
$ro=mysql_fetch_array($rest);
$their_time=$ro[said_time];
$now=time();
$diff=$now-$their_time;
}
$line='<b style="color:#ffffff">Je hebt te lang niets gezegd. Klik <a href="display.php?kamer='.$kam.'">HIER</a> om de kamer te herladen</b><script>scroll();</script>';
print (
$line);
}
?>


Da's de functie. dingen als "parse sentence" en "lineformat" zorgen er gewoon voor dat de zin leesbaar wordt uitgespuugd.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_30179619
quote:
Op donderdag 1 september 2005 21:10 schreef Swetsenegger het volgende:

[..]

En dan ook niet mijn redenering. Ik heb voldoende gelezen over injection om te weten dat mijn methode veilig is.
Als je checks op je variabele doet, zie ik dat toch echt niet terug als je in een query direct een $_GET element gooit. Mijn opvatting is dat je mensen niet moet aanleren om $_POST of $_GET te vertrouwen, maar dus eerst de user input te valideren
quote:
[..]

backticks zijn een workaround voor beroerde database modellen, waarbij je reserved names als veldnamen gebruikt. Dat moet je gewoon niet doen, en derhalve zijn backticks volledig overbodig. Wanneer je je aanleert geen backticks te gebruiken, zal je dus ook geen reserved words als veldnamen nemen, waardoor je beter hebt nagedacht over je databasde model
Het database model heeft hier dus helemaal niéts mee te maken, hoogstens de naamgeving. En er zijn voorbeelden van database servers die namen als 'e-mail' toestaan maar dit in een query zien als een berekening (vanwege het minteken) en daarop stoppen. In dat geval zijn backticks benodigd (hoewel de meeste DB servers het nu goed doen).
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 21:26:41 #31
1972 Swetsenegger
Egocentrische Narcist
pi_30180019
quote:
Op donderdag 1 september 2005 21:17 schreef JeRa het volgende:

[..]

Als je checks op je variabele doet, zie ik dat toch echt niet terug als je in een query direct een $_GET element gooit. Mijn opvatting is dat je mensen niet moet aanleren om $_POST of $_GET te vertrouwen, maar dus eerst de user input te valideren
quote:
Op donderdag 1 september 2005 21:10 schreef Swetsenegger het volgende:
In dit geval gaf ik een antwoord op een vraag. Ik hoef toch geen veiligheid tutorial te schrijven bij dit soort vragen?
pi_30180454
quote:
Op donderdag 1 september 2005 21:26 schreef Swetsenegger het volgende:

[..]


[..]
Dat is net zoiets als een probleem in Windows oplossen door te zeggen dat je Windows opnieuw moet installeren. Mijn opvatting is dat als het op een andere, betere manier kan, je als scripter die er wat meer verstand van heeft de morele verplichting hebt die zo goed mogelijk te melden anders heb je over twee weken een nieuw topic, 'mijn site is gehacked!11!1'
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 21:49:02 #33
1972 Swetsenegger
Egocentrische Narcist
pi_30180902
quote:
Op donderdag 1 september 2005 21:36 schreef JeRa het volgende:

[..]

Dat is net zoiets als een probleem in Windows oplossen door te zeggen dat je Windows opnieuw moet installeren.
Bullshit. Porbeer de query welke ik hierboven gaf maar te injecten. Maak maar een voorbeeld scriptje, pleur 'm online en wij gaan met z'n allen proberen 'm te injecten. Safe genoeg voor huis tuin en keuken gebruik.
quote:
Mijn opvatting is dat als het op een andere, betere manier kan, je als scripter die er wat meer verstand van heeft de morele verplichting hebt die zo goed mogelijk te melden anders heb je over twee weken een nieuw topic, 'mijn site is gehacked!11!1'
Ja met die intval is dat risico zeer zeker aanwezig inderdaad. Tenslotte verkomt dat op geen enkele manier dat er data uit de database getrokken kan worden welke niet voor de persoon bedoelt is
pi_30181332
quote:
Op donderdag 1 september 2005 21:49 schreef Swetsenegger het volgende:

[..]

Bullshit. Porbeer de query welke ik hierboven gaf maar te injecten. Maak maar een voorbeeld scriptje, pleur 'm online en wij gaan met z'n allen proberen 'm te injecten. Safe genoeg voor huis tuin en keuken gebruik.
Je mist het punt. SQL injection hoeft niet altijd schadelijk te zijn, maar als jij nou een voorbeeld geeft waarbij injection mogelijk is en een gebruiker gaat dezelfde methode ook voor andere (mogeiljk gevaarlijkere) queries gebruiken, dan zijn de poppen aan het dansen. Beter gebruik je één uniforme methode om dit soort dingen af te handelen, dan de ene keer het wel te doen en de andere keer niet onder het mom van 'het werkt toch';
quote:
Ja met die intval is dat risico zeer zeker aanwezig inderdaad. Tenslotte verkomt dat op geen enkele manier dat er data uit de database getrokken kan worden welke niet voor de persoon bedoelt is
In dit geval was de intval() bedoeld om er zeker van te zijn dat het een numeriek type is wat in de query gezet wordt, op het moment dat je geen intval gebruikt en je staat toe dat er tekst in een gevaarlijke query komt gaat het wellicht nog erger fout. Ik ben het helemaal met je eens dat de user input gevalideerd moet worden, maar validatie is véél makkelijker als je weet met wat voor type variabele je te maken hebt - bovendien is bij een slechte validatie de kans op injection dan verkleind aangezien je zeker weet dat de user input in het type staat dat in de query mág staan.
pi_30181555
Ter info, de gewraakte query:

1
2
3
<?php
$query
= 'SELECT * FROM `database` WHERE `id` = ' . $id;
?>
quote:
Op donderdag 1 september 2005 20:01 schreef Swetsenegger het volgende:
Ik heb het geprobeerd te injecten, en dat lukt echt niet zolang je je data in je query maar tussen ' zet.
En gewoon is_numeric volstaat natuurlijk ook

want laten we het nu eens proberen te injecten
we maken '""DROP TABLE tabel" van de id= in de url.
wat krijgen we dan?
Dan krijg je inderdaad onzin.
Maar, als we in de id= waarde nou een ' verstoppen kun je daarachter leuke sql opnemen.
Een voorbeeldje, stel dat er nog een tabel `auth` is met plaintext usernames en passwords (of md5 hashes, daar kan een hacker ook wel wat mee). De volgende injectie moet dan toch best wat leuks kunnen laten zien (mits mysql versie 4 of hoger gebruikt)

1
2
3
4
5
6
7
<?php
# stel $_GET[...] = "0 UNION SELECT * FROM `auth`"
$id = $_GET[...];
$query = 'SELECT * FROM `database` WHERE `id` = ' . $id;

# $query is nu: "SELECT * FROM `database` WHERE `id` = 0 UNION SELECT * FROM `auth`"
?>


Wauw! Geldige query die mysql zonder problemen uitvoert. Fijn, we krijgen nu als resultaat naast het bedoelde antwoord ook 1 of meerdere regels uit de auth tabel.
Eventueel in plaats van een * kolomnamen hernoemen zodat ze meegenomen worden naar de juiste uitvoer van de pagina, maar daar is wel wat op te vinden.

edit: kleine toevoeging: de oplossing om de $_GET variabele door intval heen te halen zal deze methode van sql injection zeker tegenhouden, er staat namelijk alles behalve alleen een integer in.
Ieder verhaal eindigt gelukkig, als je er maar vroeg genoeg mee stopt. - Annie M.G. Schmidt -
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 22:10:58 #36
1972 Swetsenegger
Egocentrische Narcist
pi_30181645
quote:
Op donderdag 1 september 2005 22:01 schreef JeRa het volgende:
In dit geval was de intval() bedoeld om er zeker van te zijn dat het een numeriek type is wat in de query gezet wordt, op het moment dat je geen intval gebruikt en je staat toe dat er tekst in een gevaarlijke query komt gaat het wellicht nog erger fout. Ik ben het helemaal met je eens dat de user input gevalideerd moet worden, maar validatie is véél makkelijker als je weet met wat voor type variabele je te maken hebt - bovendien is bij een slechte validatie de kans op injection dan verkleind aangezien je zeker weet dat de user input in het type staat dat in de query mág staan.
practise what you preach
quote:
Mijn opvatting is dat als het op een andere, betere manier kan, je als scripter die er wat meer verstand van heeft de morele verplichting hebt die zo goed mogelijk te melden
Kortom, je antwoord was net zo onveilig en onvolledig dan dat van mij. Sterker nog, jij bracht het nog als 'veilig'. En in MIJN opinie is geen veiligheid nog altijd beter dan schijn veiligheid.

Bottomline, voor elke scripter, lees die link welke ik een paar posts hierboven hebt geplaatst.
pi_30181825
quote:
Op donderdag 1 september 2005 22:10 schreef Swetsenegger het volgende:

Kortom, je antwoord was net zo onveilig en onvolledig dan dat van mij. Sterker nog, jij bracht het nog als 'veilig'. En in MIJN opinie is geen veiligheid nog altijd beter dan schijn veiligheid.
Waar bracht ik het als veilig? ik zei alleen dat het SQL injection voorkwam, en dat is veiliger, maar niet veilig. In de praktijk blijkt niets veilig, daar gaat geen artikel iets aan veranderen
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 22:18:26 #38
1972 Swetsenegger
Egocentrische Narcist
pi_30181893
quote:
Op donderdag 1 september 2005 22:08 schreef Vloris het volgende:
Ter info, de gewraakte query:
[ code verwijderd ]
Nee daar ga je de fout al in
DIT was de gewraakte query

1
2
3
<?php
$query
="SELECT * FROM table WHERE id='".$_GET['id']."'";
?>
quote:
Dan krijg je inderdaad onzin.
Maar, als we in de id= waarde nou een ' verstoppen kun je daarachter leuke sql opnemen.
Een voorbeeldje, stel dat er nog een tabel `auth` is met plaintext usernames en passwords (of md5 hashes, daar kan een hacker ook wel wat mee). De volgende injectie moet dan toch best wat leuks kunnen laten zien (mits mysql versie 4 of hoger gebruikt)
Nee hoor, dan krijgen we dit

1
2
3
<?php
$query
="SELECT * FROM table WHERE id='"0 UNION SELECT * FROM `auth`"'";
?>

Dat doet niets behalve een query fout genereren.
quote:
Wauw! Geldige query die mysql zonder problemen uitvoert. Fijn, we krijgen nu als resultaat naast het bedoelde antwoord ook 1 of meerdere regels uit de auth tabel.
Eventueel in plaats van een * kolomnamen hernoemen zodat ze meegenomen worden naar de juiste uitvoer van de pagina, maar daar is wel wat op te vinden.
En dan ga je er al vanuit dat de hacker allerlei kennis heeft over je database model.

Ja de intval zal inderdaad in dit geval een fout geven, maar als de gebruiker idtje 5 in 6 veranderd trekt hij gewoon de info uit de tabel.

Het antwoord van Jera was dus niets vollediger dan dat van mij, terwijl hij dat wel suggereerde.
pi_30182096
quote:
Op donderdag 1 september 2005 22:18 schreef Swetsenegger het volgende:

[..]

Het antwoord van JeRa was dus niets vollediger dan dat van mij, terwijl hij dat wel suggereerde.
Je bericht is een kwartier naderhand gewijzigd, dat zag ik ook niet. Maar 'id' is vast een numeriek type, en die ga je vergelijken met een string? bovendien voorkomt intval de invoeging van tekst in een query, want jouw methode voorkomt ook niet dat iemand andere info uit de database haalt. Ik zei alleen dat dat met SQL injection wellicht mogelijk was, maar in de oorspronkelijke query moet daar natuurlijk validatie aan vooraf gaan
pi_30182580
Goed, even snel.
Swetsenegger: dan pak ik die query met quotes en zorg ik ervoor dat $_GET['id'] begint met 0' UNION ... etc.
Misschien moet er nog een \ voor de ', dat zou kunnen, maar die is er prima in te futselen. En het probleem dat er ineens nog een ' achteraan komt is eenvoudig op te lossen door mijn injectie te laten eindigen op een nutteloze WHERE 'foo' = 'foo
(misschien ook weer \' dat weet ik zo niet precies)
Ieder verhaal eindigt gelukkig, als je er maar vroeg genoeg mee stopt. - Annie M.G. Schmidt -
pi_30182940
quote:
Op donderdag 1 september 2005 22:18 schreef Swetsenegger het volgende:

Nee hoor, dan krijgen we dit
[ code verwijderd ]
Waar komen die dubbele quotes opeens vandaan? Die zijn er niet, en dan krijg je het probleem dat Vloris hierboven opmerkt en waarvoor ik mij schaam dat ik dat niet eerder zag nu kun je wel die string gaan escapen, maar het is een numeriek type waardoor het allemaal zo gigantisch overdone is. In een query behoor je kolommen te vergelijken met waardes in hetzelfde type, dus INTs met integers en CHARs met strings. Zodra je dit door elkaar gaat halen kun je er vanuit gaan dat het een keer mis gaat (zoals nu).
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 22:56:32 #42
1972 Swetsenegger
Egocentrische Narcist
pi_30183445
quote:
Op donderdag 1 september 2005 22:23 schreef JeRa het volgende:

[..]

Je bericht is een kwartier naderhand gewijzigd, dat zag ik ook niet.
Het enige wat ik er aan toegevoegd heb is de ; De rest is echt niet gewijzigs
quote:
Maar 'id' is vast een numeriek type, en die ga je vergelijken met een string?
quote:
bovendien voorkomt intval de invoeging van tekst in een query,
is_numeric ook.
quote:
want jouw methode voorkomt ook niet dat iemand andere info uit de database haalt. Ik zei alleen dat dat met SQL injection wellicht mogelijk was, maar in de oorspronkelijke query moet daar natuurlijk validatie aan vooraf gaan
wanneer je je data tussen ' ' zet is injection niet zo eenvoudig als het lijkt.
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 22:58:22 #43
1972 Swetsenegger
Egocentrische Narcist
pi_30183526
quote:
Op donderdag 1 september 2005 22:43 schreef JeRa het volgende:

[..]

Waar komen die dubbele quotes opeens vandaan?
Die staan er al vanaf de eerste post van mij hierover
quote:
Op donderdag 1 september 2005 19:52 schreef Swetsenegger het volgende:

$query=" SELECT * FROM database WHERE id='".$_GET['id']";
Hij staat niet tussen php tags, dus het is lastig te zien
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 22:59:25 #44
1972 Swetsenegger
Egocentrische Narcist
pi_30183578
quote:
Op donderdag 1 september 2005 22:34 schreef Vloris het volgende:
Goed, even snel.
Swetsenegger: dan pak ik die query met quotes en zorg ik ervoor dat $_GET['id'] begint met 0' UNION ... etc.
Misschien moet er nog een \ voor de ', dat zou kunnen, maar die is er prima in te futselen. En het probleem dat er ineens nog een ' achteraan komt is eenvoudig op te lossen door mijn injectie te laten eindigen op een nutteloze WHERE 'foo' = 'foo
(misschien ook weer \' dat weet ik zo niet precies)
Be my guest, zet een voorbeeld scriptje in elkaar en probeer het.

Het enige wat je krijgt is sql errors. En dan hebben we het nog niet eens over het feit dat je blijkbaar verregaande kennis hebt van het database model.
pi_30183631
quote:
Op donderdag 1 september 2005 22:56 schreef Swetsenegger het volgende:


is_numeric ook.
is_numeric controleert of het in het goede type staat. intval() zet het automatisch om naar het goede type. alleen zie ik is_numeric niet echt staan bij die query, en het zorgt er niet voor dat de waarde ook automatisch is wat je wilde. Met intval is het zelfs mogelijk om '3 schapen' in te voeren en daar het goede getal uit te krijgen.

En 'id' is meestal een kolom van het type UNSIGNED INT, en een integer moet je vergelijken met een integer en niét met een string (wat je in die query nu dus in feite doet).
quote:
[..]

wanneer je je data tussen ' ' zet is injection niet zo eenvoudig als het lijkt.
Een \' om de quotes te omzeilen is meer dan genoeg.
pi_30183633
quote:
Op donderdag 1 september 2005 22:56 schreef Swetsenegger het volgende:
wanneer je je data tussen ' ' zet is injection niet zo eenvoudig als het lijkt.
Kijk, dat bedoelde ik in m'n vorige post ook, misschien is dit dan ten overvloede, maar je kunt best ' tekentjes injecten. Dat probeerde ik eigenlijk aan te tonen. Zonder voorzorgsmaatregelen (als b.v. magic_quotes ergens enigszins aan staat) is het dan prima te injecten.
Ieder verhaal eindigt gelukkig, als je er maar vroeg genoeg mee stopt. - Annie M.G. Schmidt -
pi_30183687
quote:
Op donderdag 1 september 2005 22:58 schreef Swetsenegger het volgende:

[..]

Die staan er al vanaf de eerste post van mij hierover
[..]

Hij staat niet tussen php tags, dus het is lastig te zien
Dit schreef jij:
$query="SELECT * FROM table WHERE id='"0 UNION SELECT * FROM `auth`"'";
Die code die jij beschrijft zorgt echt niet voor de aanhalingstekens, hoogstens voor de enkele quotes ('). Het resultaat dat geproduceerd wordt is dus zonder de aanhalingstekens, maar met de enkele quotes. Als de user iets doet in de trant van:

' OR 1 OR '

Dan heb je dat dus al omzeild.
pi_30183848
quote:
Op donderdag 1 september 2005 22:59 schreef Swetsenegger het volgende:

[..]

Het enige wat je krijgt is sql errors. En dan hebben we het nog niet eens over het feit dat je blijkbaar verregaande kennis hebt van het database model.
Jij neemt kennelijk aan dat magic_quotes_gpc op On staat. Dit is echter niet altijd het geval. Als die niet aan staat is het ongelofelijk makkelijk om met quotes te spelen en géén error te laten optreden. En die verregaande kennis over het model, je hoeft alleen wat namen te kennen; en security through obscurity werkt natuurlijk niet he in principe zou een site zijn databaseopzet best bekend mogen maken als de site goed in elkaar steekt
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 23:07:54 #49
1972 Swetsenegger
Egocentrische Narcist
pi_30183880
quote:
Op donderdag 1 september 2005 23:00 schreef JeRa het volgende:

[..]

is_numeric controleert of het in het goede type staat. intval() zet het automatisch om naar het goede type.
Als ik iets niet wil in mijn query is het ongecontroleerd 'automatische' scriptjes
quote:
alleen zie ik is_numeric niet echt staan bij die query,
Nee, en bij jouw query zie ik ook geen controle op user input staan.
JIJ begon dit lul verhaal met te suggereren dat je query zoveel veiliger voor injection was dan de mijn door je intval toevoeging. Door het ontbreken van quotes echter, is de boel eerder onveiliger. MIjn reactie gaat er dus ook over dat je zogezegd de 'morele' verplichting voelt verbeteringen aan te brengen welke geen verbeteringen zijn. Had je het gewoon gebracht van 'denk om veiligheid' had ik je volmondig gelijk gegeven, maar op een pedant toontje een verbetering siggereren welke dat niet is kan ik slecht tegen.
quote:
en het zorgt er niet voor dat de waarde ook automatisch is wat je wilde.
Nee, het zorgt dat het TYPE automatisch is wat ik wilde. Of de waarde klopt heb ik geen enkel idee van.
quote:
Met intval is het zelfs mogelijk om '3 schapen' in te voeren en daar het goede getal uit te krijgen.
Dat geeft '0'. -edit- nopes, 3. Nu maar hopen dat je 3 wilde hebben
quote:
En 'id' is meestal een kolom van het type UNSIGNED INT, en een integer moet je vergelijken met een integer en niét met een string (wat je in die query nu dus in feite doet).
$_GET['id'] is geen string, maar een variable, met in dit geval een integer en geen string.
quote:
Een \' om de quotes te omzeilen is meer dan genoeg.
Nogmaals, be my guest. Maak een voorbeeld scriptje en ga lekker de hele avond zitten injecten. Ik zie je voorbeeld injection graag tegemoed.

[ Bericht 5% gewijzigd door Swetsenegger op 01-09-2005 23:14:41 ]
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 23:10:00 #50
1972 Swetsenegger
Egocentrische Narcist
pi_30183962
quote:
Op donderdag 1 september 2005 23:02 schreef JeRa het volgende:

[..]

Dit schreef jij:
$query="SELECT * FROM table WHERE id='"0 UNION SELECT * FROM `auth`"'";
Die code die jij beschrijft zorgt echt niet voor de aanhalingstekens, hoogstens voor de enkele quotes ('). Het resultaat dat geproduceerd wordt is dus zonder de aanhalingstekens, maar met de enkele quotes. Als de user iets doet in de trant van:

' OR 1 OR '

Dan heb je dat dus al omzeild.


1
2
3
<?php
$query
="SELECT * FROM table WHERE iets='".$variabele."'";
?>

Vul de injection van Vloris maar in bij $variable... en wat zien we dan? tadaaaaa quotes.

1
2
3
<?php
$query
="SELECT * FROM table WHERE iets='"SELECT * FROM `database` WHERE `id` = 0 UNION SELECT * FROM `auth`"'";
?>
pi_30184032
Pak nou eens dit:

' OR 1 OR ''='

Wat krijg je dan? Juist:

SELECT * FROM table WHERE iets='' OR 1 OR ''=''
pi_30184078
quote:
Op donderdag 1 september 2005 23:07 schreef Swetsenegger het volgende:
$_GET['id'] is geen string, maar een variable, met in dit geval een integer en geen string.
Snap nou eens dat als je $_GET['id'] tussen quotes zet in een query, je er dan een string van maakt je query gaat dan vervolgens de kolom 'id' vergelijken met een string.
pi_30184141
quote:
Op donderdag 1 september 2005 23:07 schreef Swetsenegger het volgende:
Door het ontbreken van quotes echter, is de boel eerder onveiliger.
Door de intval() toevoeging weet je zeker dat de waarde een getal is en zijn quotes niet meer nodig! Quotes zijn niet heilig! bovendien kun je in de rest van je script werken met een waarde die je ook in je query hebt meegegeven
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 23:17:25 #54
1972 Swetsenegger
Egocentrische Narcist
pi_30184244
quote:
Op donderdag 1 september 2005 23:11 schreef JeRa het volgende:
Pak nou eens dit:

' OR 1 OR ''='

Wat krijg je dan? Juist:

SELECT * FROM table WHERE iets='' OR 1 OR ''=''
1
2
3
<?php
$query
="SELECT * FROM table WHERE iets='' OR 1 OR ''=''";
?>

Prachtige sql fout

-edit- hmmmmmzzzz...
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 23:17:45 #55
1972 Swetsenegger
Egocentrische Narcist
pi_30184258
quote:
Op donderdag 1 september 2005 23:13 schreef JeRa het volgende:

[..]

Snap nou eens dat als je $_GET['id'] tussen quotes zet in een query, je er dan een string van maakt je query gaat dan vervolgens de kolom 'id' vergelijken met een string.
en je voorkomt injection
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 23:18:20 #56
1972 Swetsenegger
Egocentrische Narcist
pi_30184279
quote:
Op donderdag 1 september 2005 23:14 schreef JeRa het volgende:

[..]

Door de intval() toevoeging weet je zeker dat de waarde een getal is en zijn quotes niet meer nodig! Quotes zijn niet heilig! bovendien kun je in de rest van je script werken met een waarde die je ook in je query hebt meegegeven
Waarom kan ik dat niet in de rest van mijn script? $_GET['id'] veranderd niet opeens magisch
pi_30184344
quote:
Op donderdag 1 september 2005 23:17 schreef Swetsenegger het volgende:

[..]
[ code verwijderd ]

Prachtige sql fout
Heb je 'm uitgeprobeerd? Hier werkt die query gewoon hoor...
pi_30184398
Oke, we hebben:

1
2
3
<?php
$query
="SELECT * FROM table WHERE iets='".$_GET['id']."'";
?>


We hebben een url: http://example.com/foobar(...)WHERE+'foo'+%3D+'foo

(%60 is ` en %3D is = en + is een spatie, zie b.v. hier voor een encode / decode scriptje )
Wat krijgen we vervolgens in $query?

1
2
3
<?php
$query
== "SELECT * FROM table WHERE iets='0' UNION SELECT * FROM `auth` WHERE 'foo' = 'foo'";
?>


De enige maar die hier aan hangt is het eventueel aan staan van de magic_quotes settings waarbij php bij alle $_GET variabelen ' vervangt door \'
In dat geval werkt het niet helemaal zo.

Blijft inderdaad overeind dat je een heel eind moet gokken naar de database structuur, dat is waar. Maar vaak hebben dat soort tabellen hele logische namen.
Ieder verhaal eindigt gelukkig, als je er maar vroeg genoeg mee stopt. - Annie M.G. Schmidt -
pi_30184415
quote:
Op donderdag 1 september 2005 23:17 schreef Swetsenegger het volgende:

[..]

en je voorkomt injection
Doe dat dan op een andere manier, je voorkomt zo alleen injection als je magic_quotes_gpc op On hebt staan maar op jouw methode moet er vanalles gecast gaan worden door MySQL alvorens die kan gaan checken. Dit is gewoon überfout:

SELECT * FROM table WHERE 1 = '1'

Maar dat is feitelijk wat je nu doet
pi_30184462
quote:
Op donderdag 1 september 2005 23:22 schreef JeRa het volgende:
Dit is gewoon überfout:

SELECT * FROM table WHERE 1 = '1'

Maar dat is feitelijk wat je nu doet
Een 'echte' sql server zou het niet eens goedkeuren als je een numerieke kolom vergelijkt met een string... Maar mysql reken ik dan even niet tot de echten.
Ieder verhaal eindigt gelukkig, als je er maar vroeg genoeg mee stopt. - Annie M.G. Schmidt -
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 23:25:17 #61
1972 Swetsenegger
Egocentrische Narcist
pi_30184520
quote:
Op donderdag 1 september 2005 23:20 schreef JeRa het volgende:

[..]

Heb je 'm uitgeprobeerd? Hier werkt die query gewoon hoor...
Zag je mijn edit?
Ja hij werkt.

Maar goed, zowel jouw als mijn antwoord was onvolledig.
Dus hierbij voor de volledigheid voor de originele vraagsteller....

ALTIJD je user input controleren.
pi_30184533
quote:
Op donderdag 1 september 2005 23:23 schreef Vloris het volgende:

[..]

Een 'echte' sql server zou het niet eens goedkeuren als je een numerieke kolom vergelijkt met een string... Maar mysql reken ik dan even niet tot de echten.
Daarom is het eigenlijk ook volstrekt hilarisch dat PHP & MySQL de meest gebruikte combinatie is...ze laten allebei enorm veel fouten toe m.b.t. types waardoor een hoop mensen het verkeerd gaan doen
  FOK!-Schrikkelbaas donderdag 1 september 2005 @ 23:27:15 #63
1972 Swetsenegger
Egocentrische Narcist
pi_30184609
quote:
Op donderdag 1 september 2005 23:22 schreef JeRa het volgende:

[..]

Doe dat dan op een andere manier, je voorkomt zo alleen injection als je magic_quotes_gpc op On hebt staan maar op jouw methode moet er vanalles gecast gaan worden door MySQL alvorens die kan gaan checken. Dit is gewoon überfout:

SELECT * FROM table WHERE 1 = '1'

Maar dat is feitelijk wat je nu doet
Een beetje server heeft magic_quotes_gpc gewoon aan staan.
En leeg eens uit waarom dat uberfout zou zijn?

'gewoon' is wel erg magere uitleg.
pi_30184651
quote:
Op donderdag 1 september 2005 23:25 schreef JeRa het volgende:
Daarom is het eigenlijk ook volstrekt hilarisch dat PHP & MySQL de meest gebruikte combinatie is...ze laten allebei enorm veel fouten toe m.b.t. types waardoor een hoop mensen het verkeerd gaan doen
Dat ben ik helemaal met je eens. En wat mij betreft laten we het hierbij, het was absoluut niet mijn bedoeling jou bewering helemaal onderuit te halen, ik wou alleen maar aantonen hoe het eventueel misbruikt zou kunnen worden.

Ondertussen zijn er ook al een aantal goeie oplossingen gevonden.

Ik ga weer verder met postgres (en de PEAR::DB package, die snapt tenminste transactions) icm php.
Ieder verhaal eindigt gelukkig, als je er maar vroeg genoeg mee stopt. - Annie M.G. Schmidt -
pi_30184683
quote:
Op donderdag 1 september 2005 23:25 schreef Swetsenegger het volgende:

[..]

Zag je mijn edit?
Aan mijn post te zien, niet
quote:
Ja hij werkt.

Maar goed, zowel jouw als mijn antwoord was onvolledig.
Dus hierbij voor de volledigheid voor de originele vraagsteller....

ALTIJD je user input controleren.
En voor de volledigheid van mijn kant geef ik ook even aan wat ik bedoelde met het type dat je kunt gebruiken in de rest van je script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//User input ophalen en omzetten naar het gewenste type
$id = intval($_GET['id']);
$naam = trim($_GET['naam']);

//Validatie
if ($id &lt;= 0) {
    ...
fout!
}
if (
$naam == '') {
    ...
fout!
}

//Afhandeling in script kan nu gedaan worden met $id en $naam, die zowel gevalideerd zijn als in het goede type zijn gezet, en pas in de query ge-escaped worden (indien nodig)
$query = 'SELECT * FROM `blaat` WHERE `id` = ' . $id . ' AND `naam` = \'' . mysql_real_escape_string($naam) . '\'';
?>


edit: dit gaat er trouwens vanuit dat magic_quotes_gpc uit staat, wat ik doe is controleren of magic_quotes_gpc aan staat en indien dit zo is alle request variabelen strippen van hun slashes

[ Bericht 3% gewijzigd door JeRa op 01-09-2005 23:42:53 ]
pi_30184816
quote:
Op donderdag 1 september 2005 23:27 schreef Swetsenegger het volgende:

[..]

Een beetje server heeft magic_quotes_gpc gewoon aan staan.
En leeg eens uit waarom dat uberfout zou zijn?

'gewoon' is wel erg magere uitleg.
Een beetje server heeft dat inderdaad, maar een hoop servers hebben dat niet. In mijn scripts heb ik altijd helemaal vooraan een stukje code die alle input omzet naarmate magic_quotes_gpc aan of uit staat.

Dat is überfout omdat 1 een getal is en '1' een string is. Als je een kolom van type UNSIGNED INT hebt, en je deze met een string gaat vergelijken, zou een goede DB een foutmelding produceren zoals Vloris al zei. Dat MySQL dat toestaat is tot daaraan toe, maar het hoort niet en MySQL moet zo eerst de string naar een INT casten voordat het er iets mee kan.
pi_30185615
Ik wil graag alles wat met een a begint uit een mysql db kunnen selecteren maar ik heb geeb flauw idee wat voor myswl qeury ik moet maken dan. Iemand een idee (kan het ook niet vinden op mysql.com)
pi_30186156
Even een voorbeeld; als je een tabel hebt met een id (unieke waarde) en een kolom waar je op wilt selecteren, dan kun je zoiets doen:

SELECT `id` FROM `table` WHERE `kolom` LIKE 'a%'

Het procentteken is in een LIKE-clause een wildcard, het resultaat van deze query komt dus overeen met alle IDs van de records waarvan die kolom met een a begint (en wat daarna komt maakt niet uit).
pi_30186305
Ach wat ben ik dom!
Dat had ik zelf kunnen bedenken!
  vrijdag 2 september 2005 @ 02:24:13 #70
71919 wonderer
Hung like a My Little Pony
pi_30189385
Ik heb duidelijk op het verkeerde moment mijn probleem gepost
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_30191996
quote:
Op donderdag 1 september 2005 23:27 schreef Swetsenegger het volgende:

[..]

Een beetje server heeft magic_quotes_gpc gewoon aan staan.
En leeg eens uit waarom dat uberfout zou zijn?

'gewoon' is wel erg magere uitleg.
O wat haat ik die "feature" van php. Het slaat echt helemaal nergens op om alle binnenkomende get/post/cookie data te voorzien van slashes omdat het misschien in een sql statement gebruikt gaat worden. Je hebt er alleen maar last van als je iets anders met de data wil doen; een preview van een post, validatie van een string op lengte, of gewoon elk willekeurige actie die niets met mysql te maken heeft.

Overigens staat in php.ini-recommended magic_quotes_gpc = off.
Een beetje server heeft magic_quotes_gpc dus uit staan.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_30192842
quote:
Op vrijdag 2 september 2005 07:34 schreef SuperRembo het volgende:
Overigens staat in php.ini-recommended magic_quotes_gpc = off.
Een beetje server heeft magic_quotes_gpc dus uit staan.
Ze geven twee redenen in php.ini voor de keuze om magic_quotes_gpc standaard op Off te zetten. De ene is performance (PHP hoeft dan niet langer alle request variabelen te voorzien van slashes) en de tweede is het feit dat je dan zogenaamd alles direct in database kunt stoppen, alleen moet je volgens PHP dan wel addslashes() gebruiken die opmerking vind ik dan weer wat vreemd.

Niet alleen omdat je dan dus niét zomaar alles in een table kunt stoppen, maar ook omdat addslashes() geen rekening houdt met de character set van de database, wat nog wel eens het geval kan zijn bij de latere versies van bv. MySQL. De eigenlijke functies die bedoeld zijn om data te escapen die in een query moet, zijn: mysql_real_escape_string(), mysqli_real_escape_string() en pg_escape_string(). Deze functies worden boven addslashes() geprefereerd, al is het alleen maar omdat er misschien verschil komt in de manier van escapen of omdat er een character set gewijzigd wordt.
pi_30252388
Overigens is het handig om al je input te zuiveren van dit magic_quotes gedoe (met behulp van strip_slashes), en dan zélf bewust, bijvoorbeeld in een Database Access Layer, netjes te escapen / te validaten .

[edit]Idd in het geval van de onmogelijkheid tot het gebruik van het aanpassen van de config, of dat nu in de file of via .htaccess is

[ Bericht 21% gewijzigd door idontlikepizza op 04-09-2005 13:07:39 (Geen reden tot een nieuwe post :)) ]
pi_30255103
quote:
Op zondag 4 september 2005 10:27 schreef idontlikepizza het volgende:
Overigens is het handig om al je input te zuiveren van dit magic_quotes gedoe (met behulp van strip_slashes), en dan zélf bewust, bijvoorbeeld in een Database Access Layer, netjes te escapen / te validaten .
Als je zelf de server config niet kan wijzigen, dan kan je 't uitschakelen met een regeltje in een .htaccess file:

1php_flag magic_quotes_gpc off
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zondag 4 september 2005 @ 15:00:06 #75
71610 Black-Hole
Deep in my soul
pi_30258667
Via phpmyadmin heb ik 1 van mijn databases geexporteerd. Nu is het geexporteerde bestand 7,51mb groot terwijl de database in phpmyadmin 10,7mb groot is.

Het geexporteerde bestand is niet gecomprimeerd maar toch zit er een verschil in

Klopt dat of die ik iets fout? De geexporteerde database is die van mijn forum (Invision PowerBoard), misschien geef ik zo nog net iets meer info.

Edit: screendump van hoe ik het gedaan heb:

pi_30259457
Het ene opslagformaat kan toch ook gewoon efficiënter zijn? . En als je het wil testen importeer je de zut toch?
  zondag 4 september 2005 @ 15:35:26 #77
71610 Black-Hole
Deep in my soul
pi_30259569
quote:
Op zondag 4 september 2005 15:30 schreef idontlikepizza het volgende:
Het ene opslagformaat kan toch ook gewoon efficiënter zijn? . En als je het wil testen importeer je de zut toch?
Zou goed kunnen hoor, ik doe het ook maar voor het eerst

Kan je aan de bijgevoegde pic zien of ik het goed gedaan heb of moet ik hem dan echt weer importeren?
pi_30259620
Volgens mij wel. Maar het importeren in een test-database kost niet echt veel moeite, lijkt me? Zeker met die grootte..
  zondag 4 september 2005 @ 20:42:30 #79
71610 Black-Hole
Deep in my soul
pi_30269017
quote:
Op zondag 4 september 2005 15:38 schreef idontlikepizza het volgende:
Volgens mij wel. Maar het importeren in een test-database kost niet echt veel moeite, lijkt me? Zeker met die grootte..
Het is allemaal gelukt, wel mat wat knip- en plakwerk omdat de file groter was dan 1,5mb.
pi_30275410
Ik weet niet hoe je je databasegrootte hebt bepaald, maar als je de tabellen gaat exporteren is dit altijd zonder de indices. Deze worden namelijk weer aangemaakt zodra je de boel importeert
pi_30317400
Ja collega´s en mede fokkers.
Even geen zin om nieuw topic te openen.

Maar ik ben ok zoek naar een mooie portal voor mijn website.
Ik heb op dit moment Mambo maar veel menesen vertellen me dat die te zwaar is en niet helemaal ideaal.
Kan iemand me helpen met wat tips?

Tnx
pi_30323223
Waarom wil je eigenlijk van mambo af? Heb je er problemen mee of draait je machine niet lekker?
quote:
Op dinsdag 6 september 2005 13:06 schreef Godlike02 het volgende:
Ik heb op dit moment Mambo maar veel menesen vertellen me dat die te zwaar is en niet helemaal ideaal.
is een beetje ala "ik wil een andere auto want volgens mijn buurman is mijn huidige niet goed".
pi_30323733
quote:
Op dinsdag 6 september 2005 16:01 schreef devzero het volgende:
Waarom wil je eigenlijk van mambo af? Heb je er problemen mee of draait je machine niet lekker?
[..]

is een beetje ala "ik wil een andere auto want volgens mijn buurman is mijn huidige niet goed".
Draaid prima.
Maar ik wil verder kijken.

Ik vind de interface niet helemala ideaal.
Dus orientatie
pi_30325022
Dat hoort imho in een apart topic, aangezien jouw vraag helemaal niet over PHP of MySQL gaat en geen zin om een nieuw topic te openen, het enige wat je extra moet doen is een titel verzinnen
  FOK!-Schrikkelbaas dinsdag 6 september 2005 @ 21:49:00 #85
1972 Swetsenegger
Egocentrische Narcist
pi_30334717
Heren, ik heb een preg_match nodig, welke controleert of een invoer uit minimaal 9 en maximaal 10 decimale getallen bestaat. MAAR als het 9 decimale getallen betreft moet de tiende de letter x zijn....

preg_match("/^[0-9]{9,10}$/i"

Ok, maar hoe plak ik die x erin?

-edit-
preg_match("/^[0-9]{10}|^[0-9]{9}x{1}$/i"

[ Bericht 10% gewijzigd door Swetsenegger op 06-09-2005 22:06:54 ]
pi_30335215
/^[0-9]{9,9}[0-9x]$/i
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas dinsdag 6 september 2005 @ 22:09:25 #87
1972 Swetsenegger
Egocentrische Narcist
pi_30335494
quote:
Op dinsdag 6 september 2005 22:02 schreef SuperRembo het volgende:
/^[0-9]{9,9}[0-9x]$/i

Waarom zijn jouw reg_exps altijd mooier dan die van mij


pi_30336167
Regexps zijn stoer
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas dinsdag 6 september 2005 @ 22:28:06 #89
1972 Swetsenegger
Egocentrische Narcist
pi_30336194
quote:
Op dinsdag 6 september 2005 22:27 schreef SuperRembo het volgende:
Regexps zijn stoer
Dat kan ik alleen maar beamen (en verekte handig)
pi_30340950
quote:
Op dinsdag 6 september 2005 22:27 schreef SuperRembo het volgende:
Regexps zijn stoer
Absoluut helemaal mee eens
pi_30357357
Helaas wordt preg_replace vaak te overijverig gebruikt. Zoiets als

$tekst = preg_replace('/blaat/', 'taalb', $tekst);

is iets wat veel mensen gebruiken om een stuk tekst te vervangen, terwijl

$tekst = str_replace('blaat', 'taalb', $tekst);

toch vele malen sneller is
  FOK!-Schrikkelbaas woensdag 7 september 2005 @ 16:53:07 #92
1972 Swetsenegger
Egocentrische Narcist
pi_30357878
quote:
Op woensdag 7 september 2005 16:37 schreef JeRa het volgende:
Helaas wordt preg_replace vaak te overijverig gebruikt. Zoiets als

$tekst = preg_replace('/blaat/', 'taalb', $tekst);

is iets wat veel mensen gebruiken om een stuk tekst te vervangen, terwijl

$tekst = str_replace('blaat', 'taalb', $tekst);

toch vele malen sneller is
Ja, dat zie ik ook vaak. of een check op e-mail adres met alleen @. Gebruik dan strstr...
  woensdag 7 september 2005 @ 17:57:58 #93
52200 ViPeRII
It's a good day to die
pi_30360034
quote:
Op dinsdag 6 september 2005 22:27 schreef SuperRembo het volgende:
Regexps zijn stoer
Regexps zuigen als je niet goed weet hoe ze werken :S
Iemand nog eens een duidelijke "nederlandse" handleiding hiervoor?
-- ViPeRII --
pi_30360693
quote:
Op woensdag 7 september 2005 17:57 schreef ViPeRII het volgende:

[..]

Regexps zuigen als je niet goed weet hoe ze werken :S
Iemand nog eens een duidelijke "nederlandse" handleiding hiervoor?
Ik heb een powerpointpresentatie ooit eens via dit topic gekregen. Daar staat het best helder in (ik heb het nog niet zoveel gebruikt, dus ik weet niet of het diep genoeg gaat voor wat lastigere regexps )

Hier staat ie
  FOK!-Schrikkelbaas woensdag 7 september 2005 @ 19:48:16 #95
1972 Swetsenegger
Egocentrische Narcist
pi_30363445
Nieuw topic ivm de veiligheids issues tegenwoordig.
Op een aantal mail scripts, ontving ik plotseling wat vreemde mailtjes, met diverse mailadressen en de termen cc en bcc in de body en daarnaast veel van dit:

1
2
3
4
5
6
7
8
9
This is a multi-part message in MIME format. 

--===============1077165900== 
Content-Type: text/plain; charset=\"us-ascii\" 
MIME-Version: 1.0 
Content-Transfer-Encoding: 7bit 

utnzpw 
--===============1077165900==-- 


Na wat gezocht te hebben, zag ik in het commentaar bij de mail() functie op php.net dat meer mensen daar recent last van hebben. Mail injection is hot.

Ik kwam ook het volgende artikel tegen: http://securephp.damonkohler.com/index.php/Email_Injection

Nu controlleer ik de userinput voor mail met een preg_match, en die valideert niet de injections welke op boven genoemde url als voorbeeld worden genoemd. Als ik het goed interpreteer, is alleen userinput welke in de headers terecht komen (mailto en from dus) gevoelig voor dit soort injection, en de body niet.

Is dit correct? In de body variabelen kunnen ze MIME types, boundry en content type injecteren wat ze willen, en zal toch niet resulteren in mails naar ontvangers welke je niet wil?
pi_30363686
quote:
Op dinsdag 6 september 2005 13:06 schreef Godlike02 het volgende:
Ja collega´s en mede fokkers.
Even geen zin om nieuw topic te openen.

Maar ik ben ok zoek naar een mooie portal voor mijn website.
Ik heb op dit moment Mambo maar veel menesen vertellen me dat die te zwaar is en niet helemaal ideaal.
Kan iemand me helpen met wat tips?

Tnx
e107.org
If I could offer you only one tip for the future, sunscreen would be it.
The long term benefits of sunscreen have been proved by scientists.
Deviantart
pi_30366721
quote:
Op woensdag 7 september 2005 19:48 schreef Swetsenegger het volgende:
Is dit correct? In de body variabelen kunnen ze MIME types, boundry en content type injecteren wat ze willen, en zal toch niet resulteren in mails naar ontvangers welke je niet wil?
Voor zover ik weet wel, maar het wordt wellicht een probleem als ze de boundary makkelijk kunnen raden. Als ze die kunnen raden en in hun message zetten heb je het probleem dat ze vervolgens wél headers kunnen opgeven.

Ook moet je er dus op letten dat dingen als naam, e-mailadres, etc die in de mailheaders komen géén ongeldige tekens mogen bevatten zoals een enter, want dan kun je ook extra headers opgeven.
  FOK!-Schrikkelbaas woensdag 7 september 2005 @ 21:26:53 #98
1972 Swetsenegger
Egocentrische Narcist
pi_30367458
quote:
Op woensdag 7 september 2005 21:11 schreef JeRa het volgende:

[..]

Voor zover ik weet wel, maar het wordt wellicht een probleem als ze de boundary makkelijk kunnen raden. Als ze die kunnen raden en in hun message zetten heb je het probleem dat ze vervolgens wél headers kunnen opgeven.
Ik ben niet zo into mails.
Ik doe zelf niets met boundry., voorzover ik weet. Het is toch niet zo dat elke mail een boundry heeft?
quote:
Ook moet je er dus op letten dat dingen als naam, e-mailadres, etc die in de mailheaders komen géén ongeldige tekens mogen bevatten zoals een enter, want dan kun je ook extra headers opgeven.
Nee met preg_match check ik gewoon voor een geldig e-mail adres en daar horen enters niet in
  woensdag 7 september 2005 @ 22:02:04 #99
71919 wonderer
Hung like a My Little Pony
pi_30369131
Ik wil graag backupbestanden van 200000 records terugzetten... hoe kan ik dat het beste doen? Uploaden via SQL gaat niet...
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_30372934
quote:
Op woensdag 7 september 2005 21:26 schreef Swetsenegger het volgende:

[..]

Ik ben niet zo into mails.
Hoeft niet, zolang je maar op de headers blijft letten
quote:
Ik doe zelf niets met boundry., voorzover ik weet. Het is toch niet zo dat elke mail een boundry heeft?
[..]
Boundaries worden gebruikt om een multipart e-mail (HTML-email bijvoorbeeld) op te delen in verschillende segmenten met verschillende headers (mime-type etc). Aangezien alleen een unieke boundary aan kan geven dat er een nieuw stuk (mét nieuwe headers) begint, moet je ervoor zorgen dat die ook echt uniek zal zijn. Waarschijnlijk heeft het verder geen gevolgen voor mailinjectie, aangezien de headers daar niet meer van toepassing zijn op de ontvanger.
quote:
Nee met preg_match check ik gewoon voor een geldig e-mail adres en daar horen enters niet in
Dan zit je wrs al gebakken mailinjecties zijn op slechte input controles gebaseerd, zoals een naam of e-mailadres dat klakkeloos in de headers wordt gegooid van de te versturen e-mail.
pi_30373004
quote:
Op woensdag 7 september 2005 22:02 schreef wonderer het volgende:
Ik wil graag backupbestanden van 200000 records terugzetten... hoe kan ik dat het beste doen? Uploaden via SQL gaat niet...
Je doet dit waarschijnlijk via phpMyAdmin? Die heeft de beperking van HTTP file uploads, enkele MB's dus. Wat je kunt doen:

  • andere tools gebruiken die geen limiet hebben en direct contact kunnen maken met de MySQL server
  • je backupbestanden opsplitsen zodat de afzonderlijke delen kleiner zijn dan de maximale toegestane limiet om te uploaden
  • pi_30383124
    ik heb even een klein vraagje.. heb het niet eens nodig of zo, maar kan het hier niet ff zo proberen, maar wil het toch even weten..

    stel ik heb een pagina met daarin een include.. kan ik dat dan zo doen dat de URL variabele meegestuurd wordt? dus bijv.

    1
    2
    3
    <?php
    include "header.php?pagina=homepage";
    ?>


    zodat header.php een actie uitvoert die afhangt van de get variabele pagina...

    ben benieuwd..
    Amsterdam, stad van hash en coke,
    Waar de vrouwen zich vrouwelijk gedragen..
    En de mannen ook..
    pi_30383180
    <?php
    $pagina = 'homepage';
    include 'header.php';
    ?>

    Of

    <?php
    include "http://www.mijndomein.nl/header.php?pagina=homepage";
    ?>

    volledige url dus. Lijkt me alleen niet verstandig vanuit performance point of view.
    pi_30385530
    De eerste oplossing van Roonaan is dus de beste ik weet het natuurlijk niet zeker maar ik gok dat je een index.php hebt die zo wordt aangeroepen:

    index.php?pagina=blaat

    En dat je nu header.php wilt includen die dezelfde informatie doorkrijgt. Door deze te includen gaat PHP in feite de broncode van header.php in je index.php zetten, waardoor header.php dus exact dezelfde variabelen als index.php kan gaan benaderen. In feite doe je in header.php dus hetzelfde als hetgeen je in index.php doet om die variabele te achterhalen
    pi_30390471
    offtopic (beetje) misschien is het eens leuk om een PHP regex archive op te zetten?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_30393491
    quote:
    Op donderdag 8 september 2005 16:31 schreef Chandler het volgende:
    offtopic (beetje) misschien is het eens leuk om een PHP regex archive op te zetten?
    Die bestaan al, maar het zou wel eens leuk zijn om een archive te zien die zich ook aan de standaarden houdt (probeer maar eens een eenduidige regular expression te vinden die een e-mailadres checkt).
    pi_30414717
    Hoi,

    Ik last laatst een artikel over SQL injection. Dus ik ff mijn site daarop gecheckt.

    Een voorbeeld van SQL Injection uit het artikel:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    mysql_connect
    ("localhost", "root", "");
    mysql_select_db("hack");

    $query = mysql_query('SELECT bla FROM users ORDER BY bla '.$_GET['ORDER']);

    while(
    $row = mysql_fetch_array($query)) {
        echo
    $row[bla];
    }
    ?>

    Als men daarna http://localhost/hack.php?ORDER=desc; DROP TABLE users zou uitvoeren, zou de tabel users verwijderd worden.
    Mijns inziens is dit bullshit. Als ik het in de browser plak, krijg ik het volgende als ik op enter druk:
    http://localhost/hack.php?ORDER=desc;%20DROP%20TABLE%20users

    Is hiermee aangetoond dat SQL-injection niet werkt?

    Alvast bedankt voor de tips,

    m@x
    -= Rogue lvl 66 =- -= Warrior lvl 70 =- -= Warlock lvl 70 =-
    ----------============= Nordrassil =============----------
      FOK!-Schrikkelbaas vrijdag 9 september 2005 @ 14:05:27 #108
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30420974
    quote:
    Op vrijdag 9 september 2005 11:05 schreef MaxPowered het volgende:
    Hoi,

    Ik last laatst een artikel over SQL injection. Dus ik ff mijn site daarop gecheckt.

    Een voorbeeld van SQL Injection uit het artikel:
    [ code verwijderd ]

    Als men daarna http://localhost/hack.php?ORDER=desc; DROP TABLE users zou uitvoeren, zou de tabel users verwijderd worden.
    Mijns inziens is dit bullshit. Als ik het in de browser plak, krijg ik het volgende als ik op enter druk:
    http://localhost/hack.php?ORDER=desc;%20DROP%20TABLE%20users

    Is hiermee aangetoond dat SQL-injection niet werkt?

    Alvast bedankt voor de tips,

    m@x
    Nee, daarmee is aangetoont dat je browser aan url encoding doet
    Een pagina terug staat er een discussie over sql injection. Tussen quotes heb je minder kans op injection, maar is nog wel degelijk aanzweig.

    De uitkomst van de discussie was dat je sowieso ALTIJD userinput moet controleren.
    pi_30429201
    ...en dat je in een query altijd het goede type moet laten vertegenwoordigen, om zo geen onnodige risico's of trage queries te introduceren

    edit: overigens, ik geloof dat het al een tijdje zo is dat je in PHP geen meerdere queries in één keer kunt uitvoeren door puntkomma-gescheiden queries achter elkaar te zetten. Die injectie zou dus wrs niet eens willen werken
      FOK!-Schrikkelbaas vrijdag 9 september 2005 @ 20:27:59 #110
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30432966
    Ik heb 3 tabellen, hieronder de relevante velden

    table ad
    1
    2
    ad_id 
    id_user 


    table user
    1
    2
    user_id 
    name 


    table rate
    1
    2
    3
    rate_id 
    user 
    rating


    Ad heeft bij elke record een corresponderende user in ID-user
    User spreekt voor zich
    rate KAN een aantal records met de corresponderende user hebben.

    Ik wil uit ad het totaal aantal reords van user
    uit user de naam
    uit rate de gemiddelde rate van desbetreffende user (indien die bestaat)

    1
    2
    3
    4
    5
    6
    7
    <?php
    SELECT COUNT
    (ad.ad_id)  AS number, user.name, AVG(SUM(rate.rating))  
    FROM ad
    INNER JOIN user ON
    (id_user = user_id)  
    RIGHT JOIN rate ON (id_user = user)  
    WHERE ad.id_user=1
    ?>


    Dit geeft 'invalid use of group function' terug.

    Mijn sql is niet zo sterk. Dus het zal ongetwijfeld aan mij liggen Iemand die wat licht op de zaak kan schijnen?

    [ Bericht 2% gewijzigd door Swetsenegger op 09-09-2005 20:56:40 ]
    pi_30436271
    Er moet nog een GROUP BY user.name bij en volgens mij moet het een LEFT JOIN zijn in plaats van RIGHT JOIN.


    1
    2
    3
    4
    5
    6
    SELECT user.name, COUNT(ad.ad_id)  AS number, AVG(SUM(rate.rating))  
    FROM user
    INNER JOIN ad ON ad.id_user = user.user_id
    LEFT JOIN rate ON rate.user = user.user_id  
    WHERE user.user_id = 1 
    GROUP BY user.name
    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 9 september 2005 @ 22:03:57 #112
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30436342
    quote:
    Op vrijdag 9 september 2005 22:02 schreef SuperRembo het volgende:
    Er moet nog een GROUP BY user.name bij en volgens mij moet het een LEFT JOIN zijn in plaats van RIGHT JOIN.
    [ code verwijderd ]
    Dat had ik inderdaad ook al geprobeerd.

    'invalid use of group function'

    als ik de AVG eruit haalt werkt dit prima overigens. Naam: 3 records.
    In de SQL documentatie las ik dat AVG(SUM(field)) niet kan en dat je dan een subquery in de FROM statement moet gebruiken:

    SELECT AVG(sum_field) FROM (SELECT SUM(field) AS sum_field FROM table GROUP BY field)

    maar wanneer ik dit overneem krijg ik een sql error 'nearby SELECT SUM(fiels....' etc.

    In de documentatie staat geen sql versie vermeld, dus ik neem aan dat dit gewoon op SQL 4.0.24 werkt

    [ Bericht 18% gewijzigd door Swetsenegger op 09-09-2005 22:09:47 ]
    pi_30436849
    Subquery's zijn dacht ik mogelijk vanaf MySQL 4.1.
    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 9 september 2005 @ 22:20:08 #114
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30436967
    Een tweakert had de oplossing

    1
    2
    3
    4
    5
    6
    SELECT user.name, COUNT(ad.ad_id)  AS number, AVG(rate.rating) AS average
                            FROM user
                            INNER JOIN ad ON ad.id_user = user.user_id
                            LEFT JOIN rate ON rate.user = user.user_id
                            WHERE user.user_id =".$_GET['id']."
                            GROUP BY user.name"
      FOK!-Schrikkelbaas vrijdag 9 september 2005 @ 22:27:46 #115
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30437325
    Een nadeel, als er geen rating is, laat hij de rest ook niet zien
    pi_30437851
    waarom heb je zo'n komische naamgeving in je tabellen?
    wrom niet gewoon:
    [users]
    user_id, user_name, user_whatever
    [ads]
    ad_id, ad_user
    [ratings]
    rate_id, rate_value, rate_user

    Heb je vervolgens nergens meer problemen met ambigue fields of de noodzaak om de table.field constructie te gebruiken..
    pi_30438233
    Ja da's handig zeg. Nu hoef je niet meer soms "table." voor een veldnaam te zetten, nee je zet er altijd "table_" voor
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30438345
    quote:
    Op vrijdag 9 september 2005 22:50 schreef SuperRembo het volgende:
    Ja da's handig zeg. Nu hoef je niet meer soms "table." voor een veldnaam te zetten, nee je zet er altijd "table_" voor
    Dat maakt het wel minder bug gevoelig. Een luie programmeur is een slechte programmeur.
    pi_30438715
    quote:
    Op vrijdag 9 september 2005 22:50 schreef SuperRembo het volgende:
    Ja da's handig zeg. Nu hoef je niet meer soms "table." voor een veldnaam te zetten, nee je zet er altijd "table_" voor
    Ik snap deze opmerking niet wat zeg je nu eigenlijk?
      FOK!-Schrikkelbaas vrijdag 9 september 2005 @ 23:02:03 #120
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30438716
    Ik gebruik nergens ambigue fields zoals je ziet.

    En waarom niet zoals roonaan zegt... tja geen idee. Ik vind naamgeving irritant, zou alles het liefst een nummer geven

    Overigens werkt de query wel, maar je moet natuurlijk in je life table wel dezelfde veldnamen gebruiken als in je test tabel
    pi_30438758
    Ik ben niet lui hoor. Je moet weten wat je doet. Zelfs als je al je veldnamen in je database uniek maakt, dan is dat nog geen garantie dat je veldnamen in een query uniek zijn.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30438821
    quote:
    Op vrijdag 9 september 2005 23:02 schreef Swetsenegger het volgende:
    Ik gebruik nergens ambigue fields zoals je ziet.

    En waarom niet zoals roonaan zegt... tja geen idee. Ik vind naamgeving irritant, zou alles het liefst een nummer geven

    Overigens werkt de query wel, maar je moet natuurlijk in je life table wel dezelfde veldnamen gebruiken als in je test tabel
    Dat lijkt me sowieso een vereiste
    pi_30438930
    quote:
    Op vrijdag 9 september 2005 23:01 schreef JeRa het volgende:

    [..]

    Ik snap deze opmerking niet wat zeg je nu eigenlijk?
    Roonaan stelt voor om voor elk veld in de tabel "users" de string "user_" te plakken. Dan zijn de veldnamen uniek, en hoek je (meestal) geen tabelnamen te vermelden voor de veldnamen in je query.

    In plaats van

    1SELECT foo.name, bar.name FROM foo INNER JOIN bar ON bar.id = foo.id

    krijg je dan

    1SELECT foo_name, bar_name FROM foo INNER JOIN bar ON bar_id = foo_id

    Ik zie 't voordeel niet. Ik zie wel nadelen.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30439455
    Iemand een suggestie welke NL boek ik kan kopen om MySQL meer onder de knie te krijgen ?

    Ik heb nu 2 PHP/MYSQL boeken liggen, maar die gaan niet verder dan SELECT .. WHERE .. LIKE
    ne okuyon, bokmu var?
      FOK!-Schrikkelbaas vrijdag 9 september 2005 @ 23:29:26 #125
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30439802
    quote:
    Op vrijdag 9 september 2005 23:04 schreef Light het volgende:

    [..]

    Dat lijkt me sowieso een vereiste
    Ja dat is best handig
    pi_30439985
    quote:
    Op vrijdag 9 september 2005 23:02 schreef Swetsenegger het volgende:


    En waarom niet zoals roonaan zegt... tja geen idee. Ik vind naamgeving irritant, zou alles het liefst een nummer geven
    Heb je wel eens code van jezelf van zegmaar 3 jaar terug eens bekeken ? Ik doe het zelf ook hoor, maar achteraf pas ik alle variabelen weer aan zodat het voor iedereen leesbaar is. En voor mij over 3 jaar.
      FOK!-Schrikkelbaas vrijdag 9 september 2005 @ 23:40:35 #127
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30440193
    quote:
    Op vrijdag 9 september 2005 23:34 schreef gelly het volgende:

    [..]

    Heb je wel eens code van jezelf van zegmaar 3 jaar terug eens bekeken ? Ik doe het zelf ook hoor, maar achteraf pas ik alle variabelen weer aan zodat het voor iedereen leesbaar is. En voor mij over 3 jaar.
    Nee, want 3 jaar geleden schreef ik nog geen code (tenminste, geen PHP)
    Maar ik kan het nog verassend goed lezen en het zit best aardig in elkaar.

    Mbt veiligheid heb ik hier en daar een steekje laten vallen af en toe. Ondertussen alweer recht getrokken.
    pi_30440640
    quote:
    Op vrijdag 9 september 2005 23:07 schreef SuperRembo het volgende:

    [..]

    Roonaan stelt voor om voor elk veld in de tabel "users" de string "user_" te plakken. Dan zijn de veldnamen uniek, en hoek je (meestal) geen tabelnamen te vermelden voor de veldnamen in je query.

    In plaats van
    [ code verwijderd ]

    krijg je dan
    [ code verwijderd ]

    Ik zie 't voordeel niet. Ik zie wel nadelen.
    Ik schrijf
    1SELECT foo.name, bar.name FROM foo INNER JOIN bar ON bar.id = foo.id

    het liefst als
    1SELECT foo.name, bar.name FROM foo INNER JOIN bar USING(id)


    Da's net weer iets korter
    pi_30440927
    Weet iemand toevallig hoe een bestandslijst kan worden verdeeld over meerdere pagina's? Ik gebruik voor mijn Fok! uploader nu een bestandslijst die gewoon in zijn geheel op één pagina staat. Maar de bestandslijst is onderhand zo lang geworden dat ik een pagina van bijna één meg moet downloaden om de lijst in te kunnen zien. Iemand een oplossing?
    pi_30440992
    quote:
    Op zaterdag 10 september 2005 00:04 schreef The_Terminator het volgende:
    Weet iemand toevallig hoe een bestandslijst kan worden verdeeld over meerdere pagina's? Ik gebruik voor mijn Fok! uploader nu een bestandslijst die gewoon in zijn geheel op één pagina staat. Maar de bestandslijst is onderhand zo lang geworden dat ik een pagina van bijna één meg moet downloaden om de lijst in te kunnen zien. Iemand een oplossing?
    Gaat het over SQL? Dan kun je simpelweg een LIMIT toepassen
    pi_30441083
    quote:
    Op zaterdag 10 september 2005 00:06 schreef JeRa het volgende:

    [..]

    Gaat het over SQL? Dan kun je simpelweg een LIMIT toepassen
    Nee, het is gewoon een loop. Alle bestanden worden uit de upload dir opgevraagd en de bestandsnamen worden op de pagina weergegeven.
    pi_30441293
    quote:
    Op zaterdag 10 september 2005 00:10 schreef The_Terminator het volgende:

    [..]

    Nee, het is gewoon een loop. Alle bestanden worden uit de upload dir opgevraagd en de bestandsnamen worden op de pagina weergegeven.
    Dan moet je alle bestandsnamen opvragen en in een array stoppen. Je moet weten hoeveel bestandsnamen je op één pagina wilt hebben. Het aantal pagina's dat je dan hebt is:

    $aantalPaginas = ceil($totaalAantalBestanden / $bestandenPerPagina);

    Vervolgens vraag je een paginanummer op dat loopt van 0...n - 1 met n = aantal pagina's. De items die je uit je array moet opvragen zijn dan:

    $eersteItem = $paginaNummer * $bestandenPerPagina;
    $laatsteItem = min($eersteItem + $bestandenPerPagina, $totaalAantalBestanden);

    en die werk je dan met een loopje af de pagina's wil je natuurlijk laten zien als 1...n, maar dat is puur cosmetisch (je telt 1 op bij de interne waarde).

    [ Bericht 2% gewijzigd door JeRa op 10-09-2005 00:23:31 ]
      zaterdag 10 september 2005 @ 01:31:38 #133
    71919 wonderer
    Hung like a My Little Pony
    pi_30442856
    Ik probeer met
    1
    2
    3
    4
    5
    <?php
    echo ini_get("session.use_trans_id");
    echo
    ini_get("output_buffering");
    echo
    ini_get("output_handler");
    ?>


    uit te vinden waarom ie niet flusht, maar het laat niks zien? Doe ik wat fout? Is er een instelling die dit soort dingen "verbiedt"? Klopt het dan ook dat ik ini_set niet kan gebruiken?

    Ik snap er geen fuck meer van.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30442913
    quote:
    Op zaterdag 10 september 2005 00:18 schreef JeRa het volgende:

    [..]

    Dan moet je alle bestandsnamen opvragen en in een array stoppen. Je moet weten hoeveel bestandsnamen je op één pagina wilt hebben. Het aantal pagina's dat je dan hebt is:

    $aantalPaginas = ceil($totaalAantalBestanden / $bestandenPerPagina);

    Vervolgens vraag je een paginanummer op dat loopt van 0...n - 1 met n = aantal pagina's. De items die je uit je array moet opvragen zijn dan:

    $eersteItem = $paginaNummer * $bestandenPerPagina;
    $laatsteItem = min($eersteItem + $bestandenPerPagina, $totaalAantalBestanden);

    en die werk je dan met een loopje af de pagina's wil je natuurlijk laten zien als 1...n, maar dat is puur cosmetisch (je telt 1 op bij de interne waarde).
    Dankje, daar kan ik wel wat mee
      zaterdag 10 september 2005 @ 01:42:49 #135
    71919 wonderer
    Hung like a My Little Pony
    pi_30443063
    Notice: ob_flush(): failed to flush buffer. No buffer to flush. in /home/fluidint/public_html/chats/chatfunctions.php on line 153

    Die "foutmelding" krijg ik trouwens. Hoe kan er nou geen buffer zijn??
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30446066
    omdat je geen ob_start() gebruikt hebt?
    pi_30446128
    quote:
    Op vrijdag 9 september 2005 23:02 schreef SuperRembo het volgende:
    Ik ben niet lui hoor. Je moet weten wat je doet. Zelfs als je al je veldnamen in je database uniek maakt, dan is dat nog geen garantie dat je veldnamen in een query uniek zijn.
    tuurlijk niet, maar dat maakt de kans erop stukken kleiner. Daarnaast is het in je resultset met mysql_fetch_assoc ook iets practischer, zeker als je extract zou gebruiken., of stomweg var_export bij het bekijken van je query resultaten.

    Mijn belangrijkste pre is het feit dat je in ieder geval een houvast hebt qua naamgeving, en dat je er over nagedacht hebt hoe je je velden noemt, in plaats van maar wat te kiezen.

    -r-
      zaterdag 10 september 2005 @ 20:33:19 #138
    71919 wonderer
    Hung like a My Little Pony
    pi_30463587
    quote:
    Op zaterdag 10 september 2005 10:13 schreef Roönaän het volgende:
    omdat je geen ob_start() gebruikt hebt?
    Dat moet ook niet... hij moet niet bufferen, hij moet alles meteen uitspugen, maar dat werkt op de een of andere manier niet. Ik probeer uit te vinden waarom niet, maar dat schiet niet op. Ik WEET dat hij buffert, want als de loop tot een eind komt, spuugt ie wel alles uit. Alleen als ik dus flush doe, zegt ie dat er geen buffer is...
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30464663
    quote:
    Op zaterdag 10 september 2005 10:17 schreef Roönaän het volgende:

    [..]

    tuurlijk niet, maar dat maakt de kans erop stukken kleiner. Daarnaast is het in je resultset met mysql_fetch_assoc ook iets practischer, zeker als je extract zou gebruiken., of stomweg var_export bij het bekijken van je query resultaten.

    Mijn belangrijkste pre is het feit dat je in ieder geval een houvast hebt qua naamgeving, en dat je er over nagedacht hebt hoe je je velden noemt, in plaats van maar wat te kiezen.

    -r-
    Je moet er zeker nadenken. Ik ben ook wel een voorstander van tabelnamen in meervoudsvorm. En engels natuurlijk.
    Maar ik hou ook van duidelijke namen, dus categories en niet cats of iets degelijks. Wat doe je dan met de veldnamen? Ga je daar ook overal category_ voor zetten, of kort je het daar wel af tot cat_?
    Nee, ik vind het nog steeds niks die table prefix.
    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 10 september 2005 @ 21:07:29 #140
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30464775
    Offtopic, weet iemand een site met mooie iconen gratis en voor niets uiteraard?
    pi_30472461
    quote:
    Op zaterdag 10 september 2005 21:07 schreef Swetsenegger het volgende:
    Offtopic, weet iemand een site met mooie iconen gratis en voor niets uiteraard?
    Hier moet je vast & zeker wel wat mee kunnen
    zo niet, dan zul je toch wat specifieker moeten zijn vrees ik
    pi_30476625
    quote:
    Op zaterdag 10 september 2005 20:33 schreef wonderer het volgende:

    [..]

    Dat moet ook niet... hij moet niet bufferen, hij moet alles meteen uitspugen, maar dat werkt op de een of andere manier niet. Ik probeer uit te vinden waarom niet, maar dat schiet niet op. Ik WEET dat hij buffert, want als de loop tot een eind komt, spuugt ie wel alles uit. Alleen als ik dus flush doe, zegt ie dat er geen buffer is...
    Dan moet je ook geen ob_flush() gebruiken, maar gewoon flush().

    Je moet er rekening mee houden dat IE niet zoveel nuttigs doet als er eerst niet iets van 256 characters uitgegooid zijn.
    pi_30479219
    Output buffering is een hel in PHP, zoals ik al twee keer eerder heb gezegd in deze reeks ik geloof dat de enige methode om het een beetje te laten werken is ob_flush() en flush() direct na elkaar aan te roepen als je wilt flushen, maar ook dat geeft geen garanties.
    pi_30479770
    ob_flush() moet je alleen gebruiken als je ob_start() hebt gebruikt. Aangezien hij dat niet heeft gedaan zou een enkele flush() voldoende moeten zijn. Echter zijn er voor sommige browsers wel wat haken en ogen, being dat er minimaal aantal bytes verzonden moet zijn voordat de browser begint met renderen.
    pi_30481865
    Ben ik het mee eens, ware het niet dat ik het vreemd blijf vinden wat er in de PHP manual staat:
    quote:
    flush() has no effect on the buffering scheme of your webserver or the browser on the client side. Thus you need to call both ob_flush() and flush() to flush the output buffers.
    'output buffers' zijn in deze context de output buffers van PHP en de webserver, etc. Feitelijk zeggen ze daar niet dat je ob_start() hebt moeten aanroepen voordat je de ob_flush();flush(); methode gebruikt.
    pi_30482773
    misschien niet, maar ob_flush geeft wel een notice als je geen ob_start hebt gebruikt, vandaar. op zich zou je dus iets kunnen doen als:
    for($i = 0, $c = ob_get_level(), $i < $c; $i++) ob_end_flush(); maar of dat nu zo'n succes is?

    -r-
    pi_30483740
    quote:
    Op zondag 11 september 2005 13:58 schreef Roönaän het volgende:
    misschien niet, maar ob_flush geeft wel een notice als je geen ob_start hebt gebruikt, vandaar. op zich zou je dus iets kunnen doen als:
    for($i = 0, $c = ob_get_level(), $i < $c; $i++) ob_end_flush(); maar of dat nu zo'n succes is?
    Maar die doet als ik 't goed begrijp dus niets als je geen ob_start() hebt gebruikt?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30484721
    quote:
    Op zondag 11 september 2005 13:58 schreef Roönaän het volgende:
    ...maar of dat nu zo'n succes is?
    Daar zal de vraagsteller zich over moeten buigen, maar ik geloof dat het sowieso al geen succes was dus het is het proberen waard

    [offtopic]
    Is er een bepaalde reden waarom je het niet zo doet?
    1
    2
    3
    while (ob_get_level() > 0) {
        ob_end_flush();
    }

    Dit is imo beter leesbaar en het introduceert geen twee nieuwe variabelen.
    pi_30484864
    Omdat je dan continue ob_get_level aan het evalueren bent.

    zelf met for($i = 0; $i < count($array); $i++).. is ook niet altijd het beste.

    -r-
      zondag 11 september 2005 @ 17:02:27 #150
    71919 wonderer
    Hung like a My Little Pony
    pi_30488361
    quote:
    Op zondag 11 september 2005 12:01 schreef JeRa het volgende:
    Output buffering is een hel in PHP, zoals ik al twee keer eerder heb gezegd in deze reeks ik geloof dat de enige methode om het een beetje te laten werken is ob_flush() en flush() direct na elkaar aan te roepen als je wilt flushen, maar ook dat geeft geen garanties.
    Maar het werkt prima op twee verschillende servers, dat is het hele punt. Ik roep ob_implicit_flush aan en hij spuugt alles netjes uit. Alleen op die ene server doet ie dat dus niet en ik probeer alles dat ik kan bedenken om uit te vinden waar dat aan ligt.

    Ik weet lang niet zo veel van PHP als jullie, dus ik doe maar wat en hoop dat ik de fouten kan interpreteren. Ik snap gewoon niet waarom ie het op de ene server wel doet en op de andere niet.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30489935
    quote:
    Op zondag 11 september 2005 17:02 schreef wonderer het volgende:

    [..]

    Ik weet lang niet zo veel van PHP als jullie, dus ik doe maar wat en hoop dat ik de fouten kan interpreteren. Ik snap gewoon niet waarom ie het op de ene server wel doet en op de andere niet.
    Het voor de hand liggende antwoord: het probleem zit 'm in het verschil tussen de servers

    Dus kijk naar de versie van PHP, Apache (gegeven dat dat je webserver is op alle servers), eventueel modules die je nog extra in PHP en je webserver gebruikt, en kijk natuurlijk ook even of de configuratie (php_info()) verschilt zodat je misschien iets tegenkomt wat de oorzaak kan zijn van je probleem.
      zondag 11 september 2005 @ 18:09:38 #152
    71919 wonderer
    Hung like a My Little Pony
    pi_30490256
    quote:
    Op zondag 11 september 2005 17:57 schreef JeRa het volgende:

    [..]

    Het voor de hand liggende antwoord: het probleem zit 'm in het verschil tussen de servers

    Dus kijk naar de versie van PHP, Apache (gegeven dat dat je webserver is op alle servers), eventueel modules die je nog extra in PHP en je webserver gebruikt, en kijk natuurlijk ook even of de configuratie (php_info()) verschilt zodat je misschien iets tegenkomt wat de oorzaak kan zijn van je probleem.
    Mhmm.. maar ik weet dus niet precies waar het zit. session.use_trans_sid staat aan op de server waar het niet werkt, maar als ik die op de server waar het wel werkt uitzet, maakt dat niet uit. Zelfde geldt voor output buffering. Enige nadeel is dat de "slechte" server met 4.3.10 werkt en de goeie met 5.nogwat.

    redelijk frustrerend, dit soort dingen. Dan zoek ik liever een half uur naar een verkeerde komma
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30490987
    quote:
    Op zondag 11 september 2005 18:09 schreef wonderer het volgende:

    [..]

    Enige nadeel is dat de "slechte" server met 4.3.10 werkt en de goeie met 5.nogwat.
    Als de servers voor de rest exact hetzelfde is ingericht & ingesteld, dan heb je je oorzaak gevonden lijkt me misschien heeft PHP 5 gewoonweg meer mogelijkheden m.b.t. buffering dan oudere versies.
      zondag 11 september 2005 @ 21:20:45 #154
    71919 wonderer
    Hung like a My Little Pony
    pi_30496268
    quote:
    Op zondag 11 september 2005 18:34 schreef JeRa het volgende:

    [..]

    Als de servers voor de rest exact hetzelfde is ingericht & ingesteld, dan heb je je oorzaak gevonden lijkt me misschien heeft PHP 5 gewoonweg meer mogelijkheden m.b.t. buffering dan oudere versies.
    Nou, er is ook nog een server met 4.3.11 en in de changelog staat niks over bugs mbt buffers. Die 5.dinges staat op mijn eigen laptop, dus die kan ik tweaken om te testen. De server waar het betreffende script al ruim een jaar op draait, zonder problemen, kan ik niet bij, dus tenzij ik ergens in phpinfo() output settings over het hoofd heb gezien, kan ik die niet vergelijken.

    Ik wacht nog enige reactie af van deze en gene host, kijken of ik daar iets mee kan.

    edit: krijg nou wat... hij doet het ineens. Ik zou bij god niet weten waarom, want ik heb niks veranderd... maar het streamt.

    [ Bericht 6% gewijzigd door wonderer op 11-09-2005 21:50:45 ]
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30513521
    Marktplaats links replacen in phpbb.

    Ik word gek van die lange marktplaats links dus heb daar "even" een bbcode voor geschreven, maar ik vroeg me af wat jullie er van vinden, ook kwa veiligheid.

    1
    2
    3
    4
    5
    $ret = preg_replace("#(http://koopjes\.marktplaats\.nl[\w\:%&/.;\=?\[\]+]#sie",
    "'<a href=\\1 target=_blank>Marktplaats Link</a>'", $ret);
    $ret = preg_replace("#(http://www\.marktplaats\.nl/index\.php3\?sref=
    false\&url=http%3A//koopjes\.marktplaats\.nl[\w\%&/.;\[\]+]#sie",
     "'<a href=\\1 target=_blank>Marktplaats Link</a>'\n", $ret);


    Mn test links; http://koopjes.marktplaats.nl/auto_diversen/onderdelen_citroen/
    5972987.html?return=eJxLtDK0qs60MrAutjI0NLZSKk5NLErOsNaH0HoFGQX2JU
    m2%2BWlqFTm2hmopxbbZ5arGjhWJeSWZiarGTiX5QJ4hkJEDJBxNLECsEiCrKrMAxKw
    AMkF0JYROK4aqzi%2FOBLKM1ApsDZWsawGAeCa2&df=1
    http://www.marktplaats.nl/index.php3?sref=false&url=http%3A//koopjes.
    marktplaats.nl/auto_diversen/onderdelen_citroen/5972987.html%3Freturn%3
    DeJxLtDK0qs60MrAutjI0NLZSKk5NLErOsNaH0HoFGQX2JUm2%252BWlqFTm2hmopxbbZ5ar
    GjhWJeSWZiarGTiX5QJ4hkJEDJBxNLECsEiCrKrMAxKwAMkF0JYROK4aqzi%252FOBLKM1Aps
    DZWsawGAeCa2%26df%3D1

    Bij de * )#sie zit een spatie vanwegen de smilies, en wat enters vanwegen de layout

    [ Bericht 9% gewijzigd door Darkomen op 13-09-2005 13:19:25 ]
    pi_30517651
    quote:
    Op maandag 12 september 2005 14:17 schreef Darkomen het volgende:
    Bij de * )#sie zit een spatie vanwegen de smilies, en wat enters vanwegen de layout
    Daar is de code tag dus voor uit gevonden, dat je daar geen last van hebt
      maandag 12 september 2005 @ 18:19:48 #157
    58460 RicXDesign
    ^ Im with stupid ^
    pi_30518773
    Hoi,

    Hoe kan ik de gegevens die ik uit de database heb gehaald weer terug plaatsen in een andere tabel(in de zelfde db).
    Ik ben volgens mij wel op de goede weg, maar het wil niet lukken.
    Hier de code waar ik de gegevens uit de db haal (in dropdown menu's)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <? 
    include('dbconnect.php');
    ?>
    <form action="post">
    1*<select name="name" class="button">

    <?php
    $resultaat = mysql_query("SELECT name FROM movies") or die ("Er is iets mis met de database");

    while($row = mysql_fetch_assoc($resultaat))
        {
            echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
        }

    ?>

    </select><br>

    <input type="submit" value=" Toevoegen " class="button">
    </form>


    Iemand die de helpende hand bied ?

    ps. zijn eigenlijk 10 drop down menu's , maar heb er voor het gemak maar even 9 weggehaald.

    [ Bericht 1% gewijzigd door RicXDesign op 12-09-2005 20:52:01 ]
    pi_30538965
    quote:
    Op maandag 12 september 2005 17:19 schreef ikke_ook het volgende:

    [..]

    Daar is de code tag dus voor uit gevonden, dat je daar geen last van hebt
    Dacht ik dus ook:
    1*)


    Edit: maar zoals altijd doet hij het nu weer wel.

    Edit 2: maar zoals je in mijn post bovenaan ziet doet hij het daar niet terwijl daar ook code tags omheen staan :|


    Maar daar gaat het niet om, wat vinden jullie van de code??
    pi_30542287
    Ik zou de attributen van de A-tag wel in quotes zetten:

    <a href="blaat" target="blaat" etc>

    Voor de rest lijkt ie me prima? Heb er niet heel erg diep over nagedacht maar ik zou in ieder geval nog wat meer testlinks proberen zodat je er vrij zeker van bent
    pi_30546262
    quote:
    Op maandag 12 september 2005 18:19 schreef RicXDesign het volgende:
    Hoi,

    Hoe kan ik de gegevens die ik uit de database heb gehaald weer terug plaatsen in een andere tabel(in de zelfde db).
    Ik ben volgens mij wel op de goede weg, maar het wil niet lukken.
    Hier de code waar ik de gegevens uit de db haal (in dropdown menu's)
    [ code verwijderd ]

    Iemand die de helpende hand bied ?

    ps. zijn eigenlijk 10 drop down menu's , maar heb er voor het gemak maar even 9 weggehaald.
    je wilt de geselecteerde waarde in een andere tabel stoppen?

    zoiets dan?
    1$query = "INSERT INTO table2 (name) VALUES('".$_POST['name']."')";
    pi_30548058
    Ik kom er niet helemaal uit met MySQL.

    Ik zal even uitleggen hoe mijn database er ongeveer uitziet en wat ik precies wil.

    Database: portal
    Met daarin de volgende tabellen;
    evenementen
    nieuws
    recepten
    reacties

    Evenementen bevat de volgende (belangrijke) velden;
    id
    evenement
    tijd

    Nieuws bevat de volgende (belangrijke) velden;
    id
    onderwerp
    text
    tijd

    Recepten bevat de volgende (belangrijke) velden;
    id
    recept
    tijd

    Reacties bevat de volgende (belangrijke) velden;
    id
    ber_id (bericht id)
    tijd
    soort

    Tot zo ver alles duidelijk ?

    Mijn evenementen worden ingevoerd in de 'evenementen' tabel, mijn nieuws wordt ingevoerd in de 'nieuws' tabel, spreekt voor zich allemaal.
    Nou kunnen er mensen reageren op de evenementen/nieuws/recepten, deze reacties komen in de 'reacties' tabel te staan.

    Bijvoorbeeld;

    1
    2
    3
    $SQL = "INSERT INTO `reacties` ( `id` , `ber_id` , `naam` , `bericht` , `tijd` , `soort` , `IP` )
    VALUES
    ( '', '$id', '$loginnaam', '$bericht', '$date', 'recepten', '$ip' )";


    Nou wil ik de laatste 10 reacties uit mijn database lezen. Soms wordt er 3 keer achter elkaar op 1 nieuwsbericht gereageert, dus deze moet 'gegroupt' worden.

    Ik dacht er hiermee wel uit te komen, maar niet dus;
    1SELECT id, ber_id, tijd, soort FROM `reacties` GROUP BY ber_id ORDER BY tijd DESC LIMIT 0, 10

    Vervolgens een while;
    1"SELECT id, $titel, reacties FROM `$soort` WHERE id = '$ber_id'";


    Weet je wat, hier mijn hele code om de laatste 10 reacties uit te lezen.

    Het kan bagger code zijn, ben ook nog een newb op php-gebied
    ne okuyon, bokmu var?
      dinsdag 13 september 2005 @ 19:18:19 #162
    115062 onderjas
    Eigenlijk een trui
    pi_30548908
    Ik zoek een gastenboek waarmee ik ip's van de mensen die posten kan achterhalen, via een admin panel dus. Geen idee of dit het juiste topic is.
    pi_30549202
    hotscripts.com/phpfreakz.nl/etc?
    pi_30553611
    quote:
    Op dinsdag 13 september 2005 15:21 schreef JeRa het volgende:
    Ik zou de attributen van de A-tag wel in quotes zetten:

    <a href="blaat" target="blaat" etc>

    Voor de rest lijkt ie me prima? Heb er niet heel erg diep over nagedacht maar ik zou in ieder geval nog wat meer testlinks proberen zodat je er vrij zeker van bent
    Elke marktplaats link pakt hij iig wel, tenminsten degene die de meeste mensen weten te vinden.
    Mocht ik er nog een tegenkomen dan pas ik dat aan.
    De quotes ja dat was idd niet echt netjes van me, maar heb dat ook aangepast
    pi_30572056
    Ik heb een vraag / verzoekje. Ik ben nog niet lang bezig met PHP en snap er nog niet veel van. Maar dit is nu het geval:

    Ik heb een afbeelding die ik op andere sites wil plaatsen, met een link naar mijn site. Nu wil ik graag via PHP controleren hoe vaak de afbeelding wordt bekeken en via welke site dat gebeurt. Ook wil ik graag zien hoe vaak erop geklikt wordt.

    Met wat gezoek op php.net heb ik het volgende gemaakt:

    1
    2
    3
    4
    5
    <?php
    $im
    = imagecreatefromgif("plaatje.gif");
    header("Content-type: image/gif");
    imagegif($im);
    ?>


    Dit levert dus netjes de afbeelding op. Maar nu dus nog het moeilijke probleem, het controleren hoe vaak hij wordt bekeken, vanaf welke site. Ik dacht dat je zoiets kon maken door de referrer te controleren. Deze in een database te gooien, en daar het aantal views en kliks bijhouden. Maar ik heb geen idee hoe je zoiets maakt. Kan iemand daarmee helpen.

    Ik heb uiteraard wel de beschikking over een database, met MySQL.
    pi_30572474
    <?php
    $im = imagecreatefromgif("plaatje.gif");
    header("Content-type: image/gif");
    imagegif($im);
    ob_star();
    mysql_connect('somehost', 'someuser','somepass') or die();
    mysql_select_db('somedatabase') or die();
    $query = 'INSERT INTO `sometable` (`image_date`, `image_ref`) values(now(), "'.mysql_real_escape_string(@$_SERVER['HTTP_REFERER']).'")';
    mysql_query($query);
    mysql_close();
    ob_end_clean();
    ?>

    Moet je alleen een database aanmaken met een paar velden.
    pi_30573433
    Bedankt Roonaan.

    Maar net lag ik op de bank en bedacht ik nog iets simpels en doeltreffends. Namelijk gewoon de afbeelding op de andere sites plaatsen als:

    1<a href="http://www.mijnsite.nl/extern.php?site=jouwsite"><img src="www.mijnsite.nl/plaatje.php?site=jouwsite"></a>


    Nu kan ik makkelijk de waarde van jouwsite aflezen, dit in een tabel gooien en wat tellertjes bijhouden voor views en kliks.

    Maar ik zal jou optie zeker eens uitdiepen, zodat ik ook ga snappen wat het precies doet en er verder mee experimenteren.
    pi_30574690
    Ik zou voor de optie van Roonaan gaan, zoiets gebruik ik zelf ook en is wat bter dan ?site=jouwsite dat valt uiteraard te omzeilen.

    Plus je kan via d eoptie van ronaan ook nog inbouwen dat een image niet geladen word als jij niet wilt dat die site jouw images gebruikt.
    Dus een no hotlinking script
    pi_30575732
    Niemand die mij wil helpen
    ne okuyon, bokmu var?
    pi_30577140
    ik was ook even aan het klooien nu krijg ik de volgende foutmelding:

    1Parse error: parse error, unexpected $ in /home/web/administratie/contact.php on line 50


    code:
    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
    <?php
    php
    if ($submit){
    include (
    "config.php");
    {
    $query = "UPDATE contact SET tel = '$tel', fax = '$fax', email = '$email', straat = '$straat', postcode = '$postcode', plaats = '$plaats' ";
    mysql_query($query) or die ("query mislukt");
    echo
    "Klik <A HREF='index.php'>hier</a> om terug te gaan";
    }
    }
    else {
    include
    "config.php";
    $query = "SELECT * FROM contact";
    $resultaat = mysql_query($query) or die (mysql_error());
    while(
    $obj = mysql_fetch_object($resultaat)){
    echo
    "telefoonnummer: $obj->tel<br>
           faxnummer: $obj->fax<BR>
           email: $obj->email <BR>
           straat: $obj->straat <BR>
           postcode: $obj->postcode<br>
           plaats: $obj->plaats<br>

    "
    ;
    }


    &
    lt;FORM ACTION="contact.php" METHOD="post"&gt;

       &
    lt;INPUT TYPE="hidden" name="submit" value="maakt_niet_uit"&gt;
       
    Tel&lt;BR&gt;
       &
    lt;input type="text" Name="tel" value='php echo"$tel"; ' size=50 Maxlength=100&gt;&lt;BR&gt;
       
    Fax&lt;BR&gt;
       &
    lt;input type="text" Name="fax" value='php echo"$fax"; ' size=50 Maxlength=100&gt;&lt;BR&gt;
       
    email&lt;BR&gt;
       &
    lt;input type="text" Name="email" value="php echo"$email";  "size=50 Maxlength=20&gt;&lt;BR&gt;
       
    straat&lt;BR&gt;
       &
    lt;input type="text" Name="straat" value="php echo"$straat";  "size=50 Maxlength=20&gt;&lt;BR&gt;
       
    postcode&lt;BR&gt;
       &
    lt;input type="text" Name="postcode" value="php echo"$postcode";  "size=50 Maxlength=20&gt;&lt;BR&gt;
       
    plaats&lt;BR&gt;
       &
    lt;input type="text" Name="plaats" value="php echo"$plaats";  "size=50 Maxlength=20&gt;&lt;BR&gt;

    &
    lt;INPUT TYPE="submit" VALUE="update"&gt;
    &
    lt;/FORM&gt;
    }


    php
    echo "<BR><a href='index.php'>Naar administratie</a><BR>";
    ?>



    aub lag me niet uit ben net begonnen

    [ Bericht 0% gewijzigd door dujour op 14-09-2005 17:51:48 ]
    pi_30579152
    je kunt beter de code tag gebruiken, de php tag is nogal verneukt af en toe...
    de foutmelding komt omdat je zomaar iets in je php code typt....
    de html die je maakt moet je of in een variabele zetten en dan daarna die variabele echo'en, of direct al de html echo'en.
    ik denk dat je beter eerst nog wat voorbeelden door kunt lezen ofzo...want je doet nog wel meer vreemde dingen... zomaar opeens 'php' typen in de code bijvoorbeeld.
    pi_30580693
    Ik typte niet in 1 keer php dat kwam door die php tags
    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
    <?php
    if ($submit){
    include ("config.php");
    {$query = "UPDATE contact SET tel = '$tel', fax = '$fax', email = '$email', straat = '$straat', postcode = '$postcode', plaats = '$plaats' ";
    mysql_query($query) or die ("query mislukt");
    echo "Klik <A HREF='index.php'>hier</a> om terug te gaan";
    }
    }
    else {
    include "config.php";
    $query = "SELECT * FROM contact";
    $resultaat = mysql_query($query) or die (mysql_error());
    while($obj = mysql_fetch_object($resultaat)){
     echo "telefoonnummer: $obj->tel<br>
          faxnummer: $obj->fax<BR>
           email: $obj->email <BR>
           straat: $obj->straat <BR>
          postcode: $obj->postcode<br>
          plaats: $obj->plaats<br>
     
    ";
    }


    ?>

     <FORM ACTION="contact.php" METHOD="post">

       <INPUT TYPE="hidden" name="submit" value="maakt_niet_uit">
       Tel<BR>
       <input type="text" Name="tel" value='<?php echo"$tel"; ?>' size=50 Maxlength=100><BR>
       Fax<BR>
       <input type="text" Name="fax" value='<?php echo"$fax"; ?>' size=50 Maxlength=100><BR>
       email<BR>
       <input type="text" Name="email" value="<?php echo"$email"; ?> "size=50 Maxlength=20><BR>
       straat<BR>
       <input type="text" Name="straat" value="<?php echo"$straat"; ?> "size=50 Maxlength=20><BR>
       postcode<BR>
       <input type="text" Name="postcode" value="<?php echo"$postcode"; ?> "size=50 Maxlength=20><BR>
       plaats<BR>
       <input type="text" Name="plaats" value="<?php echo"$plaats"; ?> "size=50 Maxlength=20><BR>

    <INPUT TYPE="submit" VALUE="update">
    </FORM>
    }


    <?php
    echo "<BR><a href='index.php'>Naar administratie</a><BR>";
    ?>
    pi_30581959
    en gaater nu nog iets fout dan?
    pi_30582664
    quote:
    Op woensdag 14 september 2005 20:14 schreef ikke_ook het volgende:
    en gaater nu nog iets fout dan?
    Parse error: parse error, unexpected $ in /home/web/administratie/contact.php on line 50
      woensdag 14 september 2005 @ 21:37:57 #175
    71919 wonderer
    Hung like a My Little Pony
    pi_30584889
    Wat doet die { op regel 4?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30585087
    quote:
    Op woensdag 14 september 2005 21:37 schreef wonderer het volgende:
    Wat doet die { op regel 4?
    Die hoort bij de } op regel 7
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30585993
    Ik heb nu de code een beetje opgeschoond en nog steeds die parse error
    pi_30586075
    quote:
    Op woensdag 14 september 2005 21:42 schreef SuperRembo het volgende:

    [..]

    Die hoort bij de } op regel 7
    En de } op regel 45?
    pi_30586202
    quote:
    Op woensdag 14 september 2005 22:07 schreef HuHu het volgende:

    [..]

    En de } op regel 45?
    klopt die was fout

    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
    <?php

    if ($submit){
    include "config.php";
    $query = "UPDATE contact SET tel = '$tel', fax = '$fax', email = '$email', straat = '$straat', postcode = '$postcode', plaats = '$plaats' ";
    $resultaat = mysql_query($query) or die (mysql_error());
    echo "Klik <A HREF='index.php'>hier</a> om terug te gaan";
    }
    else {
    include "config.php";
    $query = "SELECT * FROM contact";
    $resultaat = mysql_query($query) or die (mysql_error());
    while($obj = mysql_fetch_object($resultaat)){
    echo "telefoonnummer: $obj->tel<br>      faxnummer: $obj->fax<BR>email: $obj->email <BR>straat: $obj->straat <BR>postcode: $obj->postcode<br>plaats: $obj->plaats<br>
         ";
    }
    ?>

    <form ACTION="contact.php" METHOD="post">
       <INPUT TYPE="hidden" name="submit">
       Tel<BR>
       <input type="text" Name="tel" size=50 Maxlength=10><BR>
       Fax<BR>
       <input type="text" Name="fax" size=50 Maxlength=10><BR>
       email<BR>
       <input type="text" Name="email" size=50 Maxlength=20><BR>
       straat<BR>
       <input type="text" Name="straat" size=50 Maxlength=20><BR>
       postcode<BR>
       <input type="text" Name="postcode" size=50 Maxlength=20><BR>
       plaats<BR>
       <input type="text" Name="plaats" size=50 Maxlength=20><BR>
    <INPUT TYPE="submit" VALUE="wijzig">


    1Parse error: parse error, unexpected $ in /home/web/administratie/contact.php on line 33


    snap der geen hol meer van
    pi_30586295
    In regel 14 gaat het gruwelijk fout met die $obj.
    pi_30586424
    mag ik vragen hoe ik anders iets uit een database trek met $obj is het me altijd gelukt
    pi_30586585
    quote:
    Op woensdag 14 september 2005 22:16 schreef dujour het volgende:
    mag ik vragen hoe ik anders iets uit een database trek met $obj is het me altijd gelukt
    Deze regel:

    1echo "telefoonnummer: $obj->tel<br>      faxnummer: $obj->fax<BR>email: $obj->email <BR>straat: $obj->straat <BR>postcode: $obj->postcode<br>plaats: $obj->plaats<br>";


    Voor zover ik het weet, kan je die $obj niet zomaar in een echo gebruiken, maar moet je die erbuiten zetten. Ik weet ook niet precies hoe je het moet fixen, maar zo mag het in ieder geval niet. Het moet iets worden als:

    1echo "telefoonnummer: " . $obj->tel . "<br>      faxnummer: " . $obj->fax . "<BR>email: " . $obj->email . "<BR>straat: " . $obj->straat . " <BR>postcode: " . $obj->postcode . "<br>plaats: " . $obj->plaats . "<br>";


    Zoiets, maar of het echt werkt weet ik niet. Ik ben geen PHP-licht.
    pi_30586722
    quote:
    Op woensdag 14 september 2005 22:16 schreef dujour het volgende:
    mag ik vragen hoe ik anders iets uit een database trek met $obj is het me altijd gelukt
    Wie heeft je eigenlijk geleerd om objects te gebruiken bij mysql als je de fields alleen maar echo'd?
    pi_30587261
    weet niet ben zelf aan het knutselen gegaan.

    heb nu dit:
    1echo "telefoonnummer:" . $obj->tel."<br>faxnummer: ". $obj->fax."<BR>email: ". $obj->email." <BR>straat: ". $obj->straat." <BR>postcode: ". $obj->postcode."<br>plaats: ". $obj->plaats."<br>";


    maar nog steeds
    Parse error: parse error, unexpected $ in /home/web/administratie/contact.php on line 33
      woensdag 14 september 2005 @ 22:38:21 #185
    71919 wonderer
    Hung like a My Little Pony
    pi_30587433
    het is toch include('file.php'); en niet include "file.php"; ?

    En het script werkt sowieso niet omdat de submit knop een NAME mist, dus $submit is nooit true. Dat kun je sowieso beter doen als if(isset($_POST["submit"])){
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      woensdag 14 september 2005 @ 22:39:41 #186
    71919 wonderer
    Hung like a My Little Pony
    pi_30587506
    quote:
    Op woensdag 14 september 2005 22:23 schreef Roönaän het volgende:

    [..]

    Wie heeft je eigenlijk geleerd om objects te gebruiken bij mysql als je de fields alleen maar echo'd?
    Waar kun je die dan het beste voor gebruiken? Ik doe altijd mysql_fetch_array() en dat werkt prima...
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30587593
    quote:
    Op woensdag 14 september 2005 22:38 schreef wonderer het volgende:
    het is toch include('file.php'); en niet include "file.php"; ?
    Ik vroeg me ook al af, of bij al die echo's enzo er ook geen ( en ) omheen moeten.
      woensdag 14 september 2005 @ 22:43:04 #188
    71919 wonderer
    Hung like a My Little Pony
    pi_30587647
    quote:
    Op woensdag 14 september 2005 22:41 schreef HuHu het volgende:

    [..]

    Ik vroeg me ook al af, of bij al die echo's enzo er ook geen ( en ) omheen moeten.
    Dat doe ik ook nooit
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30587775
    dat moet ook niet bij een echo

    Bij een include hoeft het trouwens ook niet.
    pi_30587875
    @dujour
    Ik raad je aan om eens helemaal bij het begint te beginnen. Het lijkt erop dat je geen idee hebt waar je mee bezig bent. Je php klopt niet, je html houdt niet over en je sql mist een aantal essentiele dingen.
    Begin met een simpele tutorial. Of koop een boek.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30588461
    Een boek staat in de planning. (geen geld enz)
    ik heb het nu voor elkaar hoor ik misde 1 }
    alleen nu update die de rij nog niet goed maar ik kan wel ff prutsen

    [ Bericht 2% gewijzigd door dujour op 14-09-2005 23:10:20 ]
      donderdag 15 september 2005 @ 02:00:30 #192
    71919 wonderer
    Hung like a My Little Pony
    pi_30592660
    Een editor met syntax highlighting helpt een hoop met haakjes. Ik gebruik crimson editor, maar er zijn er meer die dat doen.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30596454
    ik gebruik nu edit ++ die doet dat ook
    pi_30597178
    Php designer 2005 geeft ook kleurtjes, plus dat je een pagina met 1 knop kunt debuggen, met eventueel een apacheerror log (handig als je ergens een ; ' " of haakje vergeten bent....
    pi_30598186
    Niemand een oplossing voor mij?

    Welke boek stellen jullie voor om mezelf verder in te verdiepen in MySQL. Heb tot nu toe 2 boeken beginners PHP&MYSQL gelezen. Verder dan de basis van MySQL gaan ze niet.

    (Graag NLs)
    ne okuyon, bokmu var?
      donderdag 15 september 2005 @ 16:59:37 #196
    58460 RicXDesign
    ^ Im with stupid ^
    pi_30606634
    Ik krijg deze foutmelding..
    quote:
    Parse error: parse error, unexpected ',' in /admin/admin.php on line 42
    In dit stuk:
    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
    53
    <html>
    <head>
    <title>Welkom bij VideoCity Online | Admin</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="../insert/style.css" rel="stylesheet" type="text/css">

    </head>

    <body>
    Coming Soon

    <? 
    include('dbconnect.php');
    ?>
    <?php

    if (!$q = mysql_query("SELECT `id`, `name` FROM `movies` ORDER BY `inserted` DESC"))
        die('Error @ line: ' . __LINE__ . mysql_error());


    if (!isset($_POST['submit'])) {
        print '<form action="" method="post">';
        print '<select name="id">';


        if (mysql_num_rows($q) < 1) 
            print '<option value="0">Er staan geen films in de database..<option>';

        else 

            for ( ; $ud = mysql_fetch_assoc($q); print '<option value="'.$ud['id'].'">'.$ud['name'].'</option>') ;

        print '<input type="submit" name="submit" value="Voeg in de database" class="button">';
        print '</form>';
    }
    else {

        if (is_numeric($_POST['id']))
            die('foutieve invoer!');

        if (!$uname = mysql_result(mysql_query("SELECT `name` FROM `movies` WHERE `id`={$_POST['id']} LIMIT 0,1")), 0, 'name')
            die('Error @ line: ' . __LINE__ . mysql_error());

        if (!mysql_query("INSERT INTO `comingsoon` (id, name) VALUES ({$_POST['id']}, '{$uname}')"))
            die('Error @ line: ' . __LINE__ . mysql_error());

        print 'Gegevens zijn in een andere tabel opgeslagen!';
    }

    ?>

    </body>
    </html>


    Iemand een idee? Ik zie door de code het bos niet meer
    pi_30607512
    1
    2
    if (!$uname = mysql_result(mysql_query("SELECT `name` FROM `movies` WHERE 
    `id`={$_POST['id']} LIMIT 0,1")), 0, 'name')

    Staan de haakjes hier wel goed?Zoja, wat wil je dat hier gebeurd?
    pi_30607633
    Ik zou dat trouwens ook niet met een if statement doen maar gewoon zo :
    1
    2
    3
    $query = "SELECT `name` FROM `movies` WHERE 
    `id`= ".$_POST['id']." LIMIT 0,1";
    $result = mysql_result($query)or die(__LINE__  . mysql_error());


    En ik zou ook even checken wat je binnenkrijgt via je $_POST
    Zo zet je de deur open voor sql injection
      donderdag 15 september 2005 @ 17:28:41 #199
    58460 RicXDesign
    ^ Im with stupid ^
    pi_30607657
    quote:
    Op donderdag 15 september 2005 17:24 schreef ikke_ook het volgende:

    [ code verwijderd ]

    Staan de haakjes hier wel goed?Zoja, wat wil je dat hier gebeurd?
    Ik ben dr intussen al mee geholpen, haakjes stonden idd verkeerd.
    Krijg nu weer een nieuwe : 'unexpected $ ' op een regel waar niet eens code staat


    ok , heb hem al, stommiteit van mij
      vrijdag 16 september 2005 @ 15:37:35 #200
    76657 Maikey
    This pik ik niet!
    pi_30637187
    Vraagje; Ik heb een site met een gastenboek, in dat gastenboek worden de laatste 15 post's getoond. Ik wil echter alle post's tonen, maar dan pagina's laten indexen met behulp van PHP. Net zoals in dit topic, pagina 1, 2, 3, etc dus. Ik kan hier echter moeilijk wat over vinden. Heeft iemand een link waarin zoiets staat uitgelegd of kan iemand mij dat uitleggen? Alvast bedankt!
    Wat een onzin!
    pi_30640564
    quote:
    Op vrijdag 16 september 2005 15:37 schreef Maikey het volgende:
    Vraagje; Ik heb een site met een gastenboek, in dat gastenboek worden de laatste 15 post's getoond. Ik wil echter alle post's tonen, maar dan pagina's laten indexen met behulp van PHP. Net zoals in dit topic, pagina 1, 2, 3, etc dus. Ik kan hier echter moeilijk wat over vinden. Heeft iemand een link waarin zoiets staat uitgelegd of kan iemand mij dat uitleggen? Alvast bedankt!
    quote:
    Op zaterdag 10 september 2005 00:18 schreef JeRa het volgende:

    [..]

    Dan moet je alle bestandsnamen opvragen en in een array stoppen. Je moet weten hoeveel bestandsnamen je op één pagina wilt hebben. Het aantal pagina's dat je dan hebt is:

    $aantalPaginas = ceil($totaalAantalBestanden / $bestandenPerPagina);

    Vervolgens vraag je een paginanummer op dat loopt van 0...n - 1 met n = aantal pagina's. De items die je uit je array moet opvragen zijn dan:

    $eersteItem = $paginaNummer * $bestandenPerPagina;
    $laatsteItem = min($eersteItem + $bestandenPerPagina, $totaalAantalBestanden);

    en die werk je dan met een loopje af de pagina's wil je natuurlijk laten zien als 1...n, maar dat is puur cosmetisch (je telt 1 op bij de interne waarde).
    Stond één pagina terug hier moet je vast wel iets mee kunnen maken in plaats van bestanden lees je gewoon 'posts'.
      zaterdag 17 september 2005 @ 10:38:16 #202
    125047 Lamme_Sterfkanarie
    tweet tweet en dan ineens niet
    pi_30657976
    quote:
    Op vrijdag 16 september 2005 15:37 schreef Maikey het volgende:
    Vraagje; Ik heb een site met een gastenboek, in dat gastenboek worden de laatste 15 post's getoond. Ik wil echter alle post's tonen, maar dan pagina's laten indexen met behulp van PHP. Net zoals in dit topic, pagina 1, 2, 3, etc dus. Ik kan hier echter moeilijk wat over vinden. Heeft iemand een link waarin zoiets staat uitgelegd of kan iemand mij dat uitleggen? Alvast bedankt!
    dit heb ik ooit geschreven voor een gastenboek. hoop dat je er wat aan hebt:

    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
    <?php
    if(isset($_GET['showpage']) && is_numeric($_GET['showpage'])){
            
    $page = $_GET['showpage'];
        }
        else {
            
    $page = "0";
        }
        
    $gettotalmessages = mysql_query("SELECT COUNT(id) AS id FROM gastenboek");
        
    $totalmessages = mysql_result($gettotalmessages, 0, 0);
        
    $pages = ceil($totalmessages / $perpage);
        
    $offset = $page * $perpage;
        
    $getmessages = mysql_query("SELECT * FROM gastenboek ORDER BY tijd DESC LIMIT $offset, $perpage");
        while(
    $messages = mysql_fetch_assoc($getmessages)){
            
    $tpl-&gt;newBlock( "message" );
            
    $tpl-&gt;assign(
                array(
                
    "id" =&gt; $messages['id'],
                
    "bericht" =&gt; $messages['bericht'],
                
    "tijd" =&gt; strftime("%A %d %B %Y - %H:%M", $messages['tijd']),
            ));
            if(!empty(
    $messages['email'])){
                
    $tpl-&gt;newBlock( "email" );
                
    $tpl-&gt;assign("mail", $messages['email']);
                
    $tpl-&gt;assign("naam", $messages['naam']);
            }
            else {
                
    $tpl-&gt;newBlock( "no_email" );
                
    $tpl-&gt;assign("naam", $messages['naam']);
            }
        }
        
    $tpl-&gt;newBlock( "pagenav" );
        
    $nextpage = $page+1;
        
    $prevpage = $page-1;
        if(
    $page != "0"){
            
    $prev = "<a href=\"?page=gastenboek&showpage=" . $prevpage . "\"><< vorige</a> |";
        }
        if(
    $page+1 != $pages){
            
    $next = "| <a href=\"?page=gastenboek&showpage=" . $nextpage . "\">volgende >></a>";
        }
        
    $tpl-&gt;assign("pagenav", $prev . " pagina " . $page = $page+1 . " van " . $pages . " pagina's " . $next);
    ?>
    Ik heb het godverdomme gehad met die onkunde van je!
    pi_30694499
    quote:
    Op zaterdag 17 september 2005 10:38 schreef Lamme_Sterfkanarie het volgende:

    [..]

    dit heb ik ooit geschreven voor een gastenboek. hoop dat je er wat aan hebt:


    [ code verwijderd ]
    Welk template systeem gebruik jij? ik ben wel op zoek naar een goed template system
      zondag 18 september 2005 @ 19:44:52 #204
    125047 Lamme_Sterfkanarie
    tweet tweet en dan ineens niet
    pi_30705012
    http://templatepower.codocad.com

    werkt goed voor wat ik er mee doe
    Ik heb het godverdomme gehad met die onkunde van je!
    pi_30710205
    Ziet er netjes uit, hetzelfde wat phpbb gebruikt lijkt me
      maandag 19 september 2005 @ 17:27:55 #206
    65516 gieling
    Live from NYC
    pi_30731379
    Hallo, sinds een aantal weken krijg ik nogal wat spam via het contactformulier op een site, deze komen allemaal van het email adres <wisselend>@<hetdomein>.nl, dus nu wil ik zorgen dat hij een foutmelding geeft als je @<hetdomein>.nl invult.
    Er zit al wel een foutmeldingen in dmv o.a.
    ** if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $Email)) {
    $Error .= "<font face=\"Arial, Helvetica, sans-serif\" size=\"1\">Sorry, u bent vergeten een (geldig) e-mail adres in te vullen.</font><br>";
    } **
    etc. maar hoe kan ik zorgen dat hij een foutmelding geeft bij een bepaald domein?

    Alvast bedankt
    pi_30731887
    if(strstr($Email, 'hetdomein.nl')) {exit('bounce');}

    -r-
      maandag 19 september 2005 @ 18:40:54 #208
    50093 Icey1986
    Boondock Saints
    pi_30733454
    Mochten er mensen zijn die wellicht thuis op hun eigen pc/laptop wat met scripts willen kloten of graag eerst willen testen voor het online te zetten (of geen zin hebben om continou alles te uploaden)... ik heb een handleiding geschreven voor het installeren van apache+php+mysql en phpmyadmin. Wellicht dat men er wat aan heeft.
    And Shepards we shall be, for thee my lord, for thee. Power hath descended forth from thy hand, that our feet may swiftly carry out thy command. We shall flow a river forth to thee, and teeming with souls shall it ever be.
    pi_30734130
    quote:
    Op maandag 19 september 2005 18:40 schreef Icey1986 het volgende:
    Mochten er mensen zijn die wellicht thuis op hun eigen pc/laptop wat met scripts willen kloten of graag eerst willen testen voor het online te zetten (of geen zin hebben om continou alles te uploaden)... ik heb een handleiding geschreven voor het installeren van apache+php+mysql en phpmyadmin. Wellicht dat men er wat aan heeft.
    Mja, of je installeert gewoon appServ
      FOK!-Schrikkelbaas maandag 19 september 2005 @ 19:23:05 #210
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30734911
    quote:
    Op maandag 19 september 2005 18:59 schreef Roönaän het volgende:

    [..]

    Mja, of je installeert gewoon appServ
    Precies, AppServ is ideaal.
    Een van de weinige AMP installers welke ook nog eens goed up to date is met versies (PHP 4.3.11) en ook als PHP 5 te verkrijgen is. En GD 2.0.28 is mee geinstalleerd.

    3 keer next klikken en het staat geinstalleerd
    pi_30735585
    Je moet alleen niet in een andere dan de standaard directory willen installen...
    pi_30736426
    Ja, of je wilt natuurlijk zelf bepalen welke versies je gebruikt of je wilt misschien het fijne weten van de werking tussen Apache <-> PHP <-> MySQL weten, dan kun je het beter zelf handmatig installeren; leer je ook nog eens iets van met een beetje geluk.

    Oh, wat nog veel simpeler is. Gooi een Debian cd in je pc/laptop, installeer de boel (beetje op next klikken), start synaptic, vink de betreffende packages aan (apache/httpd, php, php-mysql, mysql) et voila
    pi_30737670
    Vind je dat nou echt, of blaat je wat om ook wat te zeggen te hebben?
      FOK!-Schrikkelbaas maandag 19 september 2005 @ 21:04:24 #214
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30738297
    quote:
    Op maandag 19 september 2005 20:08 schreef JeRa het volgende:
    Ja, of je wilt natuurlijk zelf bepalen welke versies je gebruikt of je wilt misschien het fijne weten van de werking tussen Apache <-> PHP <-> MySQL weten, dan kun je het beter zelf handmatig installeren; leer je ook nog eens iets van met een beetje geluk.
    Zou kunnen, maar de meeste willen php leren en geen server installatie
    quote:
    Oh, wat nog veel simpeler is. Gooi een Debian cd in je pc/laptop, installeer de boel (beetje op next klikken), start synaptic, vink de betreffende packages aan (apache/httpd, php, php-mysql, mysql) et voila
    Ik zou dit niet als simpeler willen betitelen.
      FOK!-Schrikkelbaas maandag 19 september 2005 @ 21:05:03 #215
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30738318
    quote:
    Op maandag 19 september 2005 19:44 schreef Roönaän het volgende:
    Je moet alleen niet in een andere dan de standaard directory willen installen...
    Hij staat bij mij op de D schijf geinstalleerd.

    -edit- appserv dan, de afzonderlijke componenten zet hij inderdaad in standaard directories
    pi_30738679
    quote:
    Op maandag 19 september 2005 19:44 schreef Roönaän het volgende:
    Je moet alleen niet in een andere dan de standaard directory willen installen...
    En wat is de standaard directory? Toch niet C:\AppServ\ hè?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas maandag 19 september 2005 @ 21:32:08 #217
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30739416
    quote:
    Op maandag 19 september 2005 21:14 schreef SuperRembo het volgende:

    [..]

    En wat is de standaard directory? Toch niet C:\AppServ\ hè?
    Bij mij staatie dus op d:\AppServ\
    pi_30739507
    quote:
    Op maandag 19 september 2005 21:32 schreef Swetsenegger het volgende:

    [..]

    Bij mij staatie dus op d:\AppServ\
    En de afzonderlijke componenten?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas maandag 19 september 2005 @ 21:49:47 #219
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30740211
    quote:
    Op maandag 19 september 2005 21:34 schreef SuperRembo het volgende:

    [..]

    En de afzonderlijke componenten?
    Nou ik ben ff aan het spitten, want die staan volgens mij gewoon OOK in d:\AppServ. Ik dacht dat hij MySQL en PHP in C:\program files installeerde, maar daar vind ik ze niet terug. in D:\AppServ echter heb ik de mappen Apache, PHP, MySQL en www. In de www folder staat phpmyadmin gewoon.

    Dus je kan een andere directory kiezen voor appserv, en de afzonderlijke componenten worden in dezelfde directory gegooid zo te zien.
    pi_30741144
    quote:
    Op maandag 19 september 2005 20:46 schreef Roönaän het volgende:
    Vind je dat nou echt, of blaat je wat om ook wat te zeggen te hebben?
    Allebei. Ik heb in het verleden zo ontiegelijk veel moeite gehad om MySQL te laten samenwerken met Windows dat in vergelijking een GNU/Linux installatie vele malen simpeler was

    En ik ergerde me een beetje aan het feit dat we opeens over de installatie van serversoftware gingen hebben terwijl dit toch echt een scriptingtopic is waarbij we eventueel naar de configuratie van de software kijken, maar als het om installatie gaat mag het van mij in een nieuw topic. En die link in een FAQ, ofzo.
      FOK!-Schrikkelbaas maandag 19 september 2005 @ 22:16:26 #221
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30741318
    quote:
    Op maandag 19 september 2005 22:11 schreef JeRa het volgende:

    [..]

    Allebei. Ik heb in het verleden zo ontiegelijk veel moeite gehad om MySQL te laten samenwerken met Windows dat in vergelijking een GNU/Linux installatie vele malen simpeler was
    Vandaar de opmerking van Roonaan voor AppServ.
    quote:
    En ik ergerde me een beetje aan het feit dat we opeens over de installatie van serversoftware gingen hebben terwijl dit toch echt een scriptingtopic is waarbij we eventueel naar de configuratie van de software kijken, maar als het om installatie gaat mag het van mij in een nieuw topic. En die link in een FAQ, ofzo.
    Vandaar mijn opmerking over AppServ. Inderdaad vind ik dit ook geen topic om complete serverinstallaties te bespreken. Echter een php testomgeving opzetten behoort wel in dit topic, en AMPs (LAMP of WAMP) hoort daar wel bij.
    pi_30741426
    De enige mogelijkheid om mac-browsers op een windows bak te testen is pearpc toch?
      FOK!-Schrikkelbaas maandag 19 september 2005 @ 22:22:03 #223
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30741557
    quote:
    Op maandag 19 september 2005 22:18 schreef Roönaän het volgende:
    De enige mogelijkheid om mac-browsers op een windows bak te testen is pearpc toch?
    Ja, maar als je me een linkje stuurt wil ik wel ff voor je kijken in safari, IE-Mac en/of Firefox mac
    pi_30741791
    quote:
    Op maandag 19 september 2005 22:22 schreef Swetsenegger het volgende:

    [..]

    Ja, maar als je me een linkje stuurt wil ik wel ff voor je kijken in safari, IE-Mac en/of Firefox mac
    tnx. alvast.
    pi_30773895
    Ik zou graag een php web site willen hebben.
    met een zelf geschreven database, Die ik zelf makkerlijk kan update.

    en een poppertje dat je zelf kan aankleden, zo als je zelf wilt ( Flash, Java )
    en minimaal 10 php pagina's groot
    weet iemand wat dit kan kosten ?, Heb al op site's gekeken maar kan niet vinden wat ik zoek


    1 Ik zou graag een Index / forum willen hebben waar mensen nieuws en update's kunnen zien en posten.
    en waar een regegistreerd gebruiker ze optie's kan instellen.

    2 poppertje moet kledeing aan kunnen doen zo wel man als vrouw
    vanaf ( Scrap ) ontworpen worden.


    en moet een kind vrienderlijk layout hebben.

    [ Bericht 1% gewijzigd door Gillian_Anderson op 20-09-2005 22:59:01 ]
      FOK!-Schrikkelbaas dinsdag 20 september 2005 @ 22:42:39 #226
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30774243
    quote:
    Op dinsdag 20 september 2005 22:34 schreef Gillian_Anderson het volgende:
    Ik zou graag een php web site willen hebben.
    met een zelf geschreven database, die ik zelf makkerlijk kan update

    en een poppertje dat je zelf kan aan kleden, zo als je zelf wilt ( Flash, Java )
    en minimaal 10 php pagina's groot
    weet iemand wat dit kan kosten heb al op site's gekeken maar kan niet vinden wat ik zoek


    Ik zou graag een Index / forum willen hebben waar mensen nieuws en update's kunnen zien en posten.

    poppertje moet kledeing aan kunnen doen zo wel man als vrouw
    vanaf ( Scrap ) ontworpen worden.
    Een website welke je helemaal zelf kan bijhouden, poppetjes aankleden EN een forum en vanaf de grond bouwen. Dat is geen simpel project.

    Beetje afhankelijk van wat voor functionaliteit je in dat forum/prikbord verwacht, gaat dit je minimaal ¤ 1000,- kosten en zeer waarschijnlijk (veel) meer
    pi_30774676
    De flash applicatie op zich gaat al een aardige duit kosten. Als de imaging aangeleverd wordt is het al wel goedkoper denk ik. Het forum is een beetje afhankelijk van de eisen en wensen. Als een phpbb voldoet kan je het bijna elke scriptkiddie het laten installeren vrees ik.

    -r-
    pi_30774971
    quote:
    Op dinsdag 20 september 2005 22:42 schreef Swetsenegger het volgende:

    [..]

    Een website welke je helemaal zelf kan bijhouden, poppetjes aankleden EN een forum en vanaf de grond bouwen. Dat is geen simpel project.

    Beetje afhankelijk van wat voor functionaliteit je in dat forum/prikbord verwacht, gaat dit je minimaal ¤ 1000,- kosten en zeer waarschijnlijk (veel) meer
    Poppetjes aankleden (met van scratch ontworpen kleding). Ik denk dat je zo een 0 achter dat bedrag van jou mag plakken.
    pi_30775040
    Volgens mij moet er een soort sims achtig iets komen oid?
      FOK!-Schrikkelbaas dinsdag 20 september 2005 @ 23:03:46 #230
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30775106
    quote:
    Op dinsdag 20 september 2005 22:53 schreef Roönaän het volgende:
    De flash applicatie op zich gaat al een aardige duit kosten. Als de imaging aangeleverd wordt is het al wel goedkoper denk ik. Het forum is een beetje afhankelijk van de eisen en wensen. Als een phpbb voldoet kan je het bijna elke scriptkiddie het laten installeren vrees ik.

    -r-
    PHPBB is niet van scratch ontworpen. Ik nam tenminste aan dat daar de hele site mee bedoeld werd
    quote:
    Op dinsdag 20 september 2005 23:00 schreef Light het volgende:

    [..]

    Poppetjes aankleden (met van scratch ontworpen kleding). Ik denk dat je zo een 0 achter dat bedrag van jou mag plakken.
    Ik wilde niet gelijk TE ontmoedigend zijn
    pi_30775300
    quote:
    Op dinsdag 20 september 2005 23:03 schreef Swetsenegger het volgende:

    [..]

    PHPBB is niet van scratch ontworpen. Ik nam tenminste aan dat daar de hele site mee bedoeld werd
    [..]

    Ik wilde niet gelijk TE ontmoedigend zijn
    Moet dus erg rekening houden met 6000 tot 10.000 euro ?
      FOK!-Schrikkelbaas dinsdag 20 september 2005 @ 23:12:02 #232
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30775464
    quote:
    Op dinsdag 20 september 2005 23:08 schreef Gillian_Anderson het volgende:

    [..]

    Moet dus erg rekening houden met 6000 tot 10.000 euro ?
    de poppetjes in flash kost een aardig bedrag en als je geen bestaande forum oplossing wilt implementeren, maar een forum van de grond wil laten schrijven zou ik maar van minimaal 10.000 uitgaan
      woensdag 21 september 2005 @ 01:30:29 #233
    24399 TechXP
    www.biteback.be
    pi_30780076
    quote:
    Op dinsdag 20 september 2005 22:42 schreef Swetsenegger het volgende:
    Een website welke je helemaal zelf kan bijhouden, poppetjes aankleden EN een forum en vanaf de grond bouwen. Dat is geen simpel project.
    Oh een forum bouwen is wel goed te doen hoor. Niet zo erg lastig. En een bij te houden website ook niet. Mij lijkt met die poppetjes wel het lastige deel Maar dat is omdat ik geen flash expert ben. Geef mij maar PHP

    Als je wil kan je voor de website/forum mij wel een uitgebreide projectomschrijving sturen, waarop ik een offerte kan maken daarvoor. Voor mensen met kennis voor flash applicaties kan je beter navragen op flashfocus.nl
    pi_30781412
    hangt er een beetje van af of het in 3d moet. 2d is het hardly any problem denk ik dan zo.
      FOK!-Schrikkelbaas woensdag 21 september 2005 @ 08:19:57 #235
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30781516
    quote:
    Op woensdag 21 september 2005 01:30 schreef TechXP het volgende:

    [..]

    Oh een forum bouwen is wel goed te doen hoor. Niet zo erg lastig.
    Afhankelijk van het aantal bezoekers welke je verwacht. Moet er een full text search in, etc etc
    quote:
    En een bij te houden website ook niet.
    Neuh, CMSje enzo. De vraag is natuurlijk wel WAT er allemaal dynamisch moet.
    quote:
    Mij lijkt met die poppetjes wel het lastige deel Maar dat is omdat ik geen flash expert ben. Geef mij maar PHP
    Misschien kan je nog een eind komen met DHTML en CSS, mits het 2D is.
    pi_30781637
    Dan kan je beter flash doen. In de nieuwe flash 8 helemaal, kan je simpele FLV filmpjes pakken, zodat het net dat beetje geanimeerd lijkt.
      FOK!-Schrikkelbaas woensdag 21 september 2005 @ 08:33:34 #237
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30781670
    quote:
    Op woensdag 21 september 2005 08:31 schreef Roönaän het volgende:
    Dan kan je beter flash doen. In de nieuwe flash 8 helemaal, kan je simpele FLV filmpjes pakken, zodat het net dat beetje geanimeerd lijkt.
    Ik heb allerlei flash boeken staan, maar ja... tijd he
    (EERST wil ik uitzoeken hoe je flash met database en php laat lullen )
    pi_30781713
    quote:
    Op woensdag 21 september 2005 08:33 schreef Swetsenegger het volgende:

    [..]

    Ik heb allerlei flash boeken staan, maar ja... tijd he
    (EERST wil ik uitzoeken hoe je flash met database en php laat lullen )
    mail maar. keyword: xml
      woensdag 21 september 2005 @ 11:07:47 #239
    24399 TechXP
    www.biteback.be
    pi_30784949
    quote:
    Op woensdag 21 september 2005 08:19 schreef Swetsenegger het volgende:
    Afhankelijk van het aantal bezoekers welke je verwacht. Moet er een full text search in, etc etc
    Het ligt inderdaad in wat je wil ja.
    quote:
    Neuh, CMSje enzo. De vraag is natuurlijk wel WAT er allemaal dynamisch moet.
    Dat zeker ook. Alles waarschijnlijk
    quote:
    Misschien kan je nog een eind komen met DHTML en CSS, mits het 2D is.
    Ja, dat zou eventueel natuurlijk ook wel kunnen.
    pi_30818400
    Even een vraagje.

    Ik gebruik SmartFTP. Onder mn documenten (httpdocs) staat een map met mp3'tjes. Nu wil ik er 2 uit verwijderen, maar dan krijg ik de melding: 550 - No such file or directory? Zo'n melding heb ik nooit eerder gehad.
    quote:
    226-Transfer complete.
    226 Quotas off
    DELE Lenny Kravitz - California.mp3
    550 Lenny Kravitz - California.mp3: No such file or directory
    Iemand advies?
      donderdag 22 september 2005 @ 11:48:24 #241
    24399 TechXP
    www.biteback.be
    pi_30819025
    zit je wel in de map zelf? En hoe heet de map? En bestaat het bestand nog wel?
    pi_30819154
    uhm...wat heeft je vraag met php danwel mysql te maken?
    Ik zou trouwens ook niet weten hoe het komt.
    pi_30819172
    Jep ik zit in de map, vandaar uit probeer ik het bestand te deleten maar dat lukt niet.
    De map zelf heet mp3, want weer een submap is van httpdocs.

    Het bestand werkt nog wel, want op de site speelt ie em gewoon af. Ik kan er verder ook nix mee. Niet verwijderen, rename'en, bekijken want telkens geeft hij de 550 aan.
    pi_30819210
    quote:
    Op donderdag 22 september 2005 11:52 schreef ikke_ook het volgende:
    uhm...wat heeft je vraag met php danwel mysql te maken?
    Ik zou trouwens ook niet weten hoe het komt.
    ik wist niet waar ik em moest plaatsen, vandaar.

    zit dus blijkbaar verkeerd, maar als iemand het hier weet.
    pi_30819245
    Ik ben aan het prutsen met een contact formulier, bovenin het form word iets uit de database gehaald en word ook meegestuurd. Alles werkt behalve op 1 ding na, hij moet ook een foto mee sturen.
    Dit heb ik in het form staan (dit zijn de stukjes code die niet meewerken)

    Hiermee stuurt ie de foto mee:

    1<input name="obj_foto" type="hidden" value="'.$obj['foto'].'">


    En hiermee vraag ik hem op:

    1<img src=".$_POST['obj_foto']." alt=\"\">


    Wat is hier fout aan?
      donderdag 22 september 2005 @ 12:19:43 #246
    24399 TechXP
    www.biteback.be
    pi_30820043
    quote:
    Op donderdag 22 september 2005 11:52 schreef Hillz het volgende:
    Jep ik zit in de map, vandaar uit probeer ik het bestand te deleten maar dat lukt niet.
    De map zelf heet mp3, want weer een submap is van httpdocs.

    Het bestand werkt nog wel, want op de site speelt ie em gewoon af. Ik kan er verder ook nix mee. Niet verwijderen, rename'en, bekijken want telkens geeft hij de 550 aan.
    Dan heb je gewoon geen rechten om het te verwijderen
      donderdag 22 september 2005 @ 12:23:45 #247
    24399 TechXP
    www.biteback.be
    pi_30820171
    quote:
    Op donderdag 22 september 2005 11:55 schreef The_Cyberspace het volgende:
    Wat is hier fout aan?
    Voor de netheid (misschien dat het ook een fout geeft):
    1<img src=\"".$_POST['obj_foto']."\" alt=\"\">


    Krijg je niets terug van $_POST['obj_foto']? Wat geef je mee? Geef je wel een pad naar de foto mee?

    Wat zegt: print_r($_POST); ?
    Krijg je daar alle waarden te zien?
    pi_30823578
    Okee, het volgende:

    fopen mag om een of andere obscure reden geen files aanmaken op de server. Als de file bestaat krijgt hij toegang, als de file niet bestaat krijg ik de "Could not open local file for writing".
    De directory is chmod 0777, vanwege het testen.
    Hoe kan het nou dat je geen files kan touchen/fopen/createn in een writable folder?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $file_contents = 'some contents of a file';
    $filepath = '/path/to/where/the/file/needs/to/be/stored/and/filename.txt';

           if(!is_dir(dirname($filepath))) {
             echo '<li>Directory "'.dirname($filepath).'" does not exist</li>';
           } elseif(!is_writable(dirname($filepath))) {
             echo '<li>Directory "'.dirname($filepath).'" is not writable</li>';
           } elseif(false === ($f = fopen($filepath,'w'))) {
             echo '<li>Could not open local file for writing ('.strlen($file_contents).' bytes)</li>';
             echo '<li>   '.$filepath.'</li>';
           } else {
             fwrite($f, $file_contents);
             fclose($f);
             echo '<li>File saved: '.strlen($file_contents).' bytes</li>';
             $updates++;
           }



    -r-
    pi_30824388
    quote:
    Op donderdag 22 september 2005 12:23 schreef TechXP het volgende:

    [..]

    Voor de netheid (misschien dat het ook een fout geeft):
    [ code verwijderd ]

    Krijg je niets terug van $_POST['obj_foto']? Wat geef je mee? Geef je wel een pad naar de foto mee?

    Wat zegt: print_r($_POST); ?
    Krijg je daar alle waarden te zien?
    Zodra ik ".$_POST['obj_foto']." doe ipv <img src=".$_POST['obj_foto']." alt=\"\"> dan geeft ie netjes het pad van de foto weer zoals ie in de database staat.
    Ik wil dus een foto mee sturen en de foto word als padnaam opgeslagen in de database. Dus in het verwerkscript gaat het fout.
    Ik heb jouw stukje code ( <img src=\"".$_POST['obj_foto']."\" alt=\"\"> ) ook geprobeerd, maar hij laat simpelweg de foto niet zien. Even een voorbeeld hoe de foto in de database staat: images/foto1.jpg
    Het rare is, de rest in het verwerkscript geeft ie wel netjes weer (plaats, adres & info), dus er is ook verbinding met de database.
    Ik ben hier al een paar dagen mee aan het stoeien en ik snap er niks meer van.
    pi_30825142
    maar je kunt toch zo kijken in de source van de pagina wat er staat?
    Dus wat staat er? <img src .. en dan? wat staat daarachter?Is dat leeg?
    blijkbaar niet want er staat wel wat in die variabele, post dat stukje source dan eens....misschien doe je daar iets fout (zou niet weten wat...maar anders weet ik ook geen oplossing )
      donderdag 22 september 2005 @ 15:03:56 #251
    125047 Lamme_Sterfkanarie
    tweet tweet en dan ineens niet
    pi_30825264
    als je een foto mee wil sturen moet je
    enctype="multipart/form-data"
    toevoegen aan je form. Kan uit je tekst niet goed opmaken wat je nou precies wil.
    Ik heb het godverdomme gehad met die onkunde van je!
      donderdag 22 september 2005 @ 15:27:22 #252
    24399 TechXP
    www.biteback.be
    pi_30826033
    quote:
    Op donderdag 22 september 2005 14:38 schreef The_Cyberspace het volgende:
    Ik ben hier al een paar dagen mee aan het stoeien en ik snap er niks meer van.
    Zoals de vorige zegt... het is handig om wat meer code te krijgen en wat er nu wel in de code staat.
    pi_30836099
    Dit moet niet al te moeilijk zijn denk ik, maar ik ben even vergeten hoe het moet.

    Ik heb een tabel met de volgende velden:
    1
    2
    3
    media_id, media_type, media_file, media_artist, media_title, media_album, 
    media_year, media_genre, media_playtime, media_resx, media_resy, media_bitrate, 
    media_filesize, media_playcount


    Hieruit wil ik een X aantal resultaten terugkrijgen, maar géén dubbele waarden kunnen krijgen voor media_artist. Ik dacht dat dat met DISTINCT moest, maar dat werkt tot nu toe niet.

    De query is gewoon iets als
    1SELECT * FROM media LIMIT 0, 50 

    Maar in die 50 resultaten wil ik dus geen dubbele artiestnamen hebben.
    pi_30836477
    GROUP BY media_artist
    pi_30836713
    quote:
    Op donderdag 22 september 2005 20:51 schreef ikke_ook het volgende:
    GROUP BY media_artist
    Oja, dankjewel!
    pi_30836836
    Het script doet het inmiddels al. Ik heb het volledige pad van de foto in de database staan nu.. voorbeeld: http://www.mijndomein.nl/images/foto1.jpg

    Bedankt voor het meedenken allemaal.
    pi_30842794
    quote:
    Op donderdag 22 september 2005 14:13 schreef Roönaän het volgende:
    Okee, het volgende:

    fopen mag om een of andere obscure reden geen files aanmaken op de server. Als de file bestaat krijgt hij toegang, als de file niet bestaat krijg ik de "Could not open local file for writing".
    De directory is chmod 0777, vanwege het testen.
    Hoe kan het nou dat je geen files kan touchen/fopen/createn in een writable folder?
    [ code verwijderd ]

    -r-
    Niemand enig idee, any idea?
    pi_30843785
    quote:
    Op donderdag 22 september 2005 23:30 schreef Roönaän het volgende:

    [..]

    Niemand enig idee, any idea?
    Meestal is het zo dat er dan al een bepaald bestand bestaat dat niet de goede rechten heeft (geen write-rechten voor de webserver bijv.); maar als dat bestand niét bestaat dan zou het eigenlijk een tekort aan schijfruimte (of quota) moeten zijn.

    Is dit niet het geval, probeer dan eens middels system() (of gewoon de backticks) een 'touch bestandsnaam.txt' uit te voeren om te zien of dat weer wél werkt.
    pi_30844320
    Werkt ook niet. Snap het niet. Wat ik wel zie is dat de owner van de directory apache is.. zou dat het probleem zijn?
    Zou alleen niet uit moeten maken, want de directory is drwxrwxrwx
    pi_30845620
    Hmz. Een workaround: -> alle dirs via ftp aanmaken,, en alle files via ftp touchen :S :S :S
    pi_30853988
    Edit: mzz zag de nieuwe berichten niet. Nevermind dus

    [ Bericht 95% gewijzigd door Darkomen op 23-09-2005 12:28:45 ]
    pi_30856413
    quote:
    Op vrijdag 23 september 2005 00:16 schreef Roönaän het volgende:
    Werkt ook niet. Snap het niet. Wat ik wel zie is dat de owner van de directory apache is.. zou dat het probleem zijn?
    Zou alleen niet uit moeten maken, want de directory is drwxrwxrwx
    Dat zou je kunnen achterhalen door get_current_user() te gebruiken.
    pi_30869440
    Hoe kan ik ervoor zorgen dat ie
    1
    2
    3
    <?php
    [topic=100]
    ?>
    replaced met de link naar topic 100?
    1
    2
    3
    <?php
    $i
    [msg] = preg_replace("/\[topic=(.*?)\]/ie", ubb_topictag("\1"), $i[msg]);
    ?>


    ubb_topictag(); zorgt ervoor dat ie SELECT id FROM forums WHERE id = '$bla' doet
    pi_30870175
    hmm fok heeft dat ook /me functie werkt hier nu ook.
    pi_30870325
    preg_replace met /e pattern modifier. kijk maar in de manual.
    pi_30873468
    ok man thnx werkt
    pi_30896221
    Ik word ff echt gek. Wat doe ik fout?
    Ik heb de onderstaande query:
    1
    2
    SELECT submenu,name,id,level,file FROM b2b_modules WHERE
     level>='0' AND level<='10' AND level<>'1' AND place>'00' AND submenu='0' AND menu='1' ORDER BY place


    Maar ik krijg geen menuitems behalve met level = 0 en level =10 :|
    ik heb ook geprobeerd:
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT submenu,name,id,level,file FROM b2b_modules WHERE
     level BETWEEN '0' AND '10' AND level<>'1' AND place>'00' AND submenu='0' AND menu='1' ORDER BY place

    en

    SELECT submenu,name,id,level,file FROM b2b_modules WHERE
     level in('0,2,3,4,5,6,7,8,9,10') AND place>'00' AND submenu='0' AND menu='1' ORDER BY place
     
    pi_30897501
    If (typeof level == int) {
    waarom staan er qoutes om 0, 10 en 1?
    } else {
    waarom is level geen int?
    }

    En de test level IN ('0,1,2,...10') test letterlijk op de string '0,1,2,...10', niet op de afzonderlijke waarden 0, 1, 2,...
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30898764
    Ik haat het als het door quotejes/leestekens komt!

    [ Bericht 12% gewijzigd door Darkomen op 24-09-2005 22:03:41 ]
      FOK!-Schrikkelbaas zaterdag 24 september 2005 @ 23:29:46 #270
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30902844
    Even een crosspostje roonaan
    quote:
    ipv encoding kan je altijd obfuscaten. Dat werkt nog best okee
    wtf?
    pi_30905287
    quote:
    Op zaterdag 24 september 2005 23:29 schreef Swetsenegger het volgende:
    Even een crosspostje roonaan
    [..]

    wtf?
    Het zou misschien handig zijn als de rest van de wereld ook weet in welke context dat stond
    pi_30909372
    quote:
    Op zaterdag 24 september 2005 23:29 schreef Swetsenegger het volgende:
    Even een crosspostje roonaan
    [..]

    wtf?
    obfuscating is dat je variabelen random namen geeft. Eventueel ook classes, filenames, en andere ongein, maar ten beginnen voornamelijk variabelen. Php kan het geen ruk schelen hoe een variabele heet. Als je dus zorgt dat je je variabele namen consistent veranderd gaat het goed.
    Het voordeel ten opzichte van encoden/encrypten is dat het process eenrichting is. Tenzij je een translation table bijhoudt.
    Zelf heb ik het gebruikt voor een project dat zichzelf synchronized (qua code file) op twee server. De lokale server heeft alle bestanden clean zoals het hoort, de live versie heeft alle php files obfuscated. Via een mirror script wordt tijdens de synchronisatie de boel geobfuscate. Ik moet er nog een nette class van maken, maar die gooi ik daarna wel op mijn_site/lib.

    -r-
      FOK!-Schrikkelbaas zondag 25 september 2005 @ 11:36:57 #273
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30911116
    quote:
    Op zondag 25 september 2005 09:21 schreef Roönaän het volgende:

    [..]

    obfuscating is dat je variabelen random namen geeft. Eventueel ook classes, filenames, en andere ongein, maar ten beginnen voornamelijk variabelen. Php kan het geen ruk schelen hoe een variabele heet. Als je dus zorgt dat je je variabele namen consistent veranderd gaat het goed.
    Het voordeel ten opzichte van encoden/encrypten is dat het process eenrichting is. Tenzij je een translation table bijhoudt.
    Zelf heb ik het gebruikt voor een project dat zichzelf synchronized (qua code file) op twee server. De lokale server heeft alle bestanden clean zoals het hoort, de live versie heeft alle php files obfuscated. Via een mirror script wordt tijdens de synchronisatie de boel geobfuscate. Ik moet er nog een nette class van maken, maar die gooi ik daarna wel op mijn_site/lib.

    -r-
    Later begreep ik het inderdaad.

    Jera, was een crosspost van een andere site over het beveiligen van je scripts dmv encoding.
    pi_30912323
    quote:
    Op donderdag 22 september 2005 23:30 schreef Roönaän het volgende:

    [..]

    Niemand enig idee, any idea?
    Ik neem aan dat je de juiste mode gebruikt (namelijk w of a) in fopen(); ..
    Power perceived is power achieved.
      FOK!-Schrikkelbaas zondag 25 september 2005 @ 12:34:33 #275
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30912436
    quote:
    Op zondag 25 september 2005 12:29 schreef Modwire het volgende:

    [..]

    Ik neem aan dat je de juiste mode gebruikt (namelijk w of a) in fopen(); ..
    Hij is zend certified engineer. Ik mag toch hopen dat hij DIE fout niet maakt
    pi_30912455
    quote:
    Op zondag 25 september 2005 12:29 schreef Modwire het volgende:

    [..]

    Ik neem aan dat je de juiste mode gebruikt (namelijk w of a) in fopen(); ..
    Zelfs mode x werkt niet.

    Maar het is opgelost door de directories via ftp op te zetten ipv via php..
    pi_30913111
    quote:
    Op zondag 25 september 2005 09:21 schreef Roönaän het volgende:

    [..]

    obfuscating is dat je variabelen random namen geeft. Eventueel ook classes, filenames, en andere ongein, maar ten beginnen voornamelijk variabelen. Php kan het geen ruk schelen hoe een variabele heet. Als je dus zorgt dat je je variabele namen consistent veranderd gaat het goed.
    Het voordeel ten opzichte van encoden/encrypten is dat het process eenrichting is. Tenzij je een translation table bijhoudt.
    En op wat voor manier beveilig je dan je scripts? Een 'oud' gezegde is 'security through obscurity does not work' en ik heb het idee dat dat ook hier het geval is
    pi_30913388
    quote:
    Op zondag 25 september 2005 13:01 schreef JeRa het volgende:

    [..]

    En op wat voor manier beveilig je dan je scripts? Een 'oud' gezegde is 'security through obscurity does not work' en ik heb het idee dat dat ook hier het geval is
    Hangt van je doel af. Als je niet wilt dat anderen leren van jouw code, dan is obfuscating een hele aardige optie. Probeer jij maar eens een obfuscated stuk code goed te begrijpen.

    Punt is namelijk dat je niet altijd de mogelijkheid hebt tot ioncube of zend encoder omdat deze niet geinstalleerd is en niet geinstalleerd kan zijn. Als coder kan je dan je code encoden en decoden in je scripts zelf, maar dat is redelijk loos aangezien een beetje scriptkid dan alsnog de originele source kan opvragen. Met obfuscating kan dat niet.

    Tuurlijk is een echte encoder beter, maar voor php is die optie er gewoon niet altijd. Obfuscating is altijd mogelijk, en is in ieder geval één drempel om die irritante lame-as rip-kiddies tegen te gaan.
    pi_30974208
    Vraagje. In m'n MySQL tabel heb ik een veld van het type TIMESTAMP.
    Als ik daar de huidige tijd etc in opsla met NOW() dan krijg ik een waarde waarmee ik in m'n php niets kan omdat het geen UNIX Timestamp is. Als ik bij het invoeren van een nieuwe rij bij het TIMESTAMP veld aangeef dat het een UNIX_TIMESTAMP moet worden krijg ik wel een ander getal maar ik kan er nog steeds niets mee in m'n php.

    Wie kan mij helpen?
    Een dag niet gelachen is een dag niet geleefd.
    pi_30974521
    kan je in php toch heel veel mee.

    echo date('Y-m-d', $timestamp);



    -r-
    pi_30974754
    Uhuh, maar wat er automatisch met NOW() in het veld TIMESTAMP opgeslagen wordt is niet de UNIX_TIMESTAMP zoals PHP hem wil.

    Ik ben nu zover dat als ik:
    quote:
    $query = "SELECT naam, adres, UNIX_TIMESTAMP(tijd) FROM test";
    $resultaat = mysql_query($query) or die ("query mislukt");
    doe ik dan wel de UNIX_TIMESTAMP krijg, maar in php kan ik die dan niet benaderen (bestaat gewoon niet ofzo). Naam en adres gaan prima.
    Een dag niet gelachen is een dag niet geleefd.
    pi_30975334
    quote:
    Op dinsdag 27 september 2005 15:56 schreef Nietmachine het volgende:
    Uhuh, maar wat er automatisch met NOW() in het veld TIMESTAMP opgeslagen wordt is niet de UNIX_TIMESTAMP zoals PHP hem wil.

    Ik ben nu zover dat als ik:
    [..]

    doe ik dan wel de UNIX_TIMESTAMP krijg, maar in php kan ik die dan niet benaderen (bestaat gewoon niet ofzo). Naam en adres gaan prima.
    Moet gewoon werken hoor.
    Probeer dit eens anders...
    1
    2
    3
    4
    5
     $query = "SELECT naam, adres, UNIX_TIMESTAMP(tijd) as time_stamp FROM test";
    $resultaat = mysql_query($query) or die ("query mislukt");
    while($row = mysql_fetch_assoc($resultaat){
        echo $row['time_stamp'];
    }

    dan zou hij toch echt die timestamp moeten weergeven....
    pi_30975492
    Dank je ikke_ook, as time_stamp miste ik en daardoor werkte ie niet.
    Nu werkt ie prima. Enige jammere van een timestamp is dat ie gewijzigd wordt als je de row verandert .

    Dus eigenlijk zou je gewoon een veld int(11) moeten maken en dmv php daar een timestamp in opslaan.
    Een dag niet gelachen is een dag niet geleefd.
    pi_30975626
    Huh?Dat is niet waar hoor.... Oh wacht... ik gebruik een datetime veld.... die update die timestamp iig niet. En die kun je ook gewoon vullen met NOW() en op die andere manier uitlezen.
    pi_30975787
    Erm, nou bij mij dus echt wel. En als ik op internet zoek gebeurd het bij wel meer mensen .
    Zodra jij een row in je tabel wijzigd (dus een veld een andere waarde geeft) gaat het veld met de TIMESTAMP ook veranderen, namelijk naar de tijd van wijziging .

    Als dat bij jou niet gebeurd mag je mij wel eens vertellen hoe je dat dan doet .

    Edit: ik zie net je edit .
    Als je een datetime vult met now() krijg je dezelfde waarde als wanneer je een TIMESTAMP vult met now()? Nee toch? Ff proberen iig .

    Nogmaals edit .
    Net ff geprobeerd, daar wordt de datum normaal in opgeslagen als 2005-09-27 oid, maar je kunt hem idd uitlezen als UNIX_TIMESTAMP(tijd) en dat is wel erg fijn. Daar kun je dus beter mee werken dan met TIMESTAMP velden .

    [ Bericht 22% gewijzigd door Nietmachine op 27-09-2005 16:39:28 ]
    Een dag niet gelachen is een dag niet geleefd.
    pi_30977790
    Dat automatisch updaten van timestamp velden, dat is een extra optie die je sinds een tijdje ook in phpMyAdmin kunt aanvinken. Doe je dit niet, dan blijven de velden onaangetast als je de row verandert (mits je niet die kolom verandert )
    pi_30978852
    Ah, dat zal in mijn versie wel niet kunnen. Gebruik een iets oudere versie, klasgenoot vanmorgen had nieuwere iig .

    Mijn id veld is mijn primary key met auto increment, als ik een rij verwijder mist er natuurlijk een getal.
    Dus van 1 2 3 4 5 naar 1 2 3 5. Kun je dat weer mooi aan laten sluiten zodat het weer 1 2 3 4 wordt? Niet dat het uitmaakt opzich, gewoon benieuwd .

    Mijn timestamps werken nu prima iig dmv datetime, thanks ikke_ook .
    Een dag niet gelachen is een dag niet geleefd.
      FOK!-Schrikkelbaas dinsdag 27 september 2005 @ 19:21:48 #288
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30980689
    quote:
    Op dinsdag 27 september 2005 18:19 schreef Nietmachine het volgende:
    Mijn id veld is mijn primary key met auto increment, als ik een rij verwijder mist er natuurlijk een getal.
    Dus van 1 2 3 4 5 naar 1 2 3 5. Kun je dat weer mooi aan laten sluiten zodat het weer 1 2 3 4 wordt?
    Nee, en dat wil je ook niet.
    een id is al wat het zegt... een id welke bij een specifieke inhoud hoort. Ik kan bv dmv dat id linken naar die specifieke inhoud.

    Als je opeens id's gaat opschuiven, verwijst die link ook naar een hele andere inhoud.
    pi_30981406
    Mja, natuurlijk. Daar had ik nog niet aan gedacht. Voor het (nog) simpele ding waar ik nu mee bezig ben is dat niet zo erg maar als je tabellen gaat linken ben je de Sjaak dan natuurlijk .
    Een dag niet gelachen is een dag niet geleefd.
    pi_30985864
    quote:
    Op dinsdag 27 september 2005 19:21 schreef Swetsenegger het volgende:

    [..]

    Nee, en dat wil je ook niet.
    Dat hij dat niet wil is nog geen reden waarom het niet zou kunnen. Drop je id veld, en voeg een nieuwe AUTO_INCREMENT PRIMARY KEY 'id' toe maar niet doen dus.
      woensdag 28 september 2005 @ 04:40:54 #291
    71919 wonderer
    Hung like a My Little Pony
    pi_30990683
    De eerste keer dat ik met PHP gegenereerde plaatjes aan het werk ga... een "copyright" Alleen staat er achter de string nog een of ander maf teken dat ik graag weg wil hebben. Het staat NIET in de string zelf, dus hoe het daar komt, weet ik ook niet.
    http://www.nietoverdrijven.com/galleries/image.php?p=DSC02510.jpg&g=locatietour_september

    Enige tips over hoe een leuke lettertype te krijgen ook welkom, maar eerst dat maffe ding weg.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_30990877
    quote:
    Op woensdag 28 september 2005 04:40 schreef wonderer het volgende:
    De eerste keer dat ik met PHP gegenereerde plaatjes aan het werk ga... een "copyright" Alleen staat er achter de string nog een of ander maf teken dat ik graag weg wil hebben. Het staat NIET in de string zelf, dus hoe het daar komt, weet ik ook niet.
    http://www.nietoverdrijven.com/galleries/image.php?p=DSC02510.jpg&g=locatietour_september

    Enige tips over hoe een leuke lettertype te krijgen ook welkom, maar eerst dat maffe ding weg.
    Ik gebruik zelf een pngtje met alpha-transparantie. Dan heb je volledige controle over het lettertype en de kleur. Ik gebruik ook lichte letters met een donkere border zodat het zowel op een lichte als donkere achtergrond leesbaar is.

    zie
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_30991888
    SuperRembo kan je daar ff de code van plaatsen?
    Ik altijd wat problemen gehad met alpha-transparantie.

    Ik gebruik altijd ImageTTFText, maar dat is dus wat beperkt.

    [ Bericht 58% gewijzigd door Darkomen op 28-09-2005 09:20:28 ]
    pi_30992026
    Je maakt gewoon een transparante png en opent die met imagefrompng en plakt die over je jpg heen met imagecopy?
    pi_30994207
    quote:
    Op woensdag 28 september 2005 04:40 schreef wonderer het volgende:
    De eerste keer dat ik met PHP gegenereerde plaatjes aan het werk ga... een "copyright" Alleen staat er achter de string nog een of ander maf teken dat ik graag weg wil hebben. Het staat NIET in de string zelf, dus hoe het daar komt, weet ik ook niet.
    http://www.nietoverdrijven.com/galleries/image.php?p=DSC02510.jpg&g=locatietour_september

    Enige tips over hoe een leuke lettertype te krijgen ook welkom, maar eerst dat maffe ding weg.
    Als je nou eens je code laat zien
      FOK!-Schrikkelbaas woensdag 28 september 2005 @ 12:35:09 #296
    1972 Swetsenegger
    Egocentrische Narcist
    pi_30996228
    quote:
    Op dinsdag 27 september 2005 23:19 schreef JeRa het volgende:

    [..]

    Dat hij dat niet wil is nog geen reden waarom het niet zou kunnen. Drop je id veld, en voeg een nieuwe AUTO_INCREMENT PRIMARY KEY 'id' toe maar niet doen dus.
    Er is dus geen sql functie welke je id's opnieuw sorteert. Uiteraard kan je met kunst en vliegwerk de zooi weer sorteren .

    Ow ja, die session_id. Kom ik nog op terug
      woensdag 28 september 2005 @ 15:00:05 #297
    71919 wonderer
    Hung like a My Little Pony
    pi_31000038
    quote:
    Op woensdag 28 september 2005 11:09 schreef Ra-z het volgende:

    [..]

    Als je nou eens je code laat zien
    Goed punt... De reden waarom ik geen png gebruik, is dat de copyright niet altijd dezelfde naam is, ik zet er ook foto's van anderen neer. Ik moet dus een dynamisch iets hebben.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    $file
    =$_SERVER["DOCUMENT_ROOT"].'/galleries/'.$galname.'/'.$paths["pics"].$pic;
    $font='3';
    $header=file($galname.'/header.txt');
    $maker=strip_tags($header[1]);
    $label='(c) '.$maker;
    $h = imagefontheight($font);
    $w = imagefontwidth($font) * strlen($label);
    $image = imagecreatefromjpeg($file);
    $colorFont = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
    $size = getimagesize($file);
    $dest_x = $size[0] - $w - 5;
    $dest_y = $size[1] - $h - 5;
    imagestring($image, $font, $dest_x, $dest_y, $label, $colorFont);
    imagejpeg($image);
    imagedestroy($image);
    ?>


    Het copyright tekentje werkte ook al niet, dat werd een S met een omgekeerd dakje

    De code komt oorspronkelijk van http://www.sitepoint.com/article/watermark-images-php <-- daar, ik heb een beetje lopen kloten met de dynamische tekst dus en was nogal verrast dat het uberhaupt werkte.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_31000564
    Zit volgens mij niet in je code maar gewoon bij $maker
    pi_31001727
    quote:
    Op woensdag 28 september 2005 15:00 schreef wonderer het volgende:

    [..]

    Goed punt... De reden waarom ik geen png gebruik, is dat de copyright niet altijd dezelfde naam is, ik zet er ook foto's van anderen neer. Ik moet dus een dynamisch iets hebben.
    [ code verwijderd ]

    Het copyright tekentje werkte ook al niet, dat werd een S met een omgekeerd dakje

    De code komt oorspronkelijk van http://www.sitepoint.com/article/watermark-images-php <-- daar, ik heb een beetje lopen kloten met de dynamische tekst dus en was nogal verrast dat het uberhaupt werkte.
    En wat staat er precies in header.txt ? is het niet een brak end of line teken wat ie nog uitspuugt?

    probeer eens ipv een link uit telezen uit de headertag en dan striptags te doen een extra regel met alleen de naam ( zonder striptags ) ik denk dat het dan weg is
    pi_31003683
    quote:
    Op woensdag 28 september 2005 12:35 schreef Swetsenegger het volgende:

    [..]

    Ow ja, die session_id. Kom ik nog op terug
    Voeg me toe op msn of stuur een mailtje, zie ik het vanzelf wel
    pi_31009302
    ps. dat (c)tje is een bepaald karacter in een font, welk font? geen flauw idee
    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')