abonnement Unibet Coolblue Bitvavo
  vrijdag 5 september 2008 @ 17:32:27 #251
75592 GlowMouse
l'état, c'est moi
pi_61407292
quote:
Op vrijdag 5 september 2008 17:29 schreef CraZaay het volgende:

[..]

Dan maak je er in slakkies code $input = 'NULL' van. Het is dan string waarde 'NULL', maar wanneer je deze unescaped in je query zet is het gewoon "bla = NULL" in de query. Heel die query is namelijk al een samenstelling van strings.
Zo makkelijk is het niet. Er zal dan de string 'NULL' in je database komen in plaats van NULL. Je zou bijvoorbeeld iets kunnen doen als then $input='NULL' else $input = "'" . $db->escape($input) . "'". Maar nogmaals: waarom moeilijk doen als je het niet nodig hebt, je geen idee hebt wat je doet, en je jezelf alleen ellende op de hals haalt?

[ Bericht 0% gewijzigd door GlowMouse op 05-09-2008 17:48:12 (verduidelijkt) ]
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 5 september 2008 @ 17:45:16 #252
12880 CraZaay
prettig gestoord
pi_61407633
quote:
Op vrijdag 5 september 2008 17:32 schreef GlowMouse het volgende:

Zo makkelijk is het niet. Er zal dan de string 'NULL' in je database komen in plaats van NULL.
Nee, dat is niet correct

1
2
3
4
5
<?php
$input 
'NULL';

mysql_query("INSERT INTO table (input) VALUES ($input);");
?>


Dat levert gewoon een echt NULL-waarde in de database op. Dat is ook logisch, want MySQL krijgt dit binnen:

1"INSERT INTO table (input) VALUES (NULL);".
  vrijdag 5 september 2008 @ 17:47:44 #253
75592 GlowMouse
l'état, c'est moi
pi_61407687
Maar je hebt nooit VALUES($input) staan, omdat je dan in de problemen komt als $input een echte string is. Vandaar mijn else
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 5 september 2008 @ 17:50:29 #254
12880 CraZaay
prettig gestoord
pi_61407744
quote:
Op vrijdag 5 september 2008 17:47 schreef GlowMouse het volgende:
Maar je hebt nooit VALUES($input) staan, omdat je dan in de problemen komt als $input een echte string is. Vandaar mijn else
Dit is een versimpelde versie uiteraard, ik ga er vanuit dat je ook geen zin hebt in injection enzo en al iets met die string gedaan hebt, bijvoorbeeld ge-escaped wanneer je er wel een string in wilt hebben Het gaat mij er uiteraard vooral om dat je op deze manier in de sfeer van slakkies suggestie NULL in je db kunt krijgen. Maar zoals gezegd, ik zou er gewoon een lege string voor gebruiken.
pi_61407775
quote:
Op vrijdag 5 september 2008 17:25 schreef GlowMouse het volgende:

[..]

Dat wordt het niet, het blijft gewoon leeg terwijl je NULL moet hebben in je query.

Maar ik zou me de problemen met NULL in je db niet op de hals halen als je het niet nodig hebt. Sla gewoon een lege string op.
Met PDO werkt het wel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$db 
"";
$host "localhost";
$dbname "test";
$user "root";
$passwd "";

try {
    
$db = new PDO(sprintf("mysql:host=%s;dbname=%s"$host$dbname), $user$passwd);
} catch (
PDOException $e) {
    
printf("DB error: %s\n"$e->getMessage());
    exit(
1);
}

$sth $db->prepare("INSERT INTO testing (val) VALUES ( ? )");

$sth->bindValue(1null);
$sth->execute();
?>


1
2
3
4
5
6
7
8
mysql> select * from testing where val IS NULL
    -> ;
+----+------+
| id | val  |
+----+------+
|  2 | NULL |
+----+------+
1 row in set (0.00 sec)
  vrijdag 5 september 2008 @ 20:19:37 #256
53731 Flipper01
Addicted Dolphin
pi_61411867
Hoe kan ik een datum in MYSQL (DATETIME) zetten mbv een phpstring?
Ik heb nu namelijk de volgende waarden: $dag, $maand en $jaar en wil hier een datetime van maken.
I don't shine if you don't shine
  vrijdag 5 september 2008 @ 20:21:54 #257
75592 GlowMouse
l'état, c'est moi
pi_61411928
http://dev.mysql.com/doc/refman/5.0/en/datetime.html

"The DATETIME type is used when you need values that contain both date and time information. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format."

Dus $jaar . '-' . $maand . '-' . $dag . ' 00:00:00' voldoet, mits jaar-maand-dag netjes 4-2-2 zijn.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 6 september 2008 @ 00:45:18 #258
12880 CraZaay
prettig gestoord
pi_61419129
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten (mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
pi_61419356
quote:
Op zaterdag 6 september 2008 00:45 schreef CraZaay het volgende:
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten (mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
Moet ${dag} zijn, ipv {$dag}, of ook niet, mag beide.. mkay.
  zaterdag 6 september 2008 @ 01:07:14 #260
12880 CraZaay
prettig gestoord
pi_61419395
quote:
Op zaterdag 6 september 2008 01:04 schreef slakkie het volgende:

Moet ${dag} zijn, ipv {$dag}, of ook niet, mag beide.. mkay.
Ga slapen Het kan inderdaad allebei, maar ik vind er helemaal omheen consistenter, omdat je dan bijvoorbeeld ook {'bla' . $iets} kunt doen.
pi_61419591
Ik vind ${bla} persoonlijk prettiger, aangezien ik die notatie ken van zsh/bash en perl. Zelf maak ik nooit gebruik van ${'bla' . $iets} constructies.
  zaterdag 6 september 2008 @ 07:30:56 #262
53731 Flipper01
Addicted Dolphin
pi_61420911
quote:
Op zaterdag 6 september 2008 00:45 schreef CraZaay het volgende:
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten (mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
Thnx! Dit vind ik zelf ook wel de meest handige schrijfwijze
I don't shine if you don't shine
pi_61429000
Weet iemand hier hoe ik op mijn site de 5 laatste posts van een blog, bijvoorbeeld van www.luxist.com kan krijgen?

[ Bericht 3% gewijzigd door Cracka-ass op 06-09-2008 17:06:03 ]
  zaterdag 6 september 2008 @ 18:29:13 #264
75592 GlowMouse
l'état, c'est moi
pi_61431385
Via hun RSS-feed is het makkelijkst. Met een RSS-parser als magpie is dat niet moeilijk.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61475001
Ik heb een vraagje m.b.t MySQL preformance en opzet.

Stel ik wil voor een site bepaalde modules gebruiken, de gebruiker kiest 1 van een select aantal modules om te gebruiken voor het geen waar de site voor bedoeld is echter is het mogelijk dat deze module bepaalde settings wil opslaan, dit is per module verschillend. En aangezien ik simpel en snel modules wil kunnen toevoegen en of verwijderen is mijn vraag als volgt.

Is het handiger om voor deze opzet per module een apparte tabel aan te maken, of 1 tabel gebruiken waarin ik deze data vermeld? per regel een 'setting'

ik zal wel weer wazig zijn, als je het niet begrijpt wat ik bedoel probeer ik het nog duideljker te vermelden!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61475173
Je maakt een koppeltabel met een module-id, een setting-id en de waarde aan.

Zo kan je namelijk ook heel makkelijk generieke settings aanmaken.

[ Bericht 34% gewijzigd door #ANONIEM op 08-09-2008 15:48:07 ]
pi_61475299
Klopt maar wat raad je aan, zit namelijk zelf te denken aan 1 global tabel voor alle plugins ipv per plugin een tabel.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61475749
quote:
Op maandag 8 september 2008 15:52 schreef Chandler het volgende:
Klopt maar wat raad je aan, zit namelijk zelf te denken aan 1 global tabel voor alle plugins ipv per plugin een tabel.
1 global tabel
pi_61482058
Ik heb even gekeken naar het NULL-probleem, maar ik kan het niet oplossen... Op het internet heb ik gezien dat een aantal mensen er ook problemen mee hadden, maar de oplossingen die er gegeven zijn lossen het probleem niet op... Ook de oplossingen die jullie aandragen bieden geen oplossing.

Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.

En is het daarnaast mogelijk om het volgende op een goede manier voor elkaar te krijgen?

1
2
3
4
5
6
7
<?php
echo    "<select name='print' style='width: 387px'>
            <option>-</option>     
            <option  if(isset($print) && ($print==1)){echo selected='selected';} value='1'>Ja</option>
            <option  if(isset($print) && ($print==0)){echo selected='selected';} value='0'>Nee</option>
        </select>;"
?>

Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
Aan dit bericht kunnen geen rechten worden ontleend.
  maandag 8 september 2008 @ 21:23:57 #270
12880 CraZaay
prettig gestoord
pi_61484096
quote:
Op maandag 8 september 2008 20:17 schreef poepeneesje het volgende:
Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.
Niet gaan klooien, zorgt alleen maar voor meer problemen. Vraag ze de tijd gewoon goed in te stellen. Of krijg je gewoon de GMT tijd terug? Daar kun je wel mee rekenen uiteraard, als je die altijd krijgt.
quote:
Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
Dit zou ik doen (met code-tag, syntax highlighter hier kan het niet aan anders):

1
2
3
4
5
6
7
8
9
<?php
echo("
    <select name='print' style='width: 387px'>
        <option>-</option>     
        <option <?= (isset($print) && ($print == 1)) ? 'selected=\'selected\'' : '' ?> value='1'>Ja</option>
        <option <?= (isset($print) && ($print == 0)) ? 'selected=\'selected\'' : '' ?> value='0'>Nee</option>
    </select>
");
?>


edit: Je hoeft dit overigens niet allemaal met PHP te echo'en; je kunt prima in een PHP bestand alleen HTML hebben staan en slechts op enkele plaatsen PHP-tags (bijv <?= time() ?> om de tijd te laten zien).

[ Bericht 5% gewijzigd door CraZaay op 08-09-2008 21:57:24 ]
pi_61484427
quote:
Op maandag 8 september 2008 20:17 schreef poepeneesje het volgende:
Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.
De tijd zal ingesteld staan op GMT en blijbaar staat de server ook in de UK, dus moet je die omrekenen naar CET, zie http://dev.mysql.com/doc/(...)#function_convert-tz
quote:
En is het daarnaast mogelijk om het volgende op een goede manier voor elkaar te krijgen?
[ code verwijderd ]

Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
Als je na gaat denken over PHP die PHP moet genereren zit je op het verkeerde pad. Dat is niet wat je wil, punt.

Wat je wil is een functie waar je argumenten aan meegeeft en die gewoon kant en klare html teruggeeft.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
function SelectBoxHTML($name$options$selected) {
    
    
$html "<select name=\"$name\" style=\"width: 387px\" onchange=\"this.form.submit();\">\n";
    foreach (
$options as $value => $text) {
        
$html .= "<option";
        if (
$value == $selected) {
            
$html .= " selected=\"selected\"";
        }
        
$html .= " value=\"$value\">$text</option>\n";
    }
    
    
$html .= "</select>\n";
    return 
$html;
}

print 
"<html><body><form>";
print 
"<p>Printen? " SelectBoxHTML('print', array("1" => "Ja""0" => "Nee""2" => "Misschien"), $_GET['print']) . "</p>";
print 
"<p>Favoriete kleur? " SelectBoxHTML('fav_kleur', array("rood" => "rood""geel" => "geel""pimpelpaars" => "pimpelpaars""zwart" => "zwart"), $_GET['fav_kleur']) . "</p>";

print 
"</form></body></html>";
?>


Voila, stateful selectboxes.
  maandag 8 september 2008 @ 21:55:33 #272
12880 CraZaay
prettig gestoord
pi_61485334
quote:
Op maandag 8 september 2008 21:31 schreef Farenji het volgende:

Als je na gaat denken over PHP die PHP moet genereren zit je op het verkeerde pad. Dat is niet wat je wil, punt.
Dat wil 'ie ook niet getuige z'n voorbeeld Hij wil gewoon binnen een stukje html wat php opnemen (zie mijn suggestie).
pi_61486458
Nice heren . Ik ga er morgen mee verder knutselen! Alvast bedankt .
Aan dit bericht kunnen geen rechten worden ontleend.
pi_61526787
Ik ben een complete noob op het gebied van webdesign, maar ik zou graag mijn kennis uitbreiden. Moet ik PHP leren? Of hebben jullie ander advies? En als ik een klein php scriptje kopieer van een how-to website dan geeft ie een witte pagina in Firefox, en zie je de code zelf in Internet Explorer. Wie kan mij op weg helpen?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')