Maar die echo heb je dus niet nodig, hè. Of heb je die nu ook niet meer?quote:Op zaterdag 24 juni 2006 00:18 schreef Tijn het volgende:
"echo grafiek->test()" werkt wel, maar dat hele "return $output" is nergens voor nodig. Of in elk geval, dat doet niet wat ik dacht dat het deed.
Niet?quote:Op zaterdag 24 juni 2006 08:50 schreef JeRa het volgende:
[..]
Maar die echo heb je dus niet nodig, hè.
Nee, nu echo() je wat je terugkrijgt van de functie, maar de functie geeft niets terug. De functie output zelf al naar de clientquote:
Van deze pagina:quote:Op zaterdag 24 juni 2006 11:16 schreef Tijn het volgende:
Weet je dat zeker, JeRa? Want zonder echo, zie ik dus ook geen zwart vierkantje, maar met echo wel.
Dus als het goed is moet het prima werken zonder echo. Wat heb je nu aan (relevante) code?quote:The imagepng() outputs a GD image stream (image) in PNG format to standard output (usually the browser) or, if a filename is given by the filename it outputs the image to the file.
Zeer bizarquote:Op zaterdag 24 juni 2006 11:16 schreef Tijn het volgende:
[edit] Ah, het is gefixed. Ik heb nu het hele $output-verhaal uit de test-functie gehaald en de echo uit showGraph.php en ik zie nog steeds een zwart vierkantje
Dat kan met de ob_* functies:quote:Op zaterdag 24 juni 2006 11:36 schreef Tijn het volgende:
M'n fout was dat ik de output van imagepng ergens in opving en dat wilde outputten. Dat werkt niet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $im = imageCreate(100, 100); $backgroundColor = imageColorAllocate($im, 255, 255, 255); $textColor = imageColorAllocate($im, 0, 0, 0); imageString($im, 1, 5, 5, "TVP", $textColor); ob_start(); imagePng($im); $pngData = ob_get_contents(); ob_end_clean(); header("Content-type: image/png"); echo $pngData; ?> |
Yups, maar ik zoek er nog eentje die achteraf een wachwoord toevoegd aan een pdf file, eigenlijk niet te vindenquote:Op zaterdag 24 juni 2006 10:50 schreef fokME2 het volgende:
http://dev.rnabv.nl/pdf/
Pdfjes maken met php is leuk![]()
tvp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function submit_value($value){ $value++; $query="INSERT into TABLE (id,value) VALUES(0,'".$value."')"; if(mysql_query($query)){ return $value; }else{ submit_value($value); } } $value=0; //Laatste record uit de db $value=submit_value($value); //header ?> |
Kijk naar je functie naar het else-gedeelte. Hij voert daar de functie nogmaals uit, maar doet er verder niets mee (hij returnt zonder waarde). Vergelijk het met het voorbeeld dat ik gaf van een recursieve functiequote:Op zaterdag 24 juni 2006 20:31 schreef Swetsenegger het volgende:
[ code verwijderd ]
Ok, dit werkt. Behalve dan wanneer de functie daadwerkelijk gaat recursieveren return $value; niets terug geeft. Wanneer de value direkt geinsert kan worden, krijg ik WEL de verwachtte waarde terug
Dat snap ik niet helemaal. Hij roept toch gewoon die funtie aan en die functie returned als er geinsert is.quote:Op zaterdag 24 juni 2006 20:34 schreef JeRa het volgende:
[..]
Kijk naar je functie naar het else-gedeelte. Hij voert daar de functie nogmaals uit, maar doet er verder niets mee (hij returnt zonder waarde). Vergelijk het met het voorbeeld dat ik gaf van een recursieve functieje zult dus 'return submit_value(...)' moeten doen daar.
Je wilt dat jouw functie iets retourneert. Dat doet ie niet als er niet wordt voldaan aan de if-conditiequote:Op zaterdag 24 juni 2006 20:35 schreef Swetsenegger het volgende:
[..]
Dat snap ik niet helemaal. Hij roept toch gewoon die funtie aan en die functie returned als er geinsert is.
1 2 3 4 5 6 7 8 9 10 11 12 13 | function submit_value($value){ do { $value++; $query = "INSERT INTO mytable (id, value) VALUES (0,'". $value ."')"; $success = mysql_query($query); if (!$success && mysql_errno() != MYSQL_ER_DUP_ENTRY) { die(sprintf("Error insering value. (number: %s, description: %s)", mysql_errno(), mysql_error()); } } while (!$success); return $value; } |
Dat probeerde ik in het vorige deel ook al duidelijk te makenquote:Op zaterdag 24 juni 2006 21:21 schreef SuperRembo het volgende:
Het is in ieder geval een totaal overbodig gebruik van een recursieve functie. Als je het in een loopje zet is het veel duidelijker wat er gebeurd.
[ code verwijderd ]
Nee, een integer of een string. Zie de Array-sectie in de PHP manualquote:Op zaterdag 24 juni 2006 21:31 schreef Tijn het volgende:
Is het mogelijk om floats te gebruiken als keys van een array, ipv integers?
Ja, daar zat ik al te zoeken, maar omdat ik niet kon vinden wat ik zocht, dacht ik, ik vraag het toch even hierquote:Op zaterdag 24 juni 2006 21:32 schreef JeRa het volgende:
[..]
Nee, een integer of een string. Zie de Array-sectie in de PHP manual
Ah, maar DEZE snap ik welquote:Op zaterdag 24 juni 2006 21:21 schreef SuperRembo het volgende:
Het is in ieder geval een totaal overbodig gebruik van een recursieve functie. Als je het in een loopje zet is het veel duidelijker wat er gebeurd.
[ code verwijderd ]
Fuck, daar had ik helemaal nog niet aangedacht.quote:Op zondag 25 juni 2006 11:36 schreef SuperRembo het volgende:
Als het MSSQL is dan kan je subquery's gebruiken, en dan kan het dus in 1 statement. Dan heb je de hele loop in PHP niet nodig.
Ah, hier staat wat meer informatie.quote:Op zondag 25 juni 2006 13:07 schreef Tijn het volgende:
Bij sommige GD-functies, zoals deze of deze, zie ik staan "Note: This function is only available if PHP is compiled with the bundled version of the GD library."
Ik heb op m'n Ubuntu-server het pakket "php5-gd" geinstalleerd en op zich werkt zowel PHP5 als GD prima. Behalve deze functies, die werken niet. Wat betekent precies dat "bundled" en hoe installeer ik dat?
Gewoon op MSDN.quote:Op zondag 25 juni 2006 14:05 schreef Swetsenegger het volgende:
[..]
Fuck, daar had ik helemaal nog niet aangedacht.
Waar kan ik een beetje duidelijke documentatie vinden over mssql? Heeft microsoft ergens een manual online staan op msdn ofzo?
Is het niet mogelijk alles gewoon in één formulier te zetten en het tweede gedeelte d.m.v. javascript in- en uit te schakelen? Dit is trouwens een PHP/MySQL-topicquote:Op zondag 25 juni 2006 18:19 schreef gieling het volgende:
Even een vraag,
Ik heb in een reactie pagina twee forms, het tweede form wordt pas beschikbaar als er aan een aantal (bij de vraagstelling onbelangrijke) voorwaarden zijn voldaan. Echter heb ik, als het tweede form gebruikt wordt, ook informatie nodig die in een textbox in het eerste form zijn ingevuld.
Is het dus mogelijk om bij een submit van het tweede form, de data van de textbox uit het eerste form ook te gebruiken?
Mm, ja zoiets. Ja het zit in een php document vandaar dat ik het hier vroegquote:Op zondag 25 juni 2006 18:23 schreef JeRa het volgende:
[..]
Is het niet mogelijk alles gewoon in één formulier te zetten en het tweede gedeelte d.m.v. javascript in- en uit te schakelen? Dit is trouwens een PHP/MySQL-topic
Nou, dan krijg je toch gewoon zoiets?quote:Op zondag 25 juni 2006 18:27 schreef gieling het volgende:
[..]
Mm, ja zoiets. Ja het zit in een php document vandaar dat ik het hier vroeg
1 2 3 4 5 6 7 8 9 | <!-- Onderdeel 1 --> (inputs, selects, textareas, etc) <input type="submit" /> <!-- Onderdeel 2 - met javascript ingeschakeld op bepaalde voorwaarden --> (inputs, selects, textareas, etc) <input type="submit" /> </form> |
Hmz, maar ik heb de value welke verhoogd wordt indien er een unique violation is wel terug krijgenquote:Op zondag 25 juni 2006 11:36 schreef SuperRembo het volgende:
Als het MSSQL is dan kan je subquery's gebruiken, en dan kan het dus in 1 statement. Dan heb je de hele loop in PHP niet nodig.
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 | $path_to_script = "test.php?category=$category"; if(is_numeric($_GET['start'])) $start = $_GET['start']; if (empty($start)) $start=0; $vorige=$start-3; $volgende=$start+3; $result = mysql_query("SELECT * FROM tbl_pic WHERE category= '$category' ORDER BY id ASC LIMIT $start, 3"); $aantal = mysql_num_rows($result); $max = $aantal; if($start <= '0') { echo "<h7>Vorige"; } else { echo "<h7><a href=\"$path_to_script&start=$vorige\">Vorige</a>"; } echo " | "; if($start >= $max) { echo "Volgende</h7><br /><br />"; } else { echo "<a href=\"$path_to_script&start=$volgende\">Volgende</a></h7><br /><br />"; } while ($row = @mysql_fetch_array($result)) { $id = $row['id']; $category = $row['category']; $pic = $row['pic']; $link = $row['link']; echo "<a href='" . $link . "' rel='lightbox'><img src='" . $pic . "' class='img'></a><br /><br />"; } ?> |
Uiteraard, want je gaat er altijd vanuit dat er meer dan 3 entries zijn.quote:Op maandag 26 juni 2006 11:46 schreef Vlek het volgende:
Dat idee had ik ook al, maar dat werkt dus niet.
trouwens, hij doet het alleen als er 0, 1, 2 of 3 entry's instaan, bij 4 of meer is er geen probleem.
MSSQL:quote:Op maandag 26 juni 2006 11:20 schreef Swetsenegger het volgende:
[..]
Hmz, maar ik heb de value welke verhoogd wordt indien er een unique violation is wel terug krijgen
1 2 3 4 | SELECT @id = IsNull(Max(id) + 1, 1) FROM mytable INSERT INTO mytable (id, value) VALUES (@id, 'NewValue') SELECT @id |
1 2 3 4 | if ( reqest.length > <?=$max_uri_length;?> ) alert('the request was too long'); else return false; } |
Bedankt!quote:Op maandag 26 juni 2006 13:20 schreef SuperRembo het volgende:
[..]
MSSQL:
[ code verwijderd ]
Je kunt er eventueel nog een transactie omheen zetten.
Regular expressions zijn tof.quote:Op maandag 26 juni 2006 16:27 schreef Swetsenegger het volgende:
[..]
Ik zoek een functie is_hex maar tot mijn verbazing bestaat die gewoon niet
1 2 3 4 | { return (preg_match('#^[0-9a-f]+$#i', $string) > 0); } |
Deze matcht ook decimalenquote:Op maandag 26 juni 2006 16:53 schreef JeRa het volgende:
[..]
Regular expressions zijn tof.
[ code verwijderd ]
Vanzelfsprekend.quote:
Dan krijg je zoiets:quote:ik check op 0x nu.
1 2 3 4 | { return (preg_match('#^0x[0-9a-f]+$#i', $string) > 0); } |
1 2 3 4 | { //... } |
1 2 3 4 | { $bericht = "Welkom" . $_SESSION['aanhef']; } |
1 |
http://nl3.php.net/manual/en/function.mysql-query.phpquote:Op dinsdag 27 juni 2006 15:40 schreef Siegfried het volgende:
Ok mooi
[ code verwijderd ]
Dit staat in een functie..
Kan ik iets doen dat ie 'true' returned als de sql-query is uitgevoerd, en 'false' als ie is mislukt?
Het antwoord is zeer waarschijnlijk ja.. Maar hoe? Ik zit te goochelen maar kom er niet uit.. ?
quote:For SELECT, SHOW, DESCRIBE or EXPLAIN statements, mysql_query() returns a resource on success, or FALSE on error.
For other type of SQL statements, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
1 2 3 4 5 | $voornaam = $_POST["voornaam"]; $tussenvoegsels = $_POST["tussenvoegsels"]; $achternaam = $_POST["achternaam"]; ?> |
1 2 3 4 5 6 | $query1 = "UPDATE leraar SET voornaam = '".$_POST["voornaam"]."', tussenvoegsels = '".$_POST["tussenvoegsels"]."', achternaam = '".$_POST["achternaam"]."'"; ?> |
1 2 3 4 5 6 7 | php $query1 = "UPDATE leraar SET voornaam = '".$voornaam"', tussenvoegsels = '".$tussenvoegsels."', achternaam = '".achternaam."'"; ?> |
1 2 3 4 5 6 | php $voornaam = addslashes($_POST["voornaam"]); $tussenvoegsels = addslashes($_POST["tussenvoegsels"]); $achternaam = addslashes($_POST["achternaam"]); ?> |
Hint: met strtotime() kun je leuke dingen doen zoals '+3 days'quote:Op woensdag 28 juni 2006 14:02 schreef markiemark het volgende:
Ik heb een vraagje. Ben bezig met een rooster programmaatje waarin ik vakantie dagen kan uitrekenen. Ik heb een begin datum en een eind datum. Nu wil ik aan de hand van deze gegeven een lijstje genereren met de dagen die binnen de 2 data vallen. Iemand een idee hoe dat gaat, ik vermoed met de date() en mktime() functie samen met een array, maar ik kom er niet uit..
1 2 3 4 5 6 7 8 9 10 11 12 13 | if ($cookie != NULL) { // max cookie tijd (3 maand) $tim = 60*60*24*31*3; // zet cookies setcookie("_user_cookie_id_", $_SESSION['user_id'], $tim); setcookie("_user_cookie_user_", $_SESSION['username'], $tim); setcookie("_user_cookie_status_", $_SESSION['userstatus'], $tim); setcookie("_user_cookie_md5_", $_SESSION['userhash'], $tim); } |
hmmmz ok, maar dan wil ik wel eerst dat aantal dagen weten..quote:Op woensdag 28 juni 2006 14:07 schreef JeRa het volgende:
[..]
Hint: met strtotime() kun je leuke dingen doen zoals '+3 days'
Met mktime() kun je twee unix timestamps maken. Hoe je dit doet staat gewoon in de PHP manualquote:Op woensdag 28 juni 2006 14:19 schreef markiemark het volgende:
[..]
hmmmz ok, maar dan wil ik wel eerst dat aantal dagen weten..
Ook met addslashes werkt t niet. We hebben ook al een en ander geprobeerd met str_replace();, maar ook daarmee komen we geen steek verder. Hij blijft dezelfde warning geven en de data niet aanpassen in de database.quote:Op woensdag 28 juni 2006 11:04 schreef Tijn het volgende:
Volgens mij zijn daar de functies addslashes() en stripslashes() voor bedacht.
Als je de ingevoerde data van je form eerst door een addslashes() haalt voordat je het verder processed en uiteindelijk bij het presenteren van die data 'em weer door stripslashes haalt, zou het goed moeten komen met de quotes.
line 146 ziet er als volgt uitquote:Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 4: Incorrect syntax near '\'., SQL state 37000 in SQLExecDirect in D:\Webapps\LocalUser\ibkprofiel\leraar_bewerken.php on line 146
1 2 3 | odbc_exec($sqlconnect, $querie1); ?> |
Dat stripslashes() is helemaal niet nodig, je doet een addslashes() zodat de DBMS niet in de war raakt met de scheidingsquotes van de string en quotes in de string zelf.quote:Op woensdag 28 juni 2006 11:04 schreef Tijn het volgende:
Volgens mij zijn daar de functies addslashes() en stripslashes() voor bedacht.
Als je de ingevoerde data van je form eerst door een addslashes() haalt voordat je het verder processed en uiteindelijk bij het presenteren van die data 'em weer door stripslashes haalt, zou het goed moeten komen met de quotes.
Ok, ik ga het anders doen... Vorige probleem is te lastig. De oplossing is voor mij makkelijker... Hoop ik.quote:Op woensdag 28 juni 2006 14:21 schreef JeRa het volgende:
[..]
Met mktime() kun je twee unix timestamps maken. Hoe je dit doet staat gewoon in de PHP manualvervolgens kun je bepalen hoeveel dagen daar tussen zitten door het verschil tussen de timestamps te delen door het aantal seconden per dag.
Twee dingen:quote:Op woensdag 28 juni 2006 14:32 schreef WurM het volgende:
[..]
Ook met addslashes werkt t niet. We hebben ook al een en ander geprobeerd met str_replace();, maar ook daarmee komen we geen steek verder. Hij blijft dezelfde warning geven en de data niet aanpassen in de database.
Omdat mijn stagegenoot er voornamelijk mee bezig is geweest, wist ik niet precies welke warning gegeven werd, maar ik vermoed nu dat er een probleem is met de server-instellingen. De warning:
[..]
line 146 ziet er als volgt uit
[ code verwijderd ]
Heb ik gelijk wat server-instellingen betreft of denken jullie dat er iets anders aan de hand is, wat wel op te lossen is? (We hebben geen toegang tot de server instellingen)
PHP kan dit voor zover ik weet niet door standaardfuncties laten oplossen. Je zult weeknummers aan maanden moeten koppelen en aan de hand van de dag (1-31) bepalen tot welke maand de gezochte datum behoort.quote:Op woensdag 28 juni 2006 14:41 schreef markiemark het volgende:
[..]
Ok, ik ga het anders doen... Vorige probleem is te lastig. De oplossing is voor mij makkelijker... Hoop ik.
Ik heb:
- het weeknummer
- de datum (dag)
- het jaartal
ik wil:
- de maand
hoe doe ik dit?
Typoquote:Op woensdag 28 juni 2006 14:42 schreef JeRa het volgende:
[..]
Twee dingen:
1) Je gebruikt querie1 ipv query1
UPDATE leraar SET opleidingnaam = 'V&M', voornaam = 'test\'', tussenvoegsels = '', achternaam = '';quote:2) Doe eens een echo $querie1 om te zien hoe die query eruit ziet?
hmz zo'n php held ben ik ook niet... kun je een aanzetje geven?quote:Op woensdag 28 juni 2006 14:44 schreef JeRa het volgende:
[..]
PHP kan dit voor zover ik weet niet door standaardfuncties laten oplossen. Je zult weeknummers aan maanden moeten koppelen en aan de hand van de dag (1-31) bepalen tot welke maand de gezochte datum behoort.
Was het niet zo dat je in MSSQL single quotes escapet door ze dubbel neer te zetten? Dus:quote:Op woensdag 28 juni 2006 14:49 schreef WurM het volgende:
[..]
Typo![]()
[..]
UPDATE leraar SET opleidingnaam = 'V&M', voornaam = 'test\'', tussenvoegsels = '', achternaam = '';
Dus ziet er wel goed uit
1 |
Weet je zeker dat je niet meer informatie hebt dan wat je net zei? Het is namelijk absoluut geen mooie oplossing.quote:Op woensdag 28 juni 2006 14:49 schreef markiemark het volgende:
[..]
hmz zo'n php held ben ik ook niet... kun je een aanzetje geven?
bereken welke datum de maandag van week 1 is (week 1 is de week die 4 dagen van het nieuwe jaar in zich heeft. Dus is 1 jan op een woensdag, dan start week 1 op de maandag ervoor: 30 dec).quote:Op woensdag 28 juni 2006 14:41 schreef markiemark het volgende:
[..]
Ok, ik ga het anders doen... Vorige probleem is te lastig. De oplossing is voor mij makkelijker... Hoop ik.
Ik heb:
- het weeknummer
- de datum (dag)
- het jaartal
ik wil:
- de maand
hoe doe ik dit?
Fixedquote:Op woensdag 28 juni 2006 14:51 schreef JeRa het volgende:
[..]
Was het niet zo dat je in MSSQL single quotes escapet door ze dubbel neer te zetten? Dus:
[ code verwijderd ]
Backslash als escape gaat niet werken dacht ik
Maar een geslashte variabele moet je toch weer strippen voordat je 'em weergeeft? Anders heb je slashes in je string, toch?quote:Op woensdag 28 juni 2006 14:41 schreef JeRa het volgende:
[..]
Dat stripslashes() is helemaal niet nodig, je doet een addslashes() zodat de DBMS niet in de war raakt met de scheidingsquotes van de string en quotes in de string zelf.
True, maar waarom zou je 'm dan addslashen?quote:Op woensdag 28 juni 2006 16:21 schreef Tijn het volgende:
[..]
Maar een geslashte variabele moet je toch weer strippen voordat je 'em weergeeft? Anders heb je slashes in je string, toch?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | if (get_magic_quotes_gpc()) { //... //Hiervoor kun je stripslashes_deep gebruiken } //Ophalen van variabelen via GPC-variabelen (en nooit via //de global scope als register_globals op On staat) $var1 = $_POST['var1']; $var2 = intval($_GET['var2']); //Uiteraard gebruik je beter beschrijvende namen //Het controleren van de user input if ($var2 <= 0) { //error } //Het gebruiken van de variabelen in queries $query = 'UPDATE tabel SET tekst = \'' . mysql_real_escape_string($var1) . '\''; //Het weergeven van de variabelen op een pagina echo html_entities($var1); echo $var2; |
Of je nou addslash of mysql_real_escape_string gebruikt maakt toch niet zoveel uit, of wel?quote:Op woensdag 28 juni 2006 16:31 schreef JeRa het volgende:
[..]
True, maar waarom zou je 'm dan addslashen?
mysql_real_escape_string houdt rekening met de character set van de verbinding en die van multibyte strings en zet geloof ik newlines om naar de geëscapete versie. addslashes() vervangt domweg een enkele quote naar backslash-quote.quote:Op woensdag 28 juni 2006 16:52 schreef Tijn het volgende:
[..]
Of je nou addslash of mysql_real_escape_string gebruikt maakt toch niet zoveel uit, of wel?
Nee, want het is dus alleen voer voor de DBMS die 'm vervolgens zonder slashes in de database opslaatquote:Op woensdag 28 juni 2006 17:00 schreef Tijn het volgende:
En als je 'em zo in de query zet, hoef je 'em niet te stripslashen op het moment dat je 'em uitleest?
1 |
htmlentities of htmlspecialcharsquote:Op donderdag 29 juni 2006 15:59 schreef Desdinova het volgende:
is er een mogelijkheid om debiele characters uit word om te zetten naar valid-html tekens? ik heb t over bijv. die single quotes ( ala ' ) die neeergens op je toetsenbord te vinden zijn, maar wel gebruikt worden in word bij het 'quoten' van een woordje of iets.
Met phpinfo() kun je meteen zien welke extensions worden geladen. Klopt dat een beetje met wat je in php.ini hebt ingesteld? Wat zegt de Apache-log na een restart? (PHP logt foutmeldingen via Apache daar naartoe)quote:Op donderdag 29 juni 2006 16:38 schreef Swetsenegger het volgende:
Ik heb een WAMP installatie op een machine gedaan.
Ik heb de PHP.ini van een andere machine afgekopieerd waar alles werkt en deze op de nieuwe machine geplaatst.
Path gecontroleerd voor de extensions en die kloppen.
gecontroleerd of de mssql.dll aanwezig is in de extensions folder en die is aanwezig.
machine herstart
zal morgen even vergelijken tussen de twee machinesquote:Op donderdag 29 juni 2006 22:10 schreef JeRa het volgende:
[..]
Met phpinfo() kun je meteen zien welke extensions worden geladen. Klopt dat een beetje met wat je in php.ini hebt ingesteld? Wat zegt de Apache-log na een restart? (PHP logt foutmeldingen via Apache daar naartoe)
htmlentities kan niet want ik moet de html code wel bewaren zeg maar.. ff htmlspecialchars checkenquote:Op donderdag 29 juni 2006 16:39 schreef Swetsenegger het volgende:
[..]
htmlentities of htmlspecialchars
Wat ga je doen met die html code dan?quote:Op vrijdag 30 juni 2006 09:40 schreef Desdinova het volgende:
[..]
htmlentities kan niet want ik moet de html code wel bewaren zeg maar.. ff htmlspecialchars checken
Als je data hebt met daarin HTML code én characters die nog geen entities zijn (en het wel moeten zijn) dan wordt het een stuk lastiger. Je zult om de tags heen moeten werken en de volgende keer iets anders moeten verzinnen zodat het wél werkt. Een goede character encoding kiezen kan al veel schelen bijvoorbeeldquote:Op vrijdag 30 juni 2006 09:40 schreef Desdinova het volgende:
[..]
htmlentities kan niet want ik moet de html code wel bewaren zeg maar.. ff htmlspecialchars checken
unable to load dynamic library 'path/naar/php_mssql.dll'quote:Op donderdag 29 juni 2006 22:10 schreef JeRa het volgende:
[..]
Met phpinfo() kun je meteen zien welke extensions worden geladen. Klopt dat een beetje met wat je in php.ini hebt ingesteld? Wat zegt de Apache-log na een restart? (PHP logt foutmeldingen via Apache daar naartoe)
Die tekst zet je toch in db?quote:Op vrijdag 30 juni 2006 13:47 schreef Desdinova het volgende:
@ swets + jera
ik heb zo'n rich text editor die in html format de text genereerd. maar men is zo snugger om dingen te schrijven in word en dat vervolgens te kopieren, waardoor mijn code niet meer html valid is.
Zo'n rich text editor maakt dan kennelijk een fout. Of je nou iets uit een ander document kopieert of niet, dat maakt niets uit - de editor bepaalt het output formaat. Heb je verder al geprobeerd character encodings overal goed te zetten? (dus in de editor, hoe PHP het verwerkt en de database)quote:Op vrijdag 30 juni 2006 13:47 schreef Desdinova het volgende:
zo'n rich text editor
Gebruik de INSERT...SELECT-syntax.quote:Op zondag 2 juli 2006 14:35 schreef Schepseltje het volgende:
Ik weet niet of het in dit topic past, maar ik zit met een schijnbaar eenvoudige vraag waar ik niet uit kan komen (google en got al doorgespit)
Ik zoek een query waarmee ik in een mysql tabel een row kan kopieeren, waarbij uiteraard de ID wel moet worden aangepast. Kan dit?
Omslachtiger okay, maar foutgevoeliger zeker niet. Zoiets kun je doen:quote:Op zondag 2 juli 2006 14:55 schreef Schepseltje het volgende:
via losse queries is het wel mogelijk, maar das omslachtiger en foutgevoeliger
1 2 3 4 | SELECT ... FROM tabel WHERE id = zoveel INSERT INTO tabel ...etc UNLOCK TABLES |
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 54 55 56 57 58 59 60 61 | function upload($_FILES){ $dir = "/usr/home/user/domains/domainl/public_html/webimg/"; $documentname = $_FILES['file']['name']; if (file_exists($dir.$documentname) != 0){ $documentname = imagerename($documentname); } if (move_uploaded_file($_FILES['file']['tmp_name'], $dir.$documentname)){ echo "uploading.<br>"; $ext = strtolower(substr($_FILES['file']['name'],-3)); switch ($ext){ case "jpg": case "jpeg": $src_img = imagecreatefromjpeg($dir.$documentname); break; case "png": $src_img = imagecreatefrompng($dir.$documentname); break; case "gif": $src_img = imagecreatefromgif($dir.$documentname); break; } $origw = imagesx($src_img); $origh = imagesy($src_img); $maxwidth = 120; $maxheight = 120; $diff = $origw/$maxwidth; if (($origh/$diff) > $maxheight){ //na resize is file te hoog. dus hoogte moet aangehouden worden. $new_w = $origw / $diff; $new_h = $maxheight; } else { $new_w = $maxwidth; $new_h = $origh / $diff; } $dst_img = imagecreate($new_w,$new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); switch ($ext){ case "jpg": case "jpeg": imagejpeg($dst_img, $dir."_tn".$documentname); break; case "png": imagepng($dst_img, $dir."_tn".$documentname); break; case "gif": imagegif($dst_img, $dir."_tn".$documentname); break; } } else { echo "failed.<br>"; } return $documentname; } ?> |
Geen camelcaps gaan gebruiken waar het er niet is hèquote:Op zondag 2 juli 2006 16:07 schreef SuperRembo het volgende:
Kijk eens naar imageCreateTrueColor() en imageCopyResampled().
Dan heb je over een tijd toch een probleem, aangezien de PHP-developers van plan zijn steeds meer onderdelen (zoals functienamen) case sensitive te makenquote:Op zondag 2 juli 2006 16:17 schreef SuperRembo het volgende:
Functie-namen zijn in php case insensitive, dus kan je ze leesbaarder maken door camelCase of PascalCase te gebruiken.
thanks!quote:Op zondag 2 juli 2006 16:08 schreef JeRa het volgende:
@Desdinova
Komt door het gebrek aan kleuren. In plaats van imagecreate() gebruik je beter imagecreatetruecolor()
[..]
Geen camelcaps gaan gebruiken waar het er niet is hèzo mooi is PHP niet, Java wel.
He dat werkt! Maar ik snap niet helemaal hoe dat GROUP BY er voor kan zorgen dat hij bij SUM(visits) niet alles gaat optellen. Idd bedanktquote:
sum telt alles op per row, dus niet het totaal, aangezien "group by" ervoor zorgt dat er meerdere waardes worden 'gebundeld' tot 1 row, telt hij deze waardes bij elkaar op.. daarom werkt sum() ook alleen als je "group by" (of iets soortgelijks) gebruiktquote:Op zondag 2 juli 2006 22:18 schreef wipes66 het volgende:
[..]
He dat werkt! Maar ik snap niet helemaal hoe dat GROUP BY er voor kan zorgen dat hij bij SUM(visits) niet alles gaat optellen. Idd bedankt![]()
Oh, op die manier. Ik dacht namelijk dat sum() synoniem voor count() was.quote:Op zondag 2 juli 2006 22:22 schreef Schepseltje het volgende:
[..]
sum telt alles op per row, dus niet het totaal, aangezien "group by" ervoor zorgt dat er meerdere waardes worden 'gebundeld' tot 1 row, telt hij deze waardes bij elkaar op.. daarom werkt sum() ook alleen als je "group by" (of iets soortgelijks) gebruikt
SELECT DISTINCT muzikant.muzikant_naam FROM planning, songs, muzikant, bezetting WHERE muzikant.muzikant_id = bezetting.muzikant_id AND bezetting.song_id=songs.song_id AND songs.song_id=planning.song_id AND planning.repetitie_id='$repetitie_id_tmp'quote:Op zondag 2 juli 2006 22:25 schreef beerten het volgende:
Ik heb een query die gegevens uit 4 tabellen haalt.
Nu wil ik graag dat uit de tabel muzikant de unique namen worden gehaald. Met onderstaande query worden alle namen opgehaald die bij een bepaalde repetitie_id horen.
Dit zou moeten kunnen met DISTINCT. Maar hoe verwerk ik DISTINCT in onderstaande query?
SELECT planning.*, songs.*, muzikant.*, bezetting.* FROM planning, songs, muzikant, bezetting WHERE muzikant.muzikant_id = bezetting.muzikant_id AND bezetting.song_id=songs.song_id AND songs.song_id=planning.song_id AND planning.repetitie_id='$repetitie_id_tmp'
hmm stomquote:Op maandag 3 juli 2006 10:22 schreef hamkaastosti het volgende:
http://nl2.php.net/manual/nl/function.substr.php
bijvoorbeeld
str_replace?quote:Op maandag 3 juli 2006 13:39 schreef Desdinova het volgende:
er is toch een simpelere variant van preg_replace? waarmee ik bijv. een matchend stukje in een variabele kan vervangen?
quote:Deze functie vervangt alle voorkomens van needle in haystack met de gegeven str. Als je geen al te toffe vervangingsregels nodig hebt, wordt aangeraden om altijd deze functie te gebruiken in plaats van ereg_replace() or preg_replace().
1 2 3 4 5 | INSERT INTO tabel VALUES ... ; INSERT INTO tabel VALUES ... ; INSERT INTO tabel VALUES ... ; ... |
quote:INSERT statements that use VALUES syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas. Example:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Ik had 'm ook al gevonden. Thanks.quote:Op woensdag 5 juli 2006 13:33 schreef SuperRembo het volgende:
Meerdere rows inserten in 1 statement kan met MySQL:
[..]
quote:Uw configuratie bestand bevat instellingen (root zonder wachtwoord) die betrekking hebben tot de standaard MySQL account. Uw MySQL server draait met deze standaard waardes, en is open voor ongewilde toegang, het wordt dus aangeraden dit op te lossen.
volgens mij maakt die eerste niet zo veel uit, alles gebeurt toch lokaal (het is alleen om te experimenteren en te leren zeg maar) maar wat moet ik doen met de tweede?quote:De mbstring PHP extensie werd niet gevonden en u lijkt een multibyte charset te gebruiken. Zonder de mbstring extensie kan phpMyAdmin strings niet correct splitsen wat tot onverwachte resultaten kan leiden.
robots.txtquote:Op donderdag 6 juli 2006 19:55 schreef Desdinova het volgende:
weet iemand n beetje n tutorial die wat uitlegt over hoe je de beste (betere) resultaten boekt bij searchengines? wat voor dingen je kan doen om beter gevonden te worden?
ik ben me ervan bewust dat er geen wondermiddelen zijnmaar daar vraag ik ook niet om. ik heb wel s iets gehoord over robots.txt (wat me verder niks zegt) en noindex, follow, en weet ik veel wat
iemand die me een duw de goeie richting in kan geven?
en als je PHP op een Mac heb, is het dan veel anders?quote:Op donderdag 6 juli 2006 19:31 schreef HuHu het volgende:
Voor die tweede melding zul je de mbstring extentie moeten toevoegen aan je PHP installatie.
Die staat in de map \php\extentions. Onder Windows dan hè, en het bestand heet php_mbstring.dll.
Dat bestandje moet je dan volgens mij in de root map van je PHP installatie gooien, dus in \php\.
En de regel:
;extension=php_mbstring.dll
uit commentaar halen in je php.ini.
Content, websites die naar jouw website linken en <h1> op iedere pagina. Dat is wat je nodig hebt om gevonden te worden. robot.txt heeft daar geen enkele invloed op. Maar over welke website hebben we het eigenlijk?quote:Op donderdag 6 juli 2006 19:55 schreef Desdinova het volgende:
weet iemand n beetje n tutorial die wat uitlegt over hoe je de beste (betere) resultaten boekt bij searchengines? wat voor dingen je kan doen om beter gevonden te worden?
Download gewoon MAMPquote:Op donderdag 6 juli 2006 22:36 schreef super-muffin het volgende:
[..]
en als je PHP op een Mac heb, is het dan veel anders?
Gewoon een session_id en een session_hash (md5(rondom)) in een cookie stoppen. En dan iedere keer kijken of het ook zo in de database staat. Controleren op ip is ook wel zo veilig.quote:Op vrijdag 7 juli 2006 14:51 schreef ExCibular het volgende:
Ik ben bezig met een simpel login scriptje dat werkt mbv sessies. Ik heb een werkend script ik zit alleen een beetje met de beveiliging.
Wat voor soort informatie kan je het best gebruiken om de integriteit van de sessie te bepalen. Wat voor soort informatie moet ik meesturen en wat voor checks moet ik doen om te bepalen of de sessie goed is?
Dan zullen de mappen en bestanden waarschijnlijk iets anders heten. Verder zal het wel ongeveer hetzelfde werken.quote:Op donderdag 6 juli 2006 22:36 schreef super-muffin het volgende:
[..]
en als je PHP op een Mac heb, is het dan veel anders?
Dank je wel. Met session_hash, bedoel je gewoon een random reeks die vervolgens md5 in het cookie wordt gestopt?quote:Op vrijdag 7 juli 2006 16:59 schreef wipes66 het volgende:
[..]
Gewoon een session_id en een session_hash (md5(rondom)) in een cookie stoppen. En dan iedere keer kijken of het ook zo in de database staat. Controleren op ip is ook wel zo veilig.
Ik heb overigens bij mijn login systeem ook dat je verplicht bent om een locatie op te geven als een 'Infinite session' wilt, zodat je in een sessie overzicht ook kan zien waar je allemaal bent ingelogd.
1 2 3 4 5 6 7 8 9 10 | if(isset($_COOKIE)) { print_r($_COOKIE); } else { include("login.php"); } ?> |
Niks, waarschijnlijk is $_COOKIE gewoon een lege array.quote:Op zaterdag 8 juli 2006 15:06 schreef mschol het volgende:
wat doe ik verkeerd ??
opzich toch raar als ik de cookies zelf handmatig heb verwijderd??quote:Op zaterdag 8 juli 2006 17:37 schreef wipes66 het volgende:
[..]
Niks, waarschijnlijk is $_COOKIE gewoon een lege array.
1 2 3 4 5 6 7 8 9 10 | if ($_GET['order'] = 'km' ) { $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY km, tijd'); } elseif ($_GET['order'] = 'tijd') { $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY tijd, km'); } ?> |
== ipv = dusquote:Op zondag 9 juli 2006 19:51 schreef qu63 het volgende:
[ code verwijderd ]
de url is gewoon blabla.php?order=km of order=tijd. alleen werkt dat dus niet. wat is er verkeerd aan bovenstaand stukje
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | if ($_REQUEST['do'] == 'login') { globalize($_REQUEST, array( 'vb_login_username' => STR, 'vb_login_password' => STR, 'vb_login_md5password' => STR, 'vb_login_md5password_utf' => STR, 'url' => STR, 'postvars' )); globalize($_POST, array( 'logintype' => STR, )); // can the user login? $username = &$vb_login_username; $password = &$vb_login_password; $md5password = &$vb_login_md5password; $md5password_utf = &$vb_login_md5password_utf; $strikes = verify_strike_status($username); if ($username == '') { eval(print_standard_error('error_badlogin')); } if (!verify_authentication($username, $password, $md5password, $md5password_utf, true)) { // check password exec_strike_user($bbuserinfo['username']); if ($logintype === 'cplogin' OR $logintype === 'modcplogin') { // log this error if attempting to access the control panel require_once('./includes/functions_log_error.php'); log_vbulletin_error($username, 'security'); } $bbuserinfo = array( 'userid' => 0, 'usergroupid' => 1 ); eval(print_standard_error('error_badlogin')); } exec_unstrike_user($username); $DB_site->query("DELETE FROM " . TABLE_PREFIX . "session WHERE sessionhash = '" . addslashes($session['dbsessionhash']) . "'"); $session['sessionhash'] = fetch_sessionhash(); $session['dbsessionhash'] = $session['sessionhash']; $DB_site->query(" INSERT INTO " . TABLE_PREFIX . "session (sessionhash, userid, host, idhash, lastactivity, styleid, loggedin, bypass, useragent) VALUES ('" . addslashes($session['sessionhash']) . "', " . intval($bbuserinfo['userid']) . ", '" . addslashes(SESSION_HOST) . "', '" . addslashes(SESSION_IDHASH) . "', " . TIMENOW . ", $session[styleid], 1, " . iif ($logintype === 'cplogin', 1, 0) . ", '" . addslashes(USER_AGENT) . "') "); vbsetcookie('sessionhash', $session['sessionhash'], 0); if ($nosessionhash == 1) { // if user is working through cookies, blank out the sessionhash $shash = $session['sessionhash'] = ''; $surl = $session['sessionurl'] = ''; $surlJS = $session['sessionurl_js'] = ''; } else { $shash = $session['sessionhash']; $surl = $session['sessionurl'] = 's=' . $session['sessionhash'] . '&'; $surlJS = $session['sessionurl_js'] = 's=' . $session['sessionhash'] . '&'; } // admin control panel or upgrade script login if ($logintype === 'cplogin') { $permissions = cache_permissions($bbuserinfo, false); $bbuserinfo['permissions'] = &$permissions; if ($permissions['adminpermissions'] & CANCONTROLPANEL) { // update CSS preferences if administrator wants to globalize($_POST, array('cssprefs' => STR)); if ($cssprefs != '') { $cssprefs = str_replace(array('..', '/', '\\'), '', $cssprefs); // get rid of harmful characters if ($cssprefs != '' AND @file_exists("./cpstyles/$cssprefs/controlpanel.css")) { $DB_site->query("UPDATE " . TABLE_PREFIX . "administrator SET cssprefs = '" . addslashes($cssprefs) . "' WHERE userid = $bbuserinfo[userid]"); } } $cpsession = fetch_sessionhash(); $DB_site->query("INSERT INTO " . TABLE_PREFIX . "cpsession (userid, hash, dateline) VALUES ($bbuserinfo[userid], '" . addslashes($cpsession) . "', " . TIMENOW . ")"); vbsetcookie('cpsession', $cpsession, 0); if (!$_REQUEST['cookieuser'] AND empty($_COOKIE[COOKIE_PREFIX . 'userid'])) { vbsetcookie('userid', $bbuserinfo['userid'], 0); vbsetcookie('password', md5($bbuserinfo['password'] . 'L43312e7'), 0); } } } // moderator control panel login if ($logintype === 'modcplogin') { $permissions = cache_permissions($bbuserinfo, false); $bbuserinfo['permissions'] = &$permissions; include_once('./includes/functions_calendar.php'); if (can_moderate() OR can_moderate_calendar()) { $cpsession = fetch_sessionhash(); $DB_site->query("INSERT INTO " . TABLE_PREFIX . "cpsession (userid, hash, dateline) VALUES ($bbuserinfo[userid], '" . addslashes($cpsession) . "', " . TIMENOW . ")"); vbsetcookie('cpsession', $cpsession, 0); if (!$_REQUEST['cookieuser'] AND empty($_COOKIE[COOKIE_PREFIX . 'userid'])) { vbsetcookie('userid', $bbuserinfo['userid'], 0); vbsetcookie('password', md5($bbuserinfo['password'] . 'L43312e7'), 0); } } } if ($url == 'login.php' OR $url == "$vboptions[forumhome].php" OR strpos($url, 'do=logout') !== false) { $url = "$vboptions[forumhome].php?$surl"; } else { $url = fetch_replaced_session_url($url); } $postvars = construct_hidden_var_fields($postvars); $temp = strpos($url, '?'); if ($temp) { $formfile = substr($url, 0, $temp); } else { $formfile = $url; } eval(print_standard_redirect('redirect_login')); |
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 | // this was a _REQUEST action but where do we all login via request? if ($_POST['do'] == 'login') { $vbulletin->input->clean_array_gpc('p', array( 'vb_login_username' => TYPE_STR, 'vb_login_password' => TYPE_STR, 'vb_login_md5password' => TYPE_STR, 'vb_login_md5password_utf' => TYPE_STR, 'postvars' => TYPE_STR, 'cookieuser' => TYPE_BOOL, 'logintype' => TYPE_STR, 'cssprefs' => TYPE_STR, )); // can the user login? $strikes = verify_strike_status($vbulletin->GPC['vb_login_username']); if ($vbulletin->GPC['vb_login_username'] == '') { eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes))); } if (!verify_authentication($vbulletin->GPC['vb_login_username'], $vbulletin->GPC['vb_login_password'], $vbulletin->GPC['vb_login_md5password'], $vbulletin->GPC['vb_login_md5password_utf'], $vbulletin->GPC['cookieuser'], true)) { ($hook = vBulletinHook::fetch_hook('login_failure')) ? eval($hook) : false; // check password exec_strike_user($vbulletin->userinfo['username']); if ($vbulletin->GPC['logintype'] === 'cplogin' OR $vbulletin->GPC['logintype'] === 'modcplogin') { // log this error if attempting to access the control panel require_once(DIR . '/includes/functions_log_error.php'); log_vbulletin_error($vbulletin->GPC['vb_login_username'], 'security'); } $vbulletin->userinfo = array( 'userid' => 0, 'usergroupid' => 1 ); eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes))); } exec_unstrike_user($vbulletin->GPC['vb_login_username']); // create new session process_new_login($vbulletin->GPC['logintype'], $vbulletin->GPC['cookieuser'], $vbulletin->GPC['cssprefs']); // do redirect do_login_redirect(); } |
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 | // connect to database mysql_connect("localhost","root","1234"); mysql_select_db("c107p13"); // turn off auto-commit mysql_query("START TRANSACTION"); mysql_query("SET autocommit=0"); // look for a transfer $sql1 = "UPDATE accounts SET balance = balance + " . $_POST['amt'] . " WHERE id = " . $_POST['to']; $result1 = mysql_query($sql1); echo "Q1: ".$result1."<br>"; echo mysql_affected_rows($result1); // subtract $$ from source account $sql2 = "UPDATE accounts SET balance = balance - " . $_POST['amt'] . " WHERE id = " . $_POST['from']; $result2 = mysql_query($sql2); // assuming no errors, commit transaction echo mysql_num_rows($result2); if($result1 && $result2) { mysql_query("commit"); } else { mysql_query("rollback"); } echo "$result1"; echo "$result2"; ?> |
MySQL geeft trouwens aan hoeveel rows er echt gewijzigd zijn. Deze queryquote:Returns the number of affected rows on success, and -1 if the last query failed.
1 |
1 |
1 2 3 4 5 6 7 8 9 | $result = mysql_query($query); while ($row = mysql_fetch_object($result)){ if (isset($stukjes)){ $stukjes .= ", "; } $stukjes .= "\"".$row->Name."\""; } $string = "bla[1] = [".$stukjes."]"; |
maar als je dan naar de vorige foto wil heb je een probleem volgens mijquote:Op maandag 10 juli 2006 16:50 schreef Desdinova het volgende:
dat moet waarschijnlijk wel kunnen met limit.
tellen bij hoeveelste foto je bent, en dan in je query zetten limit ".$fotonummer.",1
op die manier begintie met tellen na de huidige foto,en paktie de eerstvolgende.
Zelf prutsen is ook een vak.....ik heb een beginnetje maar ik loop nu helemaal vast. Ik kan nu de karma van 1 baan berekenen maar ik wil graag een lijst met karma met bijbehorende tracknaam. Op dit moment doe ik dit dus:quote:Op zondag 9 juli 2006 12:44 schreef Oldbie het volgende:
Sinds een tijdje heb ik een gameserver met een MySQL database voor records e.d.
Nu wil ik graag een PHP pagina die voor mij e.e.a. weergeeft maar ik ben zo vreselijk n00b met MySQL en PHP dat ik wil vragen of hier iemand zo vriendelijk wil zijn om voor mij de code te schrijven.
Als ik helemaal out of line ben hoor ik dat wel.
Ik denk dat het vrij eenvoudig is omdat ik niet al te veel wil. Lay out is totaal onbelangrijk omdat het puur voor prive gebruik is en het wordt niet zichtbaar voor anderen.
Het gaat om het volgende:
Ik heb een table (rs_karma) met vier fields (Id, Score, PlayerId, ChallengeId) Screenshot
Ik heb een table (challenges) met vijf fields (Id, Uid, Name, Author, Environment) Screenshot
Field score (uit rs_karma) van iedere ChallengeId moet bij elkaar opgeteld worden (waarbij 0 gezien moet worden als -1; een 1 is dan +1).
Op mijn pagina zou ik dan een lijst willen zien van iedere challenge (naam wordt verkregen aan de hand van rs_karma.ChallengeId welke overeenkomt met challenges.Id) met hun totaalscore.
Zou iemand zo vriendelijk willen zijn om een mooi scriptje te bouwen zodat ik kan bepalen welke challenge een lage score heeft en dus van de server verwijderd mag worden?
Ik zou je eeuwig dankbaar zijn
als het zou helpen wil ik best een backup maken van de database en die naar je toe mailen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // connect to database mysql_connect("localhost","***","***"); mysql_select_db("aseco"); // calculate karma of track $pquery = "SELECT * FROM rs_karma WHERE Score=1 AND ChallengeId=3"; $pres = mysql_query($pquery); $plus = mysql_num_rows($pres); $mquery = "SELECT * FROM rs_karma WHERE Score=0 AND ChallengeId=3"; $mres = mysql_query($mquery); $minus = mysql_num_rows($mres); $avg_score = $plus - $minus; echo $avg_score; ?> |
Helaas nietquote:Op maandag 10 juli 2006 20:29 schreef qu63 het volgende:
[afbeelding]
hij werkt alleen niet met gifjes
Bedankt!quote:Op maandag 10 juli 2006 13:23 schreef SuperRembo het volgende:
mysql_num_rows gaat over het aantal rows in de resultset, maar die heb je niet bij een update. Hiervoor moet je mysql_affected_rows gebruiken:
[..]
MySQL geeft trouwens aan hoeveel rows er echt gewijzigd zijn. Deze query
[ code verwijderd ]
zal alltijd aangeven dat mysql_affected_rows = 0 is, ook al bestaan er rows met myvalue = 1.
[edit]
Ik zie dat je in je script wel mysql_affected_rows gebruikt en niet mysql_num_rows?
Wat ik gedaan heb bij een oude site is thumbs maken terwijl je de foto's upload en dan opslaan als t_filename.jpg. Is dat een optie?quote:Op maandag 10 juli 2006 19:06 schreef wonderer het volgende:
Ik heb een tijdje terug een fotoalbum gemaakt zonder database. Ik maak met photoshop een auto gallery en upload de images en thumbs dan in de mapjes.
Nu word ik dat een beetje zat en ik vroeg me af of ik die thumbs niet on the fly kon maken. Niet terwijl je ze upload, maar op het moment dat ze getoond worden op het scherm.
Is dat handig? Kost dat niet te veel cpu/geheugen? Duurt het niet te lang? Er worden maximaal 30 thumbs getoond en het bronbestand is hooguit 640x480 (100kb).
Leukquote:Op maandag 10 juli 2006 20:20 schreef guitarist.nl het volgende:
[afbeelding]
http://test.guitarist.nl/width/share_icon.php
String = Tekst
Color = Tekstkleur
Location = Tekstpositie (up of bottom)
Image = Locatie van het plaatje
[afbeelding]
[afbeelding]
quote:Op maandag 10 juli 2006 20:20 schreef guitarist.nl het volgende:
[afbeelding]
http://test.guitarist.nl/width/share_icon.php
String = Tekst
Color = Tekstkleur
Location = Tekstpositie (up of bottom)
Image = Locatie van het plaatje
[afbeelding]
[afbeelding]
quote:Op dinsdag 11 juli 2006 11:29 schreef Siegfried het volgende:
[..]
Leuk
Share die code eens als je wilt?
is het opensource?quote:Op dinsdag 11 juli 2006 13:40 schreef SuperRembo het volgende:
Leuk dat je nu standaard met GD ook animated gifjes kan maken.
Daar heb ik ooit nog zelf een php class voor gemaakt. Die knipt stukjes uit een niet-animated gifje en plakt ze daarna met nieuwe gif control-blocks aan elkaar tot een nieuwe animated gif.
[afbeelding]
ik vind jouw script leuker eigenlijkquote:Op dinsdag 11 juli 2006 15:38 schreef SuperRembo het volgende:
Nog niet. Maar als het direct met GD kan, dan kan je beter niet mijn script gebruiken. Het is ongetwijfeld langzamer en 't heeft flink wat beperkingen.
Is ook een optie (hoewel dan bij de eerste keer viewen, want ik upload via ftp). Maar het zou zo leuk ruimte schelen op de server.quote:Op dinsdag 11 juli 2006 06:42 schreef Libris het volgende:
[..]
Wat ik gedaan heb bij een oude site is thumbs maken terwijl je de foto's upload en dan opslaan als t_filename.jpg. Is dat een optie?
Doe maar niet, dan schaam ik me voor mijn baggercodequote:Op dinsdag 11 juli 2006 11:29 schreef Siegfried het volgende:
[..]
Leuk
Share die code eens als je wilt?
1 2 3 | genoeg tijd gehad, de code te kopiëren :) nu kun je mij mailen als je wilt :") |
Oh? Jammer dat niemand even de moeite neemt om mij op weg te helpenquote:Op dinsdag 11 juli 2006 18:11 schreef Siegfried het volgende:
Joh, het is niet voor niets een topic voor dummies
1 2 3 4 5 6 7 8 9 10 11 | $res = mysql_query($sql) or die("Kan de gegevens niet uit de Database halen"); if (mysql_num_rows($res) >= 1) { while ($row = mysql_fetch_array($res)) { // Hier roep je elke record aan } } else { echo "Er zijn nog geen records"; } |
Staat onder een copyright, met een linkje, daar kun je um downloadenquote:Op dinsdag 11 juli 2006 20:49 schreef qu63 het volgende:
include("image_anigif.php");
post die ook ff dan guitarist
Thanksquote:Op dinsdag 11 juli 2006 18:55 schreef Siegfried het volgende:
* Siegfried helpt Oldbie op weg
Je moet met een while-loop werken Oldbie
[ code verwijderd ]
ja hoe werkt dat precies? is het gewoon een hidden field ofzoiets die je een random waarde geeft, alsmede een selectie afbeeldingen met dezelfde tekens maar dan wat onduidelijker?quote:Op woensdag 12 juli 2006 09:59 schreef Swetsenegger het volgende:
Hoe heet zo'n 'ik tik een cijfer uit een plaatje over om te bewijzen dat ik geen bot ben' ding ook alweer?
-edit- captcha
Dingesquote:Op woensdag 12 juli 2006 10:13 schreef Desdinova het volgende:
[edit] @ dinges met snelste mysql_resultaat[/edit]
Klinkt logisch! Ga er gelijk mee aan de slag.quote:$sql_styles = "SELECT * FROM css_selectedstyle WHERE `id` = '".$id."' LIMIT 0,1";
$result = mysql_query($sql_styles);
$row = mysql_fetch_object($result);
elke databasekolom van de gepakte rij is nu bereikbaar via $row->kolomnaam. Door de limit zou hij meteen moeten stoppen na de eerste vondst
Ik had het inderdaad over codeer-snelheid. Naja, en het feit dat ik geen lelijke omwegen wil maken om 1 waarde uit een database te vissen.quote:[edit2]
misschien dat mysql_fetch_array() ipv mysql_fetch_object() sneller is. dan benader je je kolommen met $row['kolomnaam'].
dat zou je eigenlijk ff moeten benchmarken. maar dit is verwaarloosbaar want je hebt t volgens mij op codeer-snelheid en niet over executiontime
Het werkt eigenlijk ernstig simpel.quote:Op woensdag 12 juli 2006 10:15 schreef Desdinova het volgende:
[..]
ja hoe werkt dat precies? is het gewoon een hidden field ofzoiets die je een random waarde geeft, alsmede een selectie afbeeldingen met dezelfde tekens maar dan wat onduidelijker?
1 2 3 4 5 | if (($_POST['km_nieuw'] > 0) && ($_POST['tijd_nieuw'] >0) && ($_POST['prijs_nieuw'] >0)) { mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].')'); $aangepast++; } ?> |
1 |
Van wat ik nu van jouw methode begrijp, gebruik je dus alleen de hash (en niet de SID) om een session te verifiëren? Lijkt me niet slim (makkelijk te misbruiken) en nogal overbodig.quote:Op woensdag 12 juli 2006 10:31 schreef mschol het volgende:
ben aan het kutten met sessies en het onthouden van een login doe ik nu als volgt:
bij login wordt:een hash aangemaakt (md5 van huidige tijd + IP adres) de hash + Session id worden samne met IP en timestamp in database opgeslagen er wordt een cookie gezet met daarin het hash nummer
is dit een correcte manier om sessies te gebruiken (veilig genoeg enzo?)
de SID is in mijn script me echte session id die door de server wordt gegenereerd en ik neem aan dat je die juist NIET in je cookie wilt hebben staan?quote:Op woensdag 12 juli 2006 12:13 schreef JeRa het volgende:
[..]
Van wat ik nu van jouw methode begrijp, gebruik je dus alleen de hash (en niet de SID) om een session te verifiëren? Lijkt me niet slim (makkelijk te misbruiken) en nogal overbodig.
Beter maak je een goede random SID aan en sla je dié op in een cookie. In de database sla je diezelfde SID op samen met andere dingen die je wilt verifiëren (zoals IP-adres, user agent, etc).
er staat nu name="km_nieuw[$i]"quote:Op woensdag 12 juli 2006 12:10 schreef JeRa het volgende:
@qu63
Je zult ook in het formulier moeten aangeven dat je meer regels (dus een array) wilt:
[ code verwijderd ]
Waarom zou je die niet in je cookie willen hebben staan? Dat doen werkelijk alle sites die met SIDs werken. Bovendien is die hash die je nu opslaat het equivalent van een session ID, dus sla je die alsnog op.quote:Op woensdag 12 juli 2006 12:18 schreef mschol het volgende:
[..]
de SID is in mijn script me echte session id die door de server wordt gegenereerd en ik neem aan dat je die juist NIET in je cookie wilt hebben staan?
Als ik jouw IP-adres weet dan kan ik een tijdsbestek gaan afscannen door heel veel hashes uit te proberen en zodoende jouw session te stelen. Érg gevoelig voor hijacking dus, wat je bij een SID niet hebt.quote:en hoe wil je een md5 hash vn IP + tijd gaan misbruiken (tijd is op seconde precies)
Doe eens een print_r($_POST) en kom erachter wat er nu eigenlijk naar PHP wordt gestuurdquote:Op woensdag 12 juli 2006 12:19 schreef qu63 het volgende:
[..]
er staat nu name="km_nieuw[$i]"
ik probeerde net al wat met foreach, maar dat ging ook niet helemaal
hmm ik ging er juist vanuit dat je je session id nooit moet opslaan in je cookie...quote:Op woensdag 12 juli 2006 12:30 schreef JeRa het volgende:
[..]
Waarom zou je die niet in je cookie willen hebben staan? Dat doen werkelijk alle sites die met SIDs werken. Bovendien is die hash die je nu opslaat het equivalent van een session ID, dus sla je die alsnog op.
[..]
Als ik jouw IP-adres weet dan kan ik een tijdsbestek gaan afscannen door heel veel hashes uit te proberen en zodoende jouw session te stelen. Érg gevoelig voor hijacking dus, wat je bij een SID niet hebt.
Wat heb je nou aan een random session ID als je er nog een random hash (nog een session ID) tegenaan gooit? Laat die hele hash achterwege en gebruik gewoon één session IDquote:Op woensdag 12 juli 2006 12:33 schreef mschol het volgende:
[..]
hmm ik ging er juist vanuit dat je je session id nooit moet opslaan in je cookie...
en dat je dus een eigen radom iets moet hebben om je session id op te halen...
maar die hash zou je opzich moeten kunnen blijven gebruikenm, mits je er maar genoeg unieke dingen in propt tohch (ik doe eens gek: username+wachtwoord +email er ook nog bij)
[tijd_nieuw] => 1 [km_nieuw] => 1 [prijs_nieuw] => 1quote:Op woensdag 12 juli 2006 12:30 schreef JeRa het volgende:
[..]
Doe eens een print_r($_POST) en kom erachter wat er nu eigenlijk naar PHP wordt gestuurddie $i kun je dus achterwege laten.
En dat was in een formulier met namen voor de velden als km_nieuw[], tijd_nieuw[], etc? Laat eens de HTML zienquote:Op woensdag 12 juli 2006 12:53 schreef qu63 het volgende:
[..]
[tijd_nieuw] => 1 [km_nieuw] => 1 [prijs_nieuw] => 1
en dat terwijl ik in totaal 5 nieuwe regels heb ingevuld.
quote:Op woensdag 12 juli 2006 12:59 schreef JeRa het volgende:
[..]
En dat was in een formulier met namen voor de velden als km_nieuw[], tijd_nieuw[], etc? Laat eens de HTML zien
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | function form() { if ($_GET['order'] == 'km' ) { $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY km, tijd'); } elseif ($_GET['order'] == 'tijd') { $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY tijd, km'); } else { $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY km, tijd'); } <form method="get" action="update.php"> <input type="text" name="an" value="0" maxlength="2" size="1"><input type="submit" value="Submit"> </form> <form method="post" action="update.php"> <table> <tr><td><a href="update.php?order=tijd">Tijd (uren)</a></td><td><a href="update.php?order=km">Afstand (km)</a></td><td>Prijs</td></tr> php while ($row = mysql_fetch_assoc($result)) { echo '<tr><td>'.$row['tijd'].'</td>'; echo '<td>'.$row['km'].'</td>'; echo '<td><input type="text" name=prijs['.$row['tijd'].']['.$row['km'].'] value='.$row['prijs'].'>'; echo '<input type="hidden" name=oud['.$row['tijd'].']['.$row['km'].'] value='.$row['prijs'].'></td></tr>'; } for($i = 0; $i < $_GET['an']-1; $i++) { echo "<tr><td><input name=\"tijd_nieuw[$i]\"></td>"; echo "<td><input name=\"km_nieuw[$i]\"></td>"; echo "<td><input name=\"prijs_nieuw[$i]\"></td></tr>"; } <tr><td><input name="tijd_nieuw"></td> <td><input name="km_nieuw"></td> <td><input name="prijs_nieuw"></td></tr> </table> <input type="submit" value="Update"> </form> php } function update() { $aangepast = 0; echo print_r($_POST); nieuwe waarden? if (($_POST['km_nieuw'] > 0) && ($_POST['tijd_nieuw'] >0) && ($_POST['prijs_nieuw'] >0)) { mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].')'); $aangepast++; } //Bij het begin beginnen :) reset($_POST['oud']); //De array bevat tijd, afstand en prijs. //Dat is niet in 1 lus uit te lezen, dus doen we het met twee. while (list($tijd, $tmp) = each($_POST['oud'])) { while (list($km, $prijs) = each($tmp)) { //Als er een andere prijs staat dan zetten we die in de database if($_POST['prijs'][$tijd][$km] != $prijs) { mysql_query('UPDATE qu63 SET prijs = '.intval($_POST['prijs'][$tijd][$km]).' WHERE tijd = '.$tijd.' AND km = '.$km); $aangepast++; } } } $refresh = 3; echo '<meta http-equiv="refresh" content="'.$refresh.'; URL="'.$_SERVER['PHP_SELF'].'" />'; echo 'Update uitgevoerd, '.$aangepast.' waarden aangepast.<br />'; echo 'Refresh in '.$refresh.' seconden.'; } //Een eventuele addslashes ongedaan maken. Niet echt nuttig met alleen cijfers, maar wel zo duidelijk. if (get_magic_quotes_gpc()) { function stripslashes_deep(&$value, $key) { if(is_array($value)) { array_walk($value, 'stripslashes_deep'); } else { $value = stripslashes($value); } } array_walk($_GET, 'stripslashes_deep'); array_walk($_POST, 'stripslashes_deep'); array_walk($_COOKIE, 'stripslashes_deep'); } mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_DATABASE); { if (count($_POST)) { update(); } else { form(); } ?> |
de whilie-loop werkt wel, die wordt gewoon geupdatequote:Op woensdag 12 juli 2006 13:33 schreef JeRa het volgende:
@qu63
Zet de veldnamen tussen aanhalingstekens, grote kans dat het dan wél werkt.
Sowieso doe je er goed aan alle attributes tussen aanhalingstekens te zetten.
1 2 3 4 5 | echo "<tr><td><input name=\"tijd_nieuw[$i]\"></td>"; echo "<td><input name=\"km_nieuw[$i]\"></td>"; echo "<td><input name=\"prijs_nieuw[$i]\"></td></tr>"; } |
Dus je hebt wel verschillende waarden uit $_POST, maar je weet niet hoe je de INSERT/UPDATE-query moet schrijven voor meerdere waarden? Met een INSERT kun je standaard meerdere values meegeven (zie de MySQL manual) maar voor een UPDATE zul je een loopje moeten maken over alle waarden.quote:Op woensdag 12 juli 2006 13:50 schreef qu63 het volgende:
alleen kan ik die ene regel die alles in mn sql-tabel moet proppen niet goed maken, omdat er dus verschillende $_POST['km_nieuw'] waarden zijn.. dat is het enige punt eigenlijk.
de Update loop zit er ook al in en werkt ook.quote:Op woensdag 12 juli 2006 14:06 schreef JeRa het volgende:
[..]
Dus je hebt wel verschillende waarden uit $_POST, maar je weet niet hoe je de INSERT/UPDATE-query moet schrijven voor meerdere waarden? Met een INSERT kun je standaard meerdere values meegeven (zie de MySQL manual) maar voor een UPDATE zul je een loopje moeten maken over alle waarden.
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);quote:Op woensdag 12 juli 2006 14:06 schreef JeRa het volgende:
[..]
Dus je hebt wel verschillende waarden uit $_POST, maar je weet niet hoe je de INSERT/UPDATE-query moet schrijven voor meerdere waarden? Met een INSERT kun je standaard meerdere values meegeven (zie de MySQL manual) maar voor een UPDATE zul je een loopje moeten maken over alle waarden.
Normaal gesproken maakt ie de afbeelding 'on-the-fly'. Anders zou je er geen GD voor nodig hebben.quote:Op woensdag 12 juli 2006 10:15 schreef Desdinova het volgende:
[..]
ja hoe werkt dat precies? is het gewoon een hidden field ofzoiets die je een random waarde geeft, alsmede een selectie afbeeldingen met dezelfde tekens maar dan wat onduidelijker?
maar hoe kan ik er voor zorgen dat 4,5,6 niet hetzelfde is als 1,2,3?quote:Op woensdag 12 juli 2006 14:34 schreef Darkomen het volgende:
precies zoals het er staatipv in de while loopt steeds " INSERT INTO tbl_name (a,b,c) VALUES(1,2,3)" te doen voeg je achter (1,2,3) ,(4,5,6) toe.
1 2 3 4 5 6 7 8 9 | if (($_POST['km_nieuw'] > 0) && ($_POST['tijd_nieuw'] >0) && ($_POST['prijs_nieuw'] >0)) { foreach($_POST['km_nieuw'] as $km_nieuw) { mysql_query('INSERT INTO qu63 (km) VALUES ('$km_nieuw')'); $aangepast++; } foreach($_POST['tijd_nieuw'] as $tijd_nieuw) { mysql_query('INSERT INTO qu63 (tijd) VALUES ('$tijd_nieuw')'); $aangepast++; } foreach($_POST['prijs_nieuw'] as $prijs_nieuw) { mysql_query('INSERT INTO qu63 (prijs) VALUES ('$prijs_nieuw')'); $aangepast++; } ?> |
niet dusquote:Op woensdag 12 juli 2006 15:47 schreef qu63 het volgende:
[..]
maar hoe kan ik er voor zorgen dat 4,5,6 niet hetzelfde is als 1,2,3?
ik heb nu dit:
[ code verwijderd ]
kan dat
Ehm...door te controleren of ze hetzelfde zijn? Ik snap je niet.quote:Op woensdag 12 juli 2006 15:47 schreef qu63 het volgende:
[..]
maar hoe kan ik er voor zorgen dat 4,5,6 niet hetzelfde is als 1,2,3?
Ze hebben PHP in CGI-modus draaien. Je moet ervoor zorgen dat het bestand dat je opvraagt ook daadwerkelijk bestaat en dat de rechten goedstaan voor de webserver/je gebruiker om het bestand te lezen.quote:Op woensdag 12 juli 2006 16:14 schreef wonderer het volgende:
Mijn chatbox kwam ineens met de melding "no input file specified". Heeft iemand daar wel eens mee te maken gehad en hoe is dat op te lossen? Ik vermoed dat de host iets aan PHP heeft veranderd, maar ik snap de uitleg op internet niet zo goed.
ik heb een hele rij al ingevulde tabellen, waarbij ik alleen de prijs kan aanpassen.quote:Op woensdag 12 juli 2006 16:52 schreef JeRa het volgende:
[..]
Ehm...door te controleren of ze hetzelfde zijn? Ik snap je niet.
1 2 3 4 5 6 7 8 9 | while (list($km, $prijs) = each($tmp)) { //Als er een andere prijs staat dan zetten we die in de database if($_POST['prijs'][$tijd][$km] != $prijs) { mysql_query('UPDATE qu63 SET prijs = '.intval($_POST['prijs'][$tijd][$km]).' WHERE tijd = '.$tijd.' AND km = '.$km); $aangepast++; } } } |
dus:quote:Op woensdag 12 juli 2006 17:20 schreef JeRa het volgende:
@qu63
Dat kun je dus doen met deze methode
[ code verwijderd ]
ehm, maar dan wel met alle aanhalingstekens goed dusquote:Op woensdag 12 juli 2006 17:32 schreef qu63 het volgende:
[..]
dus:
INSERT INTO qu63 (km, tijd, prijs) VALUES ("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']'), ("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']'),("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']')
zoiets?
anders snap ik er echt geen hout meer van
Ik heb niets veranderd en gister deden ze het nogquote:Op woensdag 12 juli 2006 16:53 schreef JeRa het volgende:
[..]
Ze hebben PHP in CGI-modus draaien. Je moet ervoor zorgen dat het bestand dat je opvraagt ook daadwerkelijk bestaat en dat de rechten goedstaan voor de webserver/je gebruiker om het bestand te lezen.
Inderdaad, zoiets. Nu moet je alleen nog een handige manier zien te vinden om zo'n query op te bouwenquote:Op woensdag 12 juli 2006 17:32 schreef qu63 het volgende:
[..]
dus:
INSERT INTO qu63 (km, tijd, prijs) VALUES ("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']'), ("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']'),("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']')
zoiets?
anders snap ik er echt geen hout meer van
en daar loop ik dus al de hele middag tegen aanquote:Op woensdag 12 juli 2006 17:37 schreef JeRa het volgende:
[..]
Inderdaad, zoiets. Nu moet je alleen nog een handige manier zien te vinden om zo'n query op te bouwen
Bedenk je even hoe je het het simpelst kunt doen en welke acties/condities er moeten gelden. Voorbeeldje:quote:Op woensdag 12 juli 2006 17:40 schreef qu63 het volgende:
[..]
en daar loop ik dus al de hele middag tegen aan
if(($_POST['km_nieuw'] > 0) && ($_POST['tijd_nieuw'] > 0) && ($_POST['prijs_nieuw'] > 0)) {quote:Op woensdag 12 juli 2006 17:44 schreef JeRa het volgende:
[..]
Bedenk je even hoe je het het simpelst kunt doen en welke acties/condities er moeten gelden. Voorbeeldje:
Je gaat géén INSERT uitvoeren als er geen nieuwe velden zijn ingevuld. Als je wel iets insert ziet het er minstens zo uit:
INSERT INTO tabel (a,b,c) VALUES (1,2,3)
Bij meerdere rows ziet het er zo uit:
INSERT INTO tabel (a,b,c) VALUES (1,2,3),(4,5,6),etc
Dus je begint met die eerste query, en plakt er voor elke extra row een stukje string in de vorm van ",(a,b,c)" aan(let op de komma op het begin)
Uiteindelijk voer je de query gewoon uit.
INSERT INTO `qu63` (`km`,` tijd`,`prijs`)quote:Op woensdag 12 juli 2006 17:32 schreef qu63 het volgende:
[..]
dus:
INSERT INTO qu63 (km, tijd, prijs) VALUES ("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']'), ("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']'),("$_POST['km_nieuw']', '$_POST['tijd_nieuw']','$_POST['prijs_nieuw']')
zoiets?
anders snap ik er echt geen hout meer van
quote:Op woensdag 12 juli 2006 17:47 schreef guitarist.nl het volgende:
[..]
INSERT INTO `qu63` (`km`,` tijd`,`prijs`)
VALUES ( ' "$_POST['km_nieuw']" ', ' "$_POST['tijd_nieuw']" ', ' "$_POST['prijs_nieuw']" ', );
quote:Op woensdag 12 juli 2006 17:47 schreef qu63 het volgende:
[..]
if(($_POST['km_nieuw'] > 0) && ($_POST['tijd_nieuw'] > 0) && ($_POST['prijs_nieuw'] > 0)) {
mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].')');
dat was mn oude dus
dus ik hoef er dan nu alleen nog ,('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].') achter plakken
Nee, want dat is natuurlijk exact hetzelfde. Je moet rekening houden met het feit dat je nu met een array werkt en niet met slechts één waarde. Maar het principe blijft hetzelfde jaquote:Op woensdag 12 juli 2006 17:47 schreef qu63 het volgende:
[..]
if(($_POST['km_nieuw'] > 0) && ($_POST['tijd_nieuw'] > 0) && ($_POST['prijs_nieuw'] > 0)) {
mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].')');
dat was mn oude dus
dus ik hoef er dan nu alleen nog ,('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].') achter plakken
[1] etc er achterquote:Op woensdag 12 juli 2006 17:54 schreef JeRa het volgende:
[..]
Nee, want dat is natuurlijk exact hetzelfde. Je moet rekening houden met het feit dat je nu met een array werkt en niet met slechts één waarde.
ja, maar nu ff niet meerquote:Op woensdag 12 juli 2006 17:56 schreef JeRa het volgende:
[..]
Heb je eigenlijk wel enig idee hoe arrays werken?
Doe zoiets:quote:Op woensdag 12 juli 2006 17:57 schreef qu63 het volgende:
[..]
ja, maar nu ff niet meerben helemaal de weg kwijt nu
1 2 3 4 5 6 7 8 9 10 11 12 13 | $prijs = $_POST['prijs_nieuw']; $tijd = $_POST['tijd_nieuw']; if (is_array($km) && is_array($prijs) && is_array($tijd) && (count($km) == count($prijs)) && (count($km) == count($tijd))) { $query = 'INSERT INTO tabel (km, prijs, tijd) VALUES (' . $km[0] . ', ' . $prijs[0] . ', ' . $tijd[0] . ')'; $num = count($km); for ($i = 1; $i < $num; $i++) { $query .= ',(' . $km[$i] . ', ' . $prijs[$i] . ', ' . $tijd[$i] . ')'; } mysql_query($query); } |
hij pakt zo alleen de laatste waarden.quote:Op woensdag 12 juli 2006 18:01 schreef JeRa het volgende:
[..]
Doe zoiets:
[ code verwijderd ]
Even aanpassen naar je eigen variabelen en benodigdheden natuurlijk.
1 2 3 4 5 6 | $prijs = $_POST['prijs_nieuw']; $tijd = $_POST['tijd_nieuw']; echo $km; echo $prijs; echo $tijd; |
1 2 3 | 45 | 45 | 45 23 | 23 | 23 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $km[0] = "25"; $prijs[0] = "22,50"; $tijd[0] = "23:11"; $km[1] = "20"; $prijs[1] = "19,50"; $tijd[1] = "21:11"; print $km[0]."<br>"; echo $prijs[0]."<br>"; echo $tijd[0]."<br>"; echo $km[1]."<br>"; echo $prijs[1]."<br>"; echo $tijd[1]."<br>"; ?> |
oepsquote:Op woensdag 12 juli 2006 19:04 schreef SuperRembo het volgende:
echo verwacht een string, niet een array. Om snel een array te printen gebruik je print_r. Of anders echo i.c.m. join.
En de mysql_real_escape_string / addslashes niet vergeten als je post-data in je sql string zet.
de redirect in je host lekker laten staan en je apache configuratie zo installen dat wanner eernnaar domain a gegaan wordt er een bepaalde map wordt aangeroepen iets met htaccessquote:Op woensdag 12 juli 2006 21:22 schreef wipes66 het volgende:
oke het was dus een kwestie van c:\WINDOWS\system32\drivers\etc\hosts aanpassen. Maar ik vraag me af hoe ik er voor kan zorgen dat hij niet 127.0.0.1 maar 127.0.0.1/map aanvraagt. iemand een idee?
Ok dan. GifImage.class.php.quote:
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 | --------------------------- |selectedstyle |styleid | --------------------------- |selectedstyle |1 | --------------------------- css_style --------------------- |id |stylename | --------------------- |1 |Stijl 1 | |2 |Stijl 2 | |3 |Stijl 3 | --------------------- css_selector ------------------------- |id |selector | ------------------------- |1 |body | |2 |div#container | |3 |div#header | |4 |div#menu | |5 |div#content | ------------------------- css_property ------------------------------------- |id |selector_id |property | ------------------------------------- |1 |1 |margin-top | |2 |1 |font-family | |3 |2 |position | |4 |2 |width | |5 |2 |margin-left | ------------------------------------- css_value ------------------------------------------------ |id |style_id |property_id |value | ------------------------------------------------ |1 |1 |1 |10px | |2 |1 |2 |Verdana | |3 |1 |3 |relative | |4 |1 |4 |760px | |5 |1 |5 |auto | ------------------------------------------------ |
ik weet niet waarom je het zo helemaal uitsplitst, maar heb je er al aan gedacht dat je met serialise() een array naar string kunt converteren? op die manier kun je je hele css informatie in één tablecell stoppen, en dit met unserialise() weer terug naar array converteren. Dat lijkt me VEEL eenvoudiger om te makenquote:Op donderdag 13 juli 2006 12:59 schreef Siegfried het volgende:
Moet een soort styles-cms worden.
Het zal vast niet de meest praktische manier zijn, maar ik kon geen betere manier bedenken.
De manier zoals phpBB het doet is niet toereikend, omdat je daar geen selectors en properties kunt toevoegen..
Ik snap dat ik ze 1 voor 1 moet updaten.
Maar hoe vind ik ooit de juiste row die geupdate moet worden?
Ik bedoel, nu is het mooi id's 1t/m 5.. Maar zodra ik meer ga toevoegen, krijg je andere ID's.
Ok, ik kan het textfield de ID-naam geven. Maar hoe weet ik dan op de volgende pagina welke ID's er gepost zijn?
Wellicht kun je me op weg helpen?
1 2 3 4 5 6 7 | $css=array('margin-top'=>'10x','font-family'=>'Verdana'); opslaan in mysql => serialise($css); terughalen: $css=unserialise(data uit mysql halen); |
Kun je dat een beetje toelichten met een voorbeeld aan de hand van mijn code?quote:Op donderdag 13 juli 2006 13:27 schreef Desdinova het volgende:
array!
als je een input met naam ID[] geeft, en tussen de [ ] je $ID plempt, kan je dus ID als array aanspreken met foreach ($ID as $key => $value) en is $key je ID, en $value je waarde.
1 2 3 | echo "<input type=\"text\" name=\"valueID[".$valueID."]\" value=\"".$value."\">"; ?> |
Gebruik de mb_*-functies (MultiByte) om meerdere character sets in PHP te ondersteunen. Enige basiskennis over character sets is echter wel vereistquote:Op donderdag 13 juli 2006 15:41 schreef Chandler het volgende:
Ik zit met het volgende, hoe kan ik 2 karakter sets gebruiken in PHP?
Nederlands en Thais!? zodat ik nederlands kan converteren naar thais? heeft iemand hier ervaring mee?
quote:Op donderdag 13 juli 2006 16:24 schreef ralfie het volgende:
Voor diegenen die het wat interesseert, ik ben klaar met mijn windows.php projectje, waar ik met veel moeite eindelijk een editor in heb weten te verwerken (FCKeditor en een verkrachte versie daarvan voor Opera en niet-html documenten), en de laatste bugs uit heb verwijdert waardoor het script nu compatibel is met IE, FF en Opera (andere browsers niet getest). Voel je vrij om bugs te vinden en/of het zelf te gebruiken voor je eigen server of als lees/leervoer oid.
Bekijk hier: http://www.student.ru.nl/rvanhoorn/windows.php
Download link http://www.student.ru.nl/rvanhoorn/windows.rar (<1 mb)
bugs/suggesties -> ravhoorn@[verwijder]gmail.com
cool!quote:Op donderdag 13 juli 2006 16:24 schreef ralfie het volgende:
Voor diegenen die het wat interesseert, ik ben klaar met mijn windows.php projectje, waar ik met veel moeite eindelijk een editor in heb weten te verwerken (FCKeditor en een verkrachte versie daarvan voor Opera en niet-html documenten), en de laatste bugs uit heb verwijdert waardoor het script nu compatibel is met IE, FF en Opera (andere browsers niet getest). Voel je vrij om bugs te vinden en/of het zelf te gebruiken voor je eigen server of als lees/leervoer oid.
Bekijk hier: http://www.student.ru.nl/rvanhoorn/windows.php
Download link http://www.student.ru.nl/rvanhoorn/windows.rar (<1 mb)
bugs/suggesties -> ravhoorn@[verwijder]gmail.com
1 |
1 |
Natuurlijk heb ik er totaal nog geen ervaring mee, maar zal eens kijken wat de mogelijkheden zijn... leuke uitdaging!quote:Op donderdag 13 juli 2006 15:50 schreef JeRa het volgende:
Gebruik de mb_*-functies (MultiByte) om meerdere character sets in PHP te ondersteunen. Enige basiskennis over character sets is echter wel vereistPHP houdt intern alles puur binair opgeslagen, dus zodra je een multibyte character set gaat gebruiken in PHP kun je er dus niet op vertrouwen dat functies als str_replace goed werken (gebruik dus ook hiervoor de mb_-equivalenten).
1 2 3 4 5 6 7 8 9 10 11 | if(isset($_GET'page']) && is_numeric($_GET['page'])) { $page = mysql_real_escape_string($_GET['page'],$con); mysql_query("SELECT * FROM pages WHERE ID=$page"); } else { include("includes/content.php"); } ?> |
1 |
die fout zit toch in regel 40. probeer er daar gewoon een ) of een , in te plakken..quote:Op vrijdag 14 juli 2006 09:29 schreef mschol het volgende:
[ code verwijderd ]
volgens php krijg ik op de if de volgende error:
[ code verwijderd ]
me andere code klopt wel gewoon.. (als ik namelijk alleen de include neerzet werkt ety gewoon..
wie helpt ij met iets wat ik over het hoofd zie..
quote:Op vrijdag 14 juli 2006 09:33 schreef qu63 het volgende:
[..]
die fout zit toch in regel 40. probeer er daar gewoon een ) of een , in te plakken..
google.com kan wel hele scripts leverenquote:Op vrijdag 14 juli 2006 10:12 schreef ruud_fr het volgende:
Ik wil een lijstje maken de albums die ik heb.
Dat lijstje moet gesorteerd kunnen worden op "Naam artiest", "Naam album" en "Jaartal album".
Heeft iemand daar een script voor?
Info staat nog nergens, maar heb sql database.quote:Op vrijdag 14 juli 2006 10:15 schreef Libris het volgende:
Iets meer info? Die informatie staat in een database? in 1 tabel?
anders gewoon een ORDER BY in sql
select * from database ORDER BY artiest ASCquote:Op vrijdag 14 juli 2006 10:41 schreef ruud_fr het volgende:
[..]
Info staat nog nergens, maar heb sql database.
ben een beginner met php/sql dus kun je dat ORDER BY even uitleggen?
Character sets worden vaak verkeerd gebruikt als het gaat om webpagina's en databases. Je zult met de volgende dingen rekening moeten houden:quote:Op vrijdag 14 juli 2006 09:16 schreef Chandler het volgende:
[..]
Natuurlijk heb ik er totaal nog geen ervaring mee, maar zal eens kijken wat de mogelijkheden zijn... leuke uitdaging!
heb nu database met naam "coll"quote:Op vrijdag 14 juli 2006 10:49 schreef mschol het volgende:
[..]
select * from database ORDER BY artiest ASC
eerste stukkie is redelijk logisch :
order by = kolom naam waar gesorteerd op moet worden en vervolgens hoe het gesorteerd moet worden (oplopend/aflopen, ASC/DESC)
de tabel moet je uiteraard makenquote:Op vrijdag 14 juli 2006 11:27 schreef ruud_fr het volgende:
[..]
heb nu database met naam "coll"
nu moet ik een tabel aanmaken?
welke naam moet die hebben en hoeveel velden?
sorry maar snap er weinig van
Het voorbeeld wat jij gaf is een voorbeeld van een goede jaquote:Op vrijdag 14 juli 2006 00:29 schreef the_disheaver het volgende:
ehh, bedoel je een string van een onbeperkt aantal tekens, met maximaal 5 karakters die of een streep, underscore of puntje is?
dus bij:
a_dadf_asdfs-asdf_af.df
Of moeten die streeptjes/puntjes achter elkaar staan?
Nee helaas, het mag bijvoorbeeld ook zijn _bla.bla__. Bij jou kan dat niet omdat de string moet beginnen met een alfanumeriek teken en dat hoeft nietquote:Op vrijdag 14 juli 2006 00:35 schreef the_disheaver het volgende:
[ code verwijderd ]
dit?
nul of meer letters of cijfers. Vervolgens de 0 tot maximaal 5 keer: één liggend streeptje, streeptje of punt, met erachter nul of meer letters of cijfers.
1 |
Alright, ben er mee bezig, maar loop weer tegen eigenlijk eenzelfde probleem.quote:Op donderdag 13 juli 2006 14:04 schreef Desdinova het volgende:
@siegfried
voor de values zou je dit bijv. kunnen doen:
[ code verwijderd ]
wat er nu dus gebeurt, is dat alle values die je invoert op te halen zijn via $_POST['valueID'], wat op zijn beurt weer een array is.
dus als je op de resultpagina een print_r($_POST['valueID']) zou doen krijg je een lijst met IDnr -> waarde.
dus $_POST['valueID'] kan je behandelen met een foreach loop
Nope, helaas, op deze manier kan k alsnog niet eerst een letter of cijfer gebruiken...quote:Op vrijdag 14 juli 2006 14:13 schreef JeRa het volgende:
Dat kan makkelijker.
[ code verwijderd ]
Wel case insensitive uitvoeren, dus met de /i-modifieroh, en de spatie weghalen vóór het haakje sluiten (bug in RDE).
quote:Op vrijdag 14 juli 2006 14:57 schreef MeScott het volgende:
[..]
Nope, helaas, op deze manier kan k alsnog niet eerst een letter of cijfer gebruiken...
1 |
maar dan kun je geen tekens meer achter de laatste (5de) -_ of punt zetten.quote:
1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |