Absoluut.quote:Op vrijdag 24 februari 2006 14:01 schreef ViPeRII het volgende:
Swetsenegger. jij ook al? Vind het altijd leuk om een nieuw systeem van scratch op te bouwen
Daar wordt je ook steeds beter van, merk ik zelf al
Kun je er geen CSV-file van maken?quote:Op vrijdag 24 februari 2006 14:07 schreef Scorpie het volgende:
Ik heb al gegoogled maar ik kon niks nuttigs vinden dus post ik het hier: Weet iemand tutorials over Excel (xls) bestanden in te lezen met PHP?
1 2 3 4 5 6 7 8 | if ($type == 2){ $typeinfo = "wel" } else { $typeinfo = "niet" } ?> |
1 2 3 | $typeinfo = ($type == 2) ? 'wel' : 'niet'; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | while($row = mysql_fetch_assoc($result1)) { if(($result['urID'] & $row['urID'])) { $check = ' checked = "checked"'; } else { $check = ''; } } echo '<tr><td>' . $row['urName'] . '</td><td><input type = "checkbox" name = "rights[]" id = "rights[]" value = "' . $row['urID'] . '"' . $check . ' /></td></tr>'; } ?> |
Als ik de bitwise functie laat echoen binnen de while krijg ik een rijtje:quote:Op zaterdag 25 februari 2006 21:41 schreef Swetsenegger het volgende:
Kan je controleren of die bits ook daadwerkelijk geset zijn?
In bovenstaande code zou ik alleen nog een spatie kunnen toevoegen, maar ik zie geen opmerkelijke fout
value = "' . $row['urID'] . '"' . $check . ' /> spatie:
value = "' . $row['urID'] . '" ' . $check . ' />
Mjah, ik begrijp er dan geen ruk van wat eruit zou moeten komen, want ik had 1 2 4 8 16 32 verwachtquote:Op zaterdag 25 februari 2006 21:45 schreef c0nd0r het volgende:
[..]
Als ik de bitwise functie laat echoen binnen de while krijg ik een rijtje:
0
2
4
0
02
22
Degene waar nullen staan zijn dus ook niet aangevinkt.
Dat zou je inderdaad verwachten!quote:Op zaterdag 25 februari 2006 21:56 schreef Swetsenegger het volgende:
[..]
Mjah, ik begrijp er dan geen ruk van wat eruit zou moeten komen, want ik had 1 2 4 8 16 32 verwacht
Anyway, je zegt zelf dat daar waar de nullen staan je checkboxes niet aangevinkt zijn. Dat klopt toch?
Wat zeg je nou?quote:Op zaterdag 25 februari 2006 22:00 schreef c0nd0r het volgende:
[..]
Dat zou je inderdaad verwachten!
Maar dat klopt niet want de rechten zijn 63 (dus 1 + 2 + 4 + 8 + 16 + 32) dus alle bitjes die langskomen zou die moeten bevatten maar op 1 of andere manier dus niet
Haha die set of unset je niet maar je gaat gewoon bitwise die rechten toekennen dus voor recht lezen is 1 voor schrijven is 2 voor bewerken is 4 en iemand die dan mag lezen en schrijven krijgt 3 snap ie?quote:Op zaterdag 25 februari 2006 22:01 schreef Swetsenegger het volgende:
[..]
Wat zeg je nou?
Geef nou je code eens die de bitjes set en unset. Hoe set je die bitjes?
Ja duh, maar HOE krijg je dat rijtje terug? Geef die code eens.quote:Op zaterdag 25 februari 2006 22:06 schreef c0nd0r het volgende:
[..]
Haha die set of unset je niet maar je gaat gewoon bitwise die rechten toekennen dus voor recht lezen is 1 voor schrijven is 2 voor bewerken is 4 en iemand die dan mag lezen en schrijven krijgt 3 snap ie?En met de bitwise functies van PHP kun je dat dan controleren
http://nl2.php.net/language.operators.bitwise
1 2 3 4 5 6 7 8 9 10 | switch ($rechten){ case '1': // lezen break; case '10': //schrijven break; } ?> |
Zou ook kunnen inderdaad maar heb de fout al gevonden! Om 1 of andere vage reden parste PHP de getallen als octaal (vandaar dat 1 en 8 het niet deden)quote:Op zaterdag 25 februari 2006 22:17 schreef Swetsenegger het volgende:
En waarom maak je het jezelf eigenlijk niet makkelijk door gewoon binair te rekenen.
1=lezen
10=schrijven
11=lezen en schrijven
Etc.
Op die manier kan je een ubersimpele switch functie gebruiken om je rechten te checken en je checkboxen te setten.
[ code verwijderd ]
als het begint met een 0 wordt het als octaal geinterpreteerd. (dacht ik. even zoeken op php.net)quote:Op zaterdag 25 februari 2006 22:21 schreef c0nd0r het volgende:
[..]
Zou ook kunnen inderdaad maar heb de fout al gevonden! Om 1 of andere vage reden parste PHP de getallen als octaal (vandaar dat 1 en 8 het niet deden)
Even de intval() eromheen zetten en works like a charm! Bedankt iig!
Correct.quote:Op zaterdag 25 februari 2006 22:23 schreef Swetsenegger het volgende:
[..]
als het begint met een 0 wordt het als octaal geinterpreteerd.
helemaal mee eesnquote:Op zondag 26 februari 2006 17:58 schreef ikke_ook het volgende:
Leer zelf eens debuggen, begin eens met die apenstaartjes voor de functies weg te halen want die onderdrukken errors en warnings. En dan zet je gewoon ergens een echo ofzo om te kijken of hij in een bepaald if-statement komt...... Probeer eens wat losse onderdelen of die wel werken.
Doe een echo op je filename/imagepath, misschien is dat wel niet goed.... Wij hoeven toch niet iedere keer jouw lappen code door te gaan spitten op zoek naar een foutje?
En denk ook eens aan het controleren van je input... je haalt iets uit een GET en je zet dat gewoon in een query, ik zou daar op zn minst een addslashes op uitvoeren.....
Magic_quotes?quote:Op zondag 26 februari 2006 18:15 schreef mschol het volgende:
[..]
helemaal mee eesn
ennuh even reactie op 2de punt en een handige vraag voor mij :
om de een of andere reden hoef ik in mijn php scripts nooit de addslashes te gebruiken...
hij negeerdt die slashes ofzo...
wat ik wel doet is dit:
$bla =$_get['Boe'];
komt dat daardoor?
ben zelf nu ook beetje bezig met een hele simpele template parser
eens kijken of ik daar iets leuks van kan maken
Dat komt idd door magic_quotes_gpc. Eerder in dit topic staat er meer over. Een feature die schijnveiligheid creëert en verder alleen maar tegen je werkt.quote:Op zondag 26 februari 2006 18:15 schreef mschol het volgende:
ennuh even reactie op 2de punt en een handige vraag voor mij :
om de een of andere reden hoef ik in mijn php scripts nooit de addslashes te gebruiken...
hij negeerdt die slashes ofzo...
wat ik wel doet is dit:
$bla =$_get['Boe'];
komt dat daardoor?
maar dat zou hij toch alleen doen als hij aanstaatquote:Op zondag 26 februari 2006 19:26 schreef SuperRembo het volgende:
[..]
Dat komt idd door magic_quotes_gpc. Eerder in dit topic staat er meer over. Een feature die schijnveiligheid creëert en verder alleen maar tegen je werkt.
nou normaal gesproken zou je een sql injection kunnen doen als de quotes e.d niet worden gescaped..quote:Op zondag 26 februari 2006 20:09 schreef DutchBlood het volgende:
Maar wat gebeurd er dan precies met dat slashes gebeuren bij deze php-installatie?
Zou je dat eens kunnen uitttesten met wat echo's misschien? Dus de $_GET var en dan de gewone?quote:Op zondag 26 februari 2006 20:19 schreef mschol het volgende:
[..]
nou normaal gesproken zou je een sql injection kunnen doen als de quotes e.d niet worden gescaped..
maar ik escape dus niet en SQL injections zijn echt onmogelijk![]()
ik krijg hooguit een php error op line 10 ofzo
en dit heb ik al heeel lang bij meerdere script..
komt dat omdat ik de GET waarde eerst in een variable zet en die variable in een SQL statment gebruik?
1 |
Dankje, erg handigquote:Op zondag 26 februari 2006 21:01 schreef mschol het volgende:
http://www.securiteam.com/securityreviews/5DP0N1P76E.html
hier wordt het hoe en wat uitgelegd, vaak kan je het misbruiken door in een search veld de string proberen te escapen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class template { var $data; function load($file) { $this->data = file_get_contents('templates/'. $file . '.tpl'); } function replace($var, $value) { $this->data = str_replace('{' . $var . '}', $value, $this->data); } function parse() { echo $this->data; } } ?> |
1 2 3 4 5 6 7 8 | { $template->load('main'); $template->replace('Title', 'Overzicht PC\'s'); $template->replace('Content',include('includes\overzicht.php')); $template->parse(); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $SQL = "SELECT * FROM `p`"; $result = mysql_query($SQL); while($row = mysql_fetch_array($result)) { echo("<tr>\n"); echo("<td align='center'>".$row['pcnaam']."</td>\n\r"); echo("<td align='center'>".$row['gebouw']."</td>\n\r"); echo("<td align='center'>".$row['lokatie']."</td>\n\r"); echo("<td align='center'>".$row['leerkracht']."</td>\n\r"); echo("<td align='center'>\n\r"); echo("<input name='button2' type='button' value='Aanpassen' onclick=\"\PopUpWindow('edit_pc','http://fia181-83.dsl.hccnet.nl/PWA/pc.php?act=edit_pc','http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\") />"); echo("</td>\n\r"); echo("<td align='center'><input name='button' type='button' value='Verwijderen' /></td>\n\r"); echo("</tr>"); } } ?> |
probeer maar. Met magic Quotes die aanstaan werkt dit niet nee.....quote:Op zondag 26 februari 2006 20:57 schreef Nevermind het volgende:
Niet dat ik het wil misbruiken, maar hoe kun je sql injections uitproberen? Wat moet je in je GET-variabele toevoegen?
[ code verwijderd ]
Zoiets zal wel niet werken?
Ow, mysql gaat gewoon op z'n bek als je een quotje invoert. Nee, da's primaquote:Op zondag 26 februari 2006 20:19 schreef mschol het volgende:
[..]
nou normaal gesproken zou je een sql injection kunnen doen als de quotes e.d niet worden gescaped..
maar ik escape dus niet en SQL injections zijn echt onmogelijk![]()
ik krijg hooguit een php error op line 10 ofzo
en dit heb ik al heeel lang bij meerdere script..
komt dat omdat ik de GET waarde eerst in een variable zet en die variable in een SQL statment gebruik?
maar aaleen bij de uitvoer van dat script... dus iedere hack poiung loopt doodquote:Op zondag 26 februari 2006 21:49 schreef SuperRembo het volgende:
[..]
Ow, mysql gaat gewoon op z'n bek als je een quotje invoert. Nee, da's prima
Daar zou ik niet al te zeker van zijn.quote:Op zondag 26 februari 2006 21:55 schreef mschol het volgende:
[..]
maar aaleen bij de uitvoer van dat script... dus iedere hack poiung loopt dood
my point : oke script gaat onderuit, maar hij valt voor de rest niet te hacken..
1 |
ook met deze constructie? want zo doe ik het altijd... en als je dan gaat klooien met ; en komma's etc dann loopt ie stuk op php code.. lijkt mij...:quote:Op zondag 26 februari 2006 22:25 schreef SuperRembo het volgende:
[..]
Daar zou ik niet al te zeker van zijn.
Neem een simpele update al deze:
[ code verwijderd ]
Als je dan in het form bij myvalue invult: All Your Quotes Are Belong To Us';--
Dan staat die tekst opeens op ELKE regel in de tabel. Zonder MySQL foutmelding.
1 2 3 | $ids = $_POST[id]; $sql = "UPDATE mytable SET myvalue='$value' WHERE id=$ids"; |
nou vreemd ik heb meerdere scrippie's gemaakt waar ik toch op die manier allerlei haakjes, puntkomma's en quotes tegenhield...quote:Op zondag 26 februari 2006 23:51 schreef SuperRembo het volgende:
Nee, dat is voor php geen probleem. Dan werkt mijn "hack" nog steeds.
1 2 3 4 5 6 7 8 9 | $fp = fopen($filename, "r") or die ("Couldn't open $filename"); while (!feof($fp)) { $line = fgets($fp, 180); //explode alle elementen tot regels in de array $info_array = explode(" | ",addslashes($line)); ?> |
1 2 3 4 5 6 7 8 9 10 11 | php $fp = fopen($filename, "r") or die ("Couldn't open $filename"); while (!feof($fp)) { $line = fgets($fp, 180); //explode alle elementen tot regels in de array $info_array[] = explode(" | ",addslashes($line)); ?> |
1 2 3 4 5 6 7 8 9 | $file = file("blaat.txt"); $array = implode(" ", $file); $info_array = explode(" | ",addslashes($array)); print "<pre>"; print_r($info_array); print "</pre>"; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 | ( [0] => USEDB [1] => localhost [2] => db [3] => ww [4] => naam [5] => INSERT INTO evenementen (naam, datum, folder) values ( \'\" . $_SESSION[\'albumhtmlinfo\'][\'titel\'] . \"\', \'\" . $_SESSION[\'datum\'] . \"\', \'\" . $_SESSION[\'albumhtmlinfo\'][\'filename\'] . \"\' ) | ) |
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 | $bericht = $_POST["bericht"]; $van = $_POST["van"]; $to = $_POST["aan"]; $subject = $_POST["onderwerp"]; $message = ' <html> <head> <title>'.$subject.'</title> <STYLE TYPE="text/css"> <!-- body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; } --> </STYLE> </head> <body> '.$bericht.' </body> </html> '; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "To: <".$to.">\r\n"; $headers .= "From: <".$van.">\r\n"; mail($to, $subject, $message, $headers); echo 'Verzonden aan: '.$to.'<br>Vanaf: '.$van.'<br>Bericht:<br>'.$message.'<br>'; ?> |
Het enige wat ik kan bedenken is dat je een mailadres mailt, welke ook ok nog doorgestuurd wordt naar een ander mail adres. Je script verstuurt in ieder geval maar 1 mail.quote:Op maandag 27 februari 2006 14:37 schreef Toeps het volgende:
Om de geblokkeerde uitgaande mailpoort op school te omzeilen en omdat ik soms nog wel eens dringend moet mailen, heb ik een leuk mail scriptje gemaakt. Zo iets had ik al eerder gedaan voor een bestelformulier.
Bij mijn laatste prutswerkje kun je zelf de afzender en geadresseerde invullen. Misbruikgevoelig, maar alleen voor eigen gebruik.
Nou is het enige probleem: Ik krijg alle mail 2x!
[ code verwijderd ]
Wie helpt?
Nope, hij wordt gewoon aangeroepen vanuit mail.htm, een standaard formuliertje. Raar, dat bestelformulier wat ik eerst had gemaakt stuurt wel maar een keer. Het enige verschil is dat ik daarbij de mailadressen al had ingevuld.quote:Op maandag 27 februari 2006 15:04 schreef ViPeRII het volgende:
Toeps,
Ik kan geen fouten ontdekken in je script. wordt echt maar 1x aangeroeken zover ik zie.
je opent hem toch ook niet tochvallig 2x?
Ja dat is dubbel jaquote:Op maandag 27 februari 2006 15:07 schreef Toeps het volgende:
[..]
Nope, hij wordt gewoon aangeroepen vanuit mail.htm, een standaard formuliertje. Raar, dat bestelformulier wat ik eerst had gemaakt stuurt wel maar een keer. Het enige verschil is dat ik daarbij de mailadressen al had ingevuld.
Misschien is het dubbel om het zowel in $to als in de header te zetten?
1 2 3 4 5 | $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "To: <".$tom.">\r\n"; $headers .= "From: <".$van.">\r\n"; |
Als ik hem met fopen inlees krijg ik dit te zien:quote:Op dinsdag 28 februari 2006 15:09 schreef ikke_ook het volgende:
door die html-file in te lezen met fopen en hem dan als string te behandelen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | { case 'bla': blablabla; break; case 'bli': bliblibli; break; case 'blo': blobloblo; break; } |
1 2 3 4 5 6 7 | if (isset($_POST['submit'])) { //form verwerking } else { //print form } ?> |
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 | $url = str_replace('/CMS/nieuwepagina.php?pagina=', '', $url); switch ($url) { case "nieuw": echo "<form action=nieuwepagina.php?pagina=maaknieuw method=post>"; echo "<table width=400 border=0>"; echo "<tr><td width=200>Paginanaam:</td>"; echo "<td>Waarde:</td></tr>"; echo "<tr><td width=200>Menunaam:</td>\r\n"; echo "<td><input name=naam type=text value=></td>\r\n"; echo "<tr><td width=200>Link naar pagina:</td>\r\n"; echo "<td><input name=naam type=text value=></td>\r\n"; echo "<tr><td width=200>Titel van pagina:</td>\r\n"; echo "<td><input name=naam type=text value=></td>\r\n"; echo "<tr><td width=200>Content:</td>\r\n"; echo "<td><input name=naam type=text value=></td>\r\n"; echo "<tr><td width=200>Hoofdmenu:</td>\r\n"; echo "<td><input name=naam type=text value=></td>\r\n"; echo "</table><br />"; echo "<input name=reset type=reset value=Opnieuw />"; echo "<input name=Opslaan type=submit value=Opslaan />"; echo "</form>"; break; case "maaknieuw": echo "wijzig"; break; } |
? serieuse vraag?quote:Op dinsdag 28 februari 2006 15:57 schreef Knucklezz het volgende:
$_GET['pagina'] ?? :p hoe werkt dat nou weer
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 | include('header.php'); mysql_connect("localhost", "username", "wwoord"); mysql_select_db("tabel"); $url = $_SERVER['REQUEST_URI']; $url = str_replace('/CMS/nieuwepagina.php?pagina=', '', $url); switch ($url) { case "nieuw": ?> <form action="nieuwepagina.php?pagina=maaknieuw" method=post> <table width=400 border=0> <tr> <td width=200>Paginanaam:</td> <td>Waarde:</td><br /> </tr> <tr> <td width=200>Menunaam:</td> <td><input name=menunaam type=text value=""></td> </tr> <tr> <td width=200>Link naar pagina:</td> <td><input name=menulink type=text value=></td> </tr> <tr> <td width=200>Titel van pagina:</td> <td><input name=titel type=text value=></td> </tr> <tr> <td width=200>Content:</td> <td><input name=content type=text value=></td> </tr> <tr> <td width=200>Hoofdmenu:</td> <td><input name=zichtbaar type=text value=></td> </tr> </table><br /> <input name=reset type=reset value="Opnieuw" /> <input name=submit type=submit value="Opslaan" /> </form> <?php break; case "maaknieuw": if (isset($_POST['submit'])) { $query = "INSERT INTO TblMenu (menunaam, menulink, titel, content, zichtbaar) values ('$menunaam', '$menulink', '$titel', '$content', '$zichtbaar')"; mysql_query($query) or die (mysql_error()); break; } else { echo "form ni opgestuurd"; } } include('footer.php'); ?> |
Zoals the_disheaver dus al zei, je kan alles met $url er uit halen, en van je switch-statementquote:
1 |
In MySQL 3/4 heb je SHOW TABLES en SHOW COLUMNS. In versie 5 heb je de INFORMATION_SCHEMA tabellen.quote:Op dinsdag 28 februari 2006 22:42 schreef Desdinova het volgende:
kan ik bepaalde queries opstellen zodat ik een treestructuur van mijn database terugkrijg? eventueel met kolomtypes dr bij?
quote:<meta http-equiv="refresh" content="2;url=http://webdesign.about.com/">
The only difference is in the content attribute.
content="2;url=http://webdesign.about.com"
The number is the time, in seconds, until the page should be redirected. Then, separated by a semi-colon (;) is the URL that should be loaded.
Je kunt PHP's header()-functie alleen gebruiken als er nog niks op de huidige pagina is getoond. Zodra je iets geprint hebt (in dit geval de gewijzigd-tekst), levert de header()-functie een foutmelding op. Volgens de PHP-manual kun je dit omzeilen met ob_start() en ob_end_flush(), maar eerlijk gezegd vind ik het doorsturen van iemand naar een andere pagina sowieso meer een client-side iets en zou ik het dus niet met PHP aanpakken.quote:Op woensdag 1 maart 2006 11:36 schreef ikke_ook het volgende:
dat kun je met javascript doen, als hij na een aantal seconden moet worden doorgestuurd, of met php Header als je hem direct wil doorsturen.
eerst bericht gewijzigd laten zien en dan na een aantal seconden trg naar de pagina waar je dingen kan aanklikken om te wijzigenquote:Op woensdag 1 maart 2006 11:36 schreef ikke_ook het volgende:
dat kun je met javascript doen, als hij na een aantal seconden moet worden doorgestuurd, of met php Header als je hem direct wil doorsturen. Dus moet hij eerst een paar seconden "bericht gewijzigd" laten zien of direct terug naar een bepaalde pagina?
Dat zeg ik tochquote:Op woensdag 1 maart 2006 11:48 schreef Tijn het volgende:
[..]
Je kunt met PHP's header()-functie alleen gebruiken als er nog niks op de huidige pagina is getoond. Zodra je iets geprint hebt (in dit geval de gewijzigd-tekst), levert de header()-functie een foutmelding op. Volgens de PHP-manual kun je dit omzeilen met ob_start() en ob_end_flush(), maar eerlijk gezegd vind ik het doorsturen van iemand naar een andere pagina sowieso meer een client-side iets en zou ik het dus niet met PHP aanpakken.
Oh juist. Nou dan zijn we het eensquote:Op woensdag 1 maart 2006 11:50 schreef ikke_ook het volgende:
[..]
Dat zeg ik tochJavascript als je eerst iets wil tonen. OF php als je dat niet wil
kheb mn header in een include staan.. is dat dan geen probleem ?quote:Op woensdag 1 maart 2006 11:50 schreef ikke_ook het volgende:
[..]
@Knucklezz
probeer die meta tag eens die ik hierboven heb gepost.
Uhhh wat bedoel je precies?Het gaat erom hoe je header bij de gebruiker aankomt..niet hoe je hem samenstelt op de server..quote:Op woensdag 1 maart 2006 11:55 schreef Knucklezz het volgende:
[..]
kheb mn header in een include staan.. is dat dan geen probleem ?![]()
1 |
maar hij moet niet op elke pagina refreshenquote:Op woensdag 1 maart 2006 12:13 schreef ikke_ook het volgende:
ja klopt!
1 2 3 | of <textarea>hier de text die in het vakje moet staan</textarea> |
1 |
1 |
1 |
1 2 3 | <td><input name="menunaam" type="text" value="<?php echo mysql_result($result,$i,'menunaam');?>" /></td>\r\n <?php |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |