Nee iedereen. Maar conventie is dat alleen de lapo'er dat doet omdat je anders twee topics krijgt.quote:Op zondag 14 november 2010 13:12 schreef minibeer het volgende:
kan alleen degene dat doen die de laatste post maakte?
ok. Om maar even door te gaan met spammen:quote:Op zondag 14 november 2010 13:32 schreef GlowMouse het volgende:
[..]
Nee iedereen. Maar conventie is dat alleen de lapo'er dat doet omdat je anders twee topics krijgt.
Ik gebruik gEditquote:Op zondag 14 november 2010 13:42 schreef minibeer het volgende:
[..]
ok. Om maar even door te gaan met spammen:
welke editor gebruiken jullie voor php files? notepad gaat ook nogal irriteren als je een typo maakt lijkt me, dat je dat dan pas bij het uitvoeren merkt.
ok, ik zit nog even te twijfelen tussen gedit, crimsoneditor, notepad++quote:
gedit is standaard op ubuntu, en werkt prima .quote:Op zondag 14 november 2010 14:01 schreef minibeer het volgende:
[..]
ok, ik zit nog even te twijfelen tussen gedit, crimsoneditor, notepad++
alweer een gui erbij , dat wordt nog vol zo op mijn bureaublad...
nee, zoek naar error reporting php.quote:Op zondag 14 november 2010 13:42 schreef minibeer het volgende:
[..]
en heb ik een editor nodig om de foutmeldingen te kunnen zien? (als ik nu een puntkomma weglaat krijg ik weer een lege pagina te zien, kan ik dan geen foutmelding zien?)
Nee lijkt me niet. Check je filepermissions.quote:Op donderdag 18 november 2010 11:30 schreef PiRANiA het volgende:
Klopt het dat je geen plaatjes kan serveren met Apache als je DocumentRoot /tmp/ is?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function calc_loadtime($calc) { if ($calc == "start") { $starttime = microtime(); $startarray = explode(" ", $starttime); $starttime = $startarray[1] + $startarray[0]; } if ($calc == "end") { $endtime = microtime(); $endarray = explode(" ", $endtime); $endtime = $endarray[1] + $endarray[0]; $totaltime = ($endtime $starttime); $totaltime = round($totaltime,5); return $totaltime; } } |
1 | calc_loadtime("start"); |
1 | calc_loadtime("end"); |
1 | Parse error: syntax error, unexpected T_STRING in.... |
1 | $totaltime = ($endtime $starttime); |
De '-' zit er tussen, gaat fout met posten.quote:Op donderdag 18 november 2010 13:24 schreef PiRANiA het volgende:
$totaltime = ($endtime $starttime);
Of er gaat iets niet goed met posten, of er moet een '-' tussen
Met global, heb je je $values dus ook buiten je functie? Of begrijp ik dat verkeerd.quote:Op donderdag 18 november 2010 13:52 schreef PiRANiA het volgende:
function calc_loadtime($calc)
{
global $starttime;
global $endtime;
Daar mee beginnen.
Exact.quote:Op donderdag 18 november 2010 13:58 schreef xaban06 het volgende:
[..]
Met global, heb je je $values dus ook buiten je functie? Of begrijp ik dat verkeerd.
Het werkt nu in ieder geval.
je zou in principe toch ook ergens buiten de functie de variabelen kunnen declareren? (nou is global idd wat makkelijker te gebruiken, maar even omdat ik niet zeker weet of dit in php ook zo werkt)quote:Op donderdag 18 november 2010 13:52 schreef PiRANiA het volgende:
function calc_loadtime($calc)
{
global $starttime;
global $endtime;
Daar mee beginnen.
Zo werkt dat in php niet, de variabele is binnen de functie dan niet beschikbaar.quote:Op zaterdag 20 november 2010 16:41 schreef minibeer het volgende:
[..]
je zou in principe toch ook ergens buiten de functie de variabelen kunnen declareren? (nou is global idd wat makkelijker te gebruiken, maar even omdat ik niet zeker weet of dit in php ook zo werkt)
1 2 3 4 5 6 7 | <?php $uitroepteken = '!'; function vartest() { return 'Hello world'. $uitroepreken; } vartest(); ?> |
Ja logisch toch, niet dezelfde scope, de ene is $uitroepteken binnen de global scope, de tweede is $uitroepteken binnen de scope van vartest().quote:Op zaterdag 20 november 2010 16:44 schreef PiRANiA het volgende:
[ code verwijderd ]
Geeft: PHP Notice: Undefined variable: uitroepreken in - on line 7
Nee, de tweede is $uitroeprekenquote:Op zaterdag 20 november 2010 16:57 schreef pickup52 het volgende:
[..]
Ja logisch toch, niet dezelfde scope, de ene is $uitroepteken binnen de global scope, de tweede is $uitroepteken binnen de scope van vartest().
Dat inderdaad ook, maar als hij wel goed gespeld was zou het alsnog niet werken.quote:Op zaterdag 20 november 2010 17:01 schreef GlowMouse het volgende:
[..]
Nee, de tweede is $uitroepreken
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 | <html> <head> <title>PHP Test</title> <?php @$tekst = $_POST["tekst"]; if (strlen($tekst) > 0) { $naam = $_POST["naam"]; $Handle = fopen("data.base", 'a'); fwrite($Handle, "<table><tr><td colspan=2>" . date("\o\p d\-m\-Y \o\m G\:i\:s") . " schreef <b>" . $naam . "</b>:</td></tr><tr>"); fwrite($Handle, '<td width="20"></td><td>' . str_replace("\n", "<br>", str_replace(" ", " ", htmlentities($tekst))) . "</td></tr></table><hr>"); fclose($Handle); echo "<meta HTTP-EQUIV='REFRESH' content='0; url=http://localhost/h.php'>"; } ?> </head> <body onLoad="javascript:tekstaan = 1; naamaan = 1;"> <?php $fl = filesize("data.base"); if ($fl > 0) { $Handle = fopen("data.base", 'r'); $alltekst = fread($Handle, $fl); fclose($Handle); echo $alltekst; } ?> <table borde=0> <tr> <td> <form name="zendform" action="h.php" method="post"> <table border=0> <tr> <td>Naam:</td> <td><input name="naam" type="text" size="30" maxlength="20" value="Anoniem" onFocus="javascript:if(naamaan == 1){ zendform.naam.value=''; naamaan = 0;}" onBlur="javascript:if (zendform.naam.value==''){zendform.naam.value='Anoniem'; naamaan = 1;}"></td> </tr> <tr> <td colspan=2><textarea name="tekst" style="width: 400px; height: 150px;" onFocus="javascript:if(tekstaan == 1){ zendform.tekst.value=''; tekstaan = 0;}" onBlur="javascript:if (zendform.tekst.value==''){zendform.tekst.value='Klik hier om tekst toe te voegen.'; tekstaan = 1;}">Klik hier om tekst toe te voegen.</textarea></td> </tr> </table> </form> </td> </tr> <tr> <td> <button onClick="javascript:if (tekstaan == 1) { document.zendform.tekst.value = ''; tekstaan = 0; } if (document.zendform.tekst.value == '') { alert('Er is geen tekst ingevoerd.'); zendform.tekst.value='Klik hier om tekst toe te voegen.'; tekstaan = 1; } else document.zendform.submit();">Plaats bericht</button> </td> </tr> </table> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo <<< EOF add new category <br /> <form action="/categorie/nieuw" method="POST"> Categorie: <input type="text" name="category" /><br /> <br /> <input type="submit" value="Opslaan" /> </form> EOF; var_dump($_POST); ?> |
Genoeg gratis scriptjes om uit te kiezen, MYSQL is soms niet eens nodig:quote:Op zondag 21 november 2010 12:46 schreef nightfall het volgende:
Misschien kan iemand mij hier een beetje op weg helpen: ik heb een website met een afgeschermt gedeelte waar ik ideen voor mijn band opzet, de rest van mijn bandje kan daar ook komen en het downloaden en beluisteren.
nou is het geval dat zij ook wel eens ideen opnemen en dat ook graag willen delen.
nu heb ik al gekeken naar de mogelijkheden, en bv een opendir zou tot de mogelijkheden behoren, maar zelf zie ik meer in een database waar iedereen bestanden kan toevoegen(beschrijving aangeven, wie het heeft geupload enz), downloaden en deleten(ja ik vertrouw ze). mijn hostingprovider(webreus) ondersteunt mysql zag ik, dus daar moet wel wat mee te doen zijn.
ik heb al lopen zoeken maar nog geen bruikbare voorbeelden gevonden, misschien iemand die me hier op weg kan helpen?
bvd
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 | [php]// Stap 2 - Haal afhangbord data from jiba en filter de huidige tabel eruit. Als er meer dan 10 banen zijn moet dat in meerdere keren $b=1; $tableheight = 600*ceil(($bmax-1)/10); // Bereken de hoogte van de shaded area in het geval >10 banen do { // Build url based on baannummers curl_setopt($ch, CURLOPT_URL, "http://www.jiba-afhangbord.nl/content/html/73.asp?vn=".$vn."&eb=".$b."&ab=".($b+9)); // now call jiba $output = curl_exec($ch); // String replace vars om interne urls werkend te krijgen $uri = $_SERVER['SCRIPT_NAME']; // debug in case we need to change stuff // echo $output; // De tabel begint ergens waar een div style staat met "position: relative" // en eindigt bij een <table width="636"> waar de url in staat voor het wisselen banen // Het kan zijn dat er verenigingen zijn waar minder dan 10 banen zijn en daar zit wellicht die url tabel niet in. // We gooien alle html ervoor en erna gewoon weg $output = strstr($output, '<div style="position: relative;">'); if ($b>1) { // remove the top section with legenda when we have the next set $output = '<tr>'.strstr($output, '<td align="center"'); } $pos = strpos($output, '<table width="636"'); // end of section. Vlak hiervoor staat een </table> tag die we ook nog weg willen if ($pos === false) { if ($b==1) echo "Kan baangegevens niet ophalen"; } else { $output = substr($output, 0, $pos-10); // haal ook nog net het </table> tag extra weg // aanpassen interne URL's naar images en vervolgschermen (indien >10 banen) $output = str_replace("/content/html/73.asp", $uri, $output); // dit is strikt genomen oude code. Is al weggehaald $output = str_replace("/content/images/","",$output); // alle images staan nu op zelfde directory $output = str_replace("Kunstgras","Gras",$output); // Tekst is eigenlijk te lang voor linker kolom $output = str_replace("height:600px;","height:".$tableheight."px;",$output); // Absolute <div> tag met grijs shaded area $output = str_replace("color:#4B793E;","color:#6DA7FF;",$output); // Wijzig onleesbare kleur groen van reserveringen in blauw echo $output; } $b+=10; // next set } while ($b<$bmax); echo "</table></div>"; // en die moeten er nog aan het einde bij // close curl curl_close($ch); // debug: // print_r($_GET); // print_r($_SERVER); ?> </body> </html> |
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 | [php]// Stap 2 - Haal afhangbord data from jiba en filter de huidige tabel eruit. Als er meer dan 10 banen zijn moet dat in meerdere keren $b=1; $bmax = 3 $tableheight = 600*ceil(($bmax-1)/10); // Bereken de hoogte van de shaded area in het geval >10 banen do { // Build url based on baannummers curl_setopt($ch, CURLOPT_URL, "http://www.jiba-afhangbord.nl/content/html/73.asp?vn=".$vn."&eb=".$b."&ab=".($b+2)); // now call jiba $output = curl_exec($ch); // String replace vars om interne urls werkend te krijgen $uri = $_SERVER['SCRIPT_NAME']; // debug in case we need to change stuff // echo $output; // De tabel begint ergens waar een div style staat met "position: relative" // en eindigt bij een <table width="636"> waar de url in staat voor het wisselen banen // Het kan zijn dat er verenigingen zijn waar minder dan 10 banen zijn en daar zit wellicht die url tabel niet in. // We gooien alle html ervoor en erna gewoon weg $output = strstr($output, '<div style="position: relative;">'); if ($b>1) { // remove the top section with legenda when we have the next set $output = '<tr>'.strstr($output, '<td align="center"'); } $pos = strpos($output, '<table width="636"'); // end of section. Vlak hiervoor staat een </table> tag die we ook nog weg willen if ($pos === false) { if ($b==1) echo "Kan baangegevens niet ophalen"; } else { $output = substr($output, 0, $pos-10); // haal ook nog net het </table> tag extra weg // aanpassen interne URL's naar images en vervolgschermen (indien >10 banen) $output = str_replace("/content/html/73.asp", $uri, $output); // dit is strikt genomen oude code. Is al weggehaald $output = str_replace("/content/images/","",$output); // alle images staan nu op zelfde directory $output = str_replace("Kunstgras","Gras",$output); // Tekst is eigenlijk te lang voor linker kolom $output = str_replace("height:600px;","height:".$tableheight."px;",$output); // Absolute <div> tag met grijs shaded area $output = str_replace("color:#4B793E;","color:#6DA7FF;",$output); // Wijzig onleesbare kleur groen van reserveringen in blauw echo $output; } $b+=10; // next set } while ($b<$bmax); echo "</table></div>"; // en die moeten er nog aan het einde bij // close curl curl_close($ch); // debug: // print_r($_GET); // print_r($_SERVER); ?> </body> </html> |
1 2 3 | echo preg_replace(array("/\b(" . preg_quote("We'll Be Here (When You're Gone)", '/') . ")\b/i"), array("gelukt!"), "We'll Be Here (When You're Gone)"); |
1 2 3 | echo preg_replace(array("/\b(" . preg_quote("We'll Be Here (When You're Gone)a", '/') . ")\b/i"), array("gelukt!"), "We'll Be Here (When You're Gone)a"); |
Dat is in dit geval niet erg. Je kunt hier op basis van .htaccess de user een echte of een previewversie serveren, als je Apache gebruikt. PHP gebruiken is hier zonde.quote:Op vrijdag 26 november 2010 09:53 schreef pickup52 het volgende:
Referrer werkt wel maar is te faken. Het beste zou zijn een apart script te maken voor het embedden die automatisch alleen een preview laat zien.
Oeh, kun je eens vertellen hoe? dat zou vet zijn! en scheelt aan extra queriesquote:Op vrijdag 26 november 2010 13:21 schreef GlowMouse het volgende:
[..]
Dat is in dit geval niet erg. Je kunt hier op basis van .htaccess de user een echte of een previewversie serveren, als je Apache gebruikt. PHP gebruiken is hier zonde.
Dat kan, kijk eens naar curl.quote:Op vrijdag 26 november 2010 13:34 schreef Habork het volgende:
Weet iemand of het toevallig mogelijk is om met php een script te maken wat op een externe website een formulier invult en daarvan dan informatie haalt en op eigen website weergeeft? Of moet ik dan aan iets anders gaan denk?
Met mod_rewrite. Als je zoekt op anti-hotlinkscripts dan moet je een eind komen.quote:Op vrijdag 26 november 2010 15:05 schreef Chandler het volgende:
[..]
Oeh, kun je eens vertellen hoe? dat zou vet zijn! en scheelt aan extra queries
Als jij kleine afbeeldingen in een andere map zet of anderszins een herkenbare naam geeft, is het weldegelijk een optie.quote:Op vrijdag 26 november 2010 16:13 schreef Chandler het volgende:
Geen optie zie ik al wel, want kleine afbeeldingen wil ik wel delen maar grote > 500KB wil ik voorzien van een thumbnail Dus dan toch maar via PHP zelf
Ik ben me nu aan het verdiepen in curl, maar hoe zou jij het aanpakken dan?quote:Op vrijdag 26 november 2010 15:04 schreef Chandler het volgende:
Dat is mogelijk maar kost wel bergen met werk
Dat is dus helaas geen optie omdat voor grote plaatjes > 500KB (animaties) een speciale thumbnail gemaakt wordt... maar ik heb nu een workaround en hopelijk vind mijn hoster dat een mooie oplossing!quote:Op vrijdag 26 november 2010 16:14 schreef GlowMouse het volgende:
Als jij kleine afbeeldingen in een andere map zet of anderszins een herkenbare naam geeft, is het weldegelijk een optie.
Ik zou eerst via firefox kijken welke informatie er allemaal naar de server verzonden wordt, daarna kun je met curl precies die data versturen die jij wilt versturen. Na het versturen krijg je data terug en daar kun je weer mee aan de slag.quote:Op vrijdag 26 november 2010 16:15 schreef Habork het volgende:
Ik ben me nu aan het verdiepen in curl, maar hoe zou jij het aanpakken dan?
Dat kan toch? Moet je wel vantevoren doen, en dan kun je die via mod_rewrite serveren.quote:Op vrijdag 26 november 2010 16:44 schreef Chandler het volgende:
[..]
Dat is dus helaas geen optie omdat voor grote plaatjes > 500KB (animaties) een speciale thumbnail gemaakt wordt... maar ik heb nu een workaround en hopelijk vind mijn hoster dat een mooie oplossing!
Dat zei ik.quote:Ik zou eerst via firefox kijken welke informatie er allemaal naar de server verzonden wordt, daarna kun je met curl precies die data versturen die jij wilt versturen. Na het versturen krijg je data terug en daar kun je weer mee aan de slag.
Helaas niet, met mod_rewrite kan ik natuurlijk niet uitlezen welk plaatje > 500KB is en daarvoor een unieke thumbnail maken en die aan de gebruiker toezenden, dat kan ik wel met PHPquote:Op vrijdag 26 november 2010 16:46 schreef GlowMouse het volgende:
Dat kan toch? Moet je wel vantevoren doen, en dan kun je die via mod_rewrite serveren.
quote:Op vrijdag 26 november 2010 16:14 schreef GlowMouse het volgende:
[..]
Als jij kleine afbeeldingen in een andere map zet of anderszins een herkenbare naam geeft, is het weldegelijk een optie.
Toch niet, dan zou ik meerdere rules moeten instellen, want voor het plaatje kan een voorbeeld 90px zijn terwijl ik een 320x240 versie wil serveren met een bepaalde tekst.quote:Op vrijdag 26 november 2010 18:38 schreef GlowMouse het volgende:
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 | <html> <head> <title>MySQL Test</title> </head> <body> <?php // hostname or ip of server (for local testing, localhost should work) $dbServer='localhost'; // username and password to log onto db server $dbUser='root'; $dbPass='geheim'; // name of database $dbName='test'; $link = mysql_connect("$dbServer", "$dbUser", "$dbPass") or die("Could not connect"); print "Connected successfully<br>"; mysql_select_db("$dbName") or die("Could not select database"); print "Database selected successfully<br>"; // close connection mysql_close($link); ?> </body> </html> |
nou, ik ken die namen niet . Verder heb ik een boek over php/mysql, en leren uit boeken gaat mij altijd wat makkelijker af dan zelf maar wat experimenteren en dingen op internet zoeken. Verder lijkt MySQL me een goede keuze omdat MySQL databases ook redelijk makkelijk met andere programmeertalen 'aan te spreken' zijn (ik weet verder niet of dit geldt voor de voorbeelden die jij noemde hoor, daar niet van). Vandaar .quote:Op zaterdag 27 november 2010 08:07 schreef Chandler het volgende:
Waarom gebruik je niet gewoon Wamp of usbwebserver? die zorgen dat alles precies werkt zoals het zou moeten werken
ok, jammer dat ik dat niet gelijk wist want ik heb nu al apache en php up and running alleen mysql nietquote:Op zaterdag 27 november 2010 20:16 schreef pickup52 het volgende:
wamp is gewoon een 1 click installer voor apache+php+mysql die in tegenstelling tot jouw aankloten wel meteen werkt
dan installeer je mysql en kijk je of je met een andere mysql-client wel kunt connectenquote:Op zondag 28 november 2010 02:24 schreef minibeer het volgende:
[..]
ok, jammer dat ik dat niet gelijk wist want ik heb nu al apache en php up and running alleen mysql niet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php $settings = array(); $settings['host'] = 'Localhost'; // Host $settings['user'] = 'Root'; // User $settings['pass'] = ''; // Wachtwoord $settings['datb'] = 'test'; // Database $connection = mysql_connect($settings['host'],$settings['user'],$settings['pass']); $selectdb = mysql_select_db($settings['datb'], $connection); if($connection){ // Wanneer geconnecteerd is if($selectdb){ // Wanneer database geselecteerd is echo 'Database verbonden en geselecteerd.'; } else { // Wanneer niet de database is geselecteerd echo 'Database verbonden maar NIET geselecteerd!'; } } else { // Wanneer niet met de database verbonden is echo 'Niet met de database verbonden!'; } ?> |
Ik heb het niet zelf geschreven, ik heb (nog?) niet veel verstand van php, en al helemaal geen van mysql. Het was standaard code die op een site stond van 'gebruik dit om te kijken of mysql werkt'.quote:Op zondag 28 november 2010 11:12 schreef Dalando het volgende:
Ik heb wamp en ben tevreden. Gewoon installeren, en klaar om te gaan.
Naast Wamp zijn er ook nog vergelijkbare dingen, zoals Xampp en EasyPHP.
En trouwens, dit kan wel wat netter, niet?
[ code verwijderd ]
Want jij gebruikt die, en die is natuurlijk geen oplossing. Je weet dan wel dat er iets fout is maar waar de fout dan zit weet je niet. En mysql_error() aan je gebruikers laten zien is ook niet veilig! Log het in een bestandje of zorg dat er een mailtje verzonden wordt. Kijk maar naar mijn voorbeeld
quote:
de service met de naam mysql wel:quote:Op zondag 28 november 2010 16:10 schreef GlowMouse het volgende:
Je zou kunnen controleren of het draait.
Je moet weten dat veel websites als er iets fout gaan doden (die gebruiken). Dat is geen oplossing.quote:Op zondag 28 november 2010 12:57 schreef minibeer het volgende:
[..]
Ik heb het niet zelf geschreven, ik heb (nog?) niet veel verstand van php, en al helemaal geen van mysql. Het was standaard code die op een site stond van 'gebruik dit om te kijken of mysql werkt'.
Ik zal even kijken naar je voorbeeld, of ik het begrijp is een tweede .
EDIT: Ja, prima te begijpen. Even kijken wat er bij mij gebeurt.
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 | <?php $settings = array(); $settings['host'] = 'Localhost'; // Host $settings['user'] = 'Root'; // User $settings['pass'] = ''; // Wachtwoord $settings['datb'] = 'test'; // Database $connection = mysql_connect($settings['host'],$settings['user'],$settings['pass']); $selectdb = mysql_select_db($settings['datb'], $connection); if($connection){ // Wanneer geconnecteerd is if($selectdb){ // Wanneer database geselecteerd is $connected = true; } else { // Wanneer niet de database is geselecteerd $connected = false; $error = 'Database was niet geselecteerd!'; } } else { // Wanneer niet met de database verbonden is $connected = false; $error = 'Er kon geen connectie gemaakt worden met de database!'; } ?> <!DOCTYPE html> <html> <head> <title>Document</title> </head> <body> <!-- trallalalal etc... --> <?php // En nu willen we iets uit de database weergeven... if($connected == true){ $query = " SELECT * FROM tabel "; $mysqlquery = mysql_query($query); $mysqlrows = mysql_num_rows($mysqlquery); if($mysqlquery){ // Wanneer de query gelukt is if($mysqlrows > 0){ // Wanneer de query een groter aantal resultaten terug geeft als 0 while($rows = mysql_fetch_row($mysqlquery)){ echo rows['iets']; } } else { echo 'Was niks om terug te geven'; } } else { echo 'Query faalde!'; } } else { echo $error; } ?> </body> </html> |
Dat is onzin.quote:Op zondag 28 november 2010 16:14 schreef minibeer het volgende:
[..]
Ik had ergens gelezen dat je normaal eerst mysql installeert en dan bij de installatie van php moet aangeven waar mysql is geïnstalleerd ofzoiets, maar dat heb ik nu dus niet gedaan.
Oquote:
Zover ik weet niet nee.quote:Op zondag 28 november 2010 16:31 schreef minibeer het volgende:
[..]
O
Dus als de MySQL service draait zou php in principe gewoon mysql query's moet kunnen gebruiken?
Of moeten er nog meer dingen gedaan worden?
hij is lelijk.quote:Op zondag 28 november 2010 16:32 schreef Dalando het volgende:
[..]
Zover ik weet niet nee.
En niet eens een complimentje voor mijn mooie scriptje?
je moet kunnen verbinden, vandaar:quote:Op zondag 28 november 2010 16:31 schreef minibeer het volgende:
[..]
O
Dus als de MySQL service draait zou php in principe gewoon mysql query's moet kunnen gebruiken?
Of moeten er nog meer dingen gedaan worden?
quote:Op zondag 28 november 2010 11:04 schreef GlowMouse het volgende:
[..]
dan installeer je mysql en kijk je of je met een andere mysql-client wel kunt connecten
Waarom lelijk? Hij controleert op alles wat je in de basis nodig heb...quote:
Als dit script niet zou werken dan zou ik alles wegmieteren en overnieuw beginnen. Ik ga toch niet door 12 if-statements lezen voor elke query die je uitvoert?quote:Op zondag 28 november 2010 16:34 schreef Dalando het volgende:
[..]
Waarom lelijk? Hij controleert op alles wat je in de basis nodig heb...
Nee? Hoe zou jij het dan doen?quote:Op zondag 28 november 2010 16:39 schreef GlowMouse het volgende:
[..]
Als dit script niet zou werken dan zou ik alles wegmieteren en overnieuw beginnen. Ik ga toch niet door 12 if-statements lezen voor elke query die je uitvoert?
Geen zinloos commentaar opnemen; gebruikmaken van classes; logica en opmaak scheiden.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 | <?php $settings = array(); $settings['host'] = 'Localhost'; // Host $settings['user'] = 'Root'; // User $settings['pass'] = ''; // Wachtwoord $settings['db'] = 'test'; // Database $db = new db($settings['host'], $settings['user'], $settings['pass'], $settings['db']); $sql = "SELECT * FROM tabel"; $res = $db->query($sql); $rows = array(); while($row = $db->getRows($res)) { $rows[] = $row; } ?> <!DOCTYPE html> <html> <head> <title>Document</title> </head> <body> <!-- trallalalal etc... --> <?php foreach($rows as $row) { echo rows['iets']; } if(count($rows) == 0) { echo 'niks'; } ?> </body> </html> |
En PHP zonder webserver.quote:Op zondag 28 november 2010 16:48 schreef b4kl4p het volgende:
MySQL is een server en staat helemaal los van PHP.
PHP is een interpreter die een bestand inleest en dan zijn compiler er op loslaat.
Wat dat betreft zijn voor beginnelingen installatie pakketten behoorlijk misleidend. MySQL kan ook aangeroepen worden vanuit perl of elke andere taal, het ligt eraan hoe je interface ligt.
en bla bla bla, toen had ik geen zin meer
Een webserver is natuurlijk essentieel.quote:
Waarbij http natuurlijk het protocol is. Je kunt ook https of ftp gebruiken. Maar dan komen we al snel in in heel ander gebied van de computer science.quote:Op zondag 28 november 2010 16:57 schreef b4kl4p het volgende:
[..]
Een webserver is natuurlijk essentieel.
Wat een webserver doet is een aanvraag van: http://bestand.html vertalen naar een opening van het bestand. Dit lijkt makkelijk maar er komen behoorlijk veel security issues bij kijken om dat ene bestand te openen.
Wat PHP doet is tijdens het openen van bestand.html (of php, je kunt zelf je extensie kiezen) bepaalde code draaien wat verschillende uitvoer mogelijk maakt. Dat maakt het dynamisch.
o hee sorry man! mooi scriptjequote:Op zondag 28 november 2010 16:32 schreef Dalando het volgende:
[..]
Zover ik weet niet nee.
En niet eens een complimentje voor mijn mooie scriptje?
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Waar ik ook niks van snap, maar wel een tentamen over heb gehad. En nee, ik weet het cijfer nog nietquote:Op zondag 28 november 2010 17:04 schreef b4kl4p het volgende:
[..]
Waarbij http natuurlijk het protocol is. Je kunt ook https of ftp gebruiken. Maar dan komen we al snel in in heel ander gebied van de computer science.Finally, someone let me out of my cage
Natuurlijk niet, php kun je ook prima vanaf de command line draaien.quote:Op zondag 28 november 2010 16:57 schreef b4kl4p het volgende:
[..]
Een webserver is natuurlijk essentieel.
quote:Op zondag 28 november 2010 17:06 schreef minibeer het volgende:
[..]
o hee sorry man! mooi scriptjeEindelijk is mijn kennis nuttig. Protocollen worden behandeld door aparte services.SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.[..]
Waar ik ook niks van snap, maar wel een tentamen over heb gehad. En nee, ik weet het cijfer nog niet
Stel je voor:
Server
heeft een webserver
heeft een ftpserver
webserver heeft poort 80
ftpserver heeft poort 21
Wanneer je in bijvoorbeeld firefox naar http://server/index.html gaat dan wordt automatisch poort 80 aangeroepen. Wanneer je ftp://server aanroept wordt automatisch poort 21 aangeroepen.
Wat en hoe de poorten werken is een server issue, dus mijn linux bak heeft een ftp server draaien op poort 21. Als ik daar 2000 can wil maken kan dat ook. Maar dat moet ik als functie netwerkadmin doen. Niet als webdeveloper.Wie dit leest is een lezer van dit.
De commandline client doet het wel geloof ik.quote:Op zondag 28 november 2010 16:33 schreef GlowMouse het volgende:
je moet kunnen verbinden, vandaar:
"dan installeer je mysql en kijk je of je met een andere mysql-client wel kunt connecten"
en je haalt poort en protocol door elkaar.quote:Op zondag 28 november 2010 17:11 schreef b4kl4p het volgende:
[..]
Maar dat moet ik als functie netwerkserveradmin doen. Niet als webdeveloper.
Ligt eraan waar jouw verantwoordelijkheden liggen natuurlijk, als jij 1 server onder je beheer hebt ben je inderdaad een serveradmin. Moet zeggen dat ik het een beetje zeikerig vind.quote:Op zondag 28 november 2010 17:15 schreef GlowMouse het volgende:
[..]
en je haalt poort en protocol door elkaar.
Op http://www.faqs.org/rfcs/rfc2616.html wordt het protocol besproken. Probeer een pagina van FOK! maar eens op te vragen mbv telnet, dan heb je veel meer nodig dan alleen poort 80.quote:Op zondag 28 november 2010 17:20 schreef b4kl4p het volgende:
[..]
Kun je me vertellen waar ik poort en protocol door elkaar haal? Aangezien elk protocol een standaard poort heeft (welke uiteraard te wijzigen is) denk ik dat ik aardig safe zit.
1 2 3 4 | telnet fok.nl 80 GET /topic/1559428/2/50 HTTP/1.0 Host: forum.fok.nl (tweemaal enter) |
Ja bleh, schrijf jij je eigen tcp/ip protocol interpretatie maar eerst. Je kunt natuurlijk altijd boven de php beginner (waar dit topic toch om draait) uit blijven steken maar hulp is gevraagd over dit onderwerp. Dat ik je er qua computerkennis afmat moge duidelijk zijn.. met je telnet.quote:Op zondag 28 november 2010 17:24 schreef GlowMouse het volgende:
[..]
Op http://www.faqs.org/rfcs/rfc2616.html wordt het protocol besproken. Probeer een pagina van FOK! maar eens op te vragen mbv telnet, dan heb je veel meer nodig dan alleen poort 80.
[ code verwijderd ]
Hij heeft wel een beetje gelijk... je kraakt eerst iemand's leuke korte en handig voorbeeld af en geeft nu weinig info... ja ik kan het weten want ik leer ook niet rete rap glow... dat weet jij ookquote:
Ik zou normaliseren aanraden, al betekent dat wel exact het tegenovergestelde van combinerenquote:Combineren (normaliseren)
Wat is precies het verschil? Die websites maken me ook niet veel wijzerquote:Op maandag 29 november 2010 13:59 schreef Chandler het volgende:
usbwebserver werkt anders ook heerlijk!
Met usb webserver doet mysql het ook nietquote:Op maandag 29 november 2010 15:52 schreef Chandler het volgende:
USB draait overal zonder rare installaties etc
Ik kom met een voorbeeld van een beter script, en ik kom met hoe je HTTP 1.0 spreekt.quote:Op maandag 29 november 2010 08:39 schreef Chandler het volgende:
[..]
Hij heeft wel een beetje gelijk... je kraakt eerst iemand's leuke korte en handig voorbeeld af en geeft nu weinig info..
True maar vraag mij echt af of jij vanaf het begin gelijk met classes aan de gang bent gegaan? ik niet Beginnen met de basicsquote:Op maandag 29 november 2010 16:44 schreef GlowMouse het volgende:
check je firewall oid.
[..]
Ik kom met een voorbeeld van een beter script, en ik kom met hoe je HTTP 1.0 spreekt.
Ik zou eerder kijken naar classes dan naar dingen als or die(mysql_error()).quote:Op maandag 29 november 2010 19:56 schreef Chandler het volgende:
[..]
True maar vraag mij echt af of jij vanaf het begin gelijk met classes aan de gang bent gegaan? ik niet Beginnen met de basics
True maar dat deed je ws ook niet voordat iemand je vertelde over classes. In het begin wil iedereen een gastenboek en dat soort zaken maken, veelal bestaand uit maar 1 scriptje... nu weet ik beter en werk zelf met vele tientallen classes en subclasses.... maar dat deed ik een jaar geleden nog amper ;Pquote:Op maandag 29 november 2010 19:59 schreef GlowMouse het volgende:
[..]
Ik zou eerder kijken naar classes dan naar dingen als or die(mysql_error()).
Ik gebruik een zelfgemaakte Validator class. Die roep ik aan in de vorm vanquote:Op maandag 29 november 2010 20:37 schreef Chandler het volgende:
[..]
True maar dat deed je ws ook niet voordat iemand je vertelde over classes. In het begin wil iedereen een gastenboek en dat soort zaken maken, veelal bestaand uit maar 1 scriptje... nu weet ik beter en werk zelf met vele tientallen classes en subclasses.... maar dat deed ik een jaar geleden nog amper ;P
Leuke vraag; doe je validatie ook in je classes of in je script?
Doe eens: select 1;quote:Op zondag 28 november 2010 17:14 schreef minibeer het volgende:
[..]
De commandline client doet het wel geloof ik.
Weet het niet helemaal zeker, maar ik kan 'inloggen' met mijn wachtwoord. Ik weet verder niet hoe ik dan query's kan uitvoeren of iets dergelijks
ik heb nu usbwebserver, waar volgens mij geen commandline client op staat...quote:Op dinsdag 30 november 2010 18:18 schreef GlowMouse het volgende:
[..]
Doe eens: select 1;
PHP is een MySQL-client net als de commandline client. Als het niet werkt, zul je het in beveiligingsinstellingen moeten zoeken.
Classes zijn handig, maar pas wel op dat je niet voor elk klein dingetje een volledige class gaat maken, en zorg ervoor dat alleen de classen worden ingeladen die benodigd zijn. Ik ben daar zelf ook al eens behoorlijk mee in de mist gegaan, met als gevolg dat het script langzaam werd en veel geheugen ging vreten.quote:Op maandag 29 november 2010 20:37 schreef Chandler het volgende:
[..]
en werk zelf met vele tientallen classes en subclasses.... maar dat deed ik een jaar geleden nog amper ;P
1 2 3 4 5 6 7 8 9 10 11 12 | <?php public static function parseLinks($string, $mailing) { $pattern = '#<a[^>]*href="(.*?)"[^>]*>(.*?)</a>#i'; preg_match_all($pattern, $string, $result, PREG_PATTERN_ORDER); if(is_array($result) && sizeof($result) > 0) { // doe hier iets met de gevonden links } } ?> |
Dan doe je toch iets fout. OO werken binnen PHP zou niet vertragend mogen werken.quote:Op dinsdag 30 november 2010 23:49 schreef The_Terminator het volgende:
[..]
Classes zijn handig, maar pas wel op dat je niet voor elk klein dingetje een volledige class gaat maken, en zorg ervoor dat alleen de classen worden ingeladen die benodigd zijn. Ik ben daar zelf ook al eens behoorlijk mee in de mist gegaan, met als gevolg dat het script langzaam werd en veel geheugen ging vreten.
Onzin, een gemiddelde pageview van een groot project waar ik nu aan werk gebruikt zo'n 100 klassen. Als je je autoloading goed voor elkaar hebt en geen vretende dingen in je constructoren propt is er absoluut niks aan de hand.quote:Op dinsdag 30 november 2010 23:49 schreef The_Terminator het volgende:
[..]
Classes zijn handig, maar pas wel op dat je niet voor elk klein dingetje een volledige class gaat maken, en zorg ervoor dat alleen de classen worden ingeladen die benodigd zijn. Ik ben daar zelf ook al eens behoorlijk mee in de mist gegaan, met als gevolg dat het script langzaam werd en veel geheugen ging vreten.
Erger zijn denk ik grote klassen waarvan je maar een klein deel gebruikt. Vertraging is natuurlijk ook maar hoe je het meet; 10ms om de php van een pagina te verwerken vind ik lang terwijl je er als gebruiker niks van merkt.quote:Op woensdag 1 december 2010 10:17 schreef Intrepidity het volgende:
[..]
Onzin, een gemiddelde pageview van een groot project waar ik nu aan werk gebruikt zo'n 100 klassen. Als je je autoloading goed voor elkaar hebt en geen vretende dingen in je constructoren propt is er absoluut niks aan de hand.
Edit: even gecontroleerd, gemiddelde pageview laadt 171 klassen. Absoluut geen vertraging.
Compileert PHP de methodes tijden declaratie of uitvoer? Als het dat laatste is en PHP alleen inventariseert wat er allemaal aanwezig is in die klasse hoeft dat ook niet zo gek veel uit te maken. Maargoed, ookal zou het allemaal sloom worden, het is geen rocket science meer tegenwoordig om een opcode cache aan de gang te krijgen, dat zou al een berg moeten schelen.quote:Op woensdag 1 december 2010 11:29 schreef GlowMouse het volgende:
[..]
Erger zijn denk ik grote klassen waarvan je maar een klein deel gebruikt. Vertraging is natuurlijk ook maar hoe je het meet; 10ms om de php van een pagina te verwerken vind ik lang terwijl je er als gebruiker niks van merkt.
Klopt, mijn classes worden pas geladen als ze aangeroepen wordenquote:Op dinsdag 30 november 2010 23:49 schreef The_Terminator het volgende:
[..]
Classes zijn handig, maar pas wel op dat je niet voor elk klein dingetje een volledige class gaat maken, en zorg ervoor dat alleen de classen worden ingeladen die benodigd zijn. Ik ben daar zelf ook al eens behoorlijk mee in de mist gegaan, met als gevolg dat het script langzaam werd en veel geheugen ging vreten.
Anderzijds kun je met OOP code generaliseren en centraliseren, terwijl je code bij procedureel programmeren wellicht een aantal keer herhaalt. Bij goed gebruik van OOP is dat dus zeker geen performancenadeel.quote:Op woensdag 1 december 2010 11:52 schreef GlowMouse het volgende:
Tijdens declaratie, hoewel je tegenwoordig met APC en lazy loading dat nadeel deels kunt opheffen.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php if (substr ($sElement, -5) != '.html' || substr ($sElement, -4) != '.css' || substr ($sElement, -4) != '.ico' || substr ($sElement, -4) != '.jpg' || substr ($sElement, -3) != '.js' || substr ($sElement, -4) != '.png' || substr ($sElement, -3) != '.7z') { echo 'nofile'; } else { echo 'yeahfile'; } ?> |
Je moet && ipv || gebruiken. Of beter: http://nl2.php.net/is_filequote:Op donderdag 9 december 2010 10:53 schreef Xanland het volgende:
Even een vraagje over vreemd gedrag van OR's in een if. Ik heb het volgende stukje:
[ code verwijderd ]
In dit stukje controleer ik dus of het een bestand is of map. Het vreemde is dat dit gewoon niet werkt. In principe vraag ik gewoon of het niet die extensie heeft (en dus vaak een map is in mijn geval), en maak ik een map met die naam aan. Anders doe ik gewoon de file_get_c functie en gooi die in een bestand.
Om de één of andere manier werkt dit dus niet, want op deze manier maakt hij als het een bestand is, een MAP aan met die naam (of echo'd hij dus nofile). Wat gaat hier nou fout?
Is er btw nog een betere manier om te detecteren of het een file is of niet, heeft PHP daar een classe o.i.d. voor?
WHERE klantid=1000 AND (toestelid=0 OR toestelid=25)quote:Op donderdag 9 december 2010 10:54 schreef wobbel het volgende:
Hoe doe ik een SQL statement waar het veld "KlantId" == "1000" moet zijn, maar waar het veld "ToestelId" zowel 0 als 25 kan zijn?
Select from table_name where KlantID = 1000 AND ToestelId = 0 OR ToestelId = 25quote:Op donderdag 9 december 2010 10:54 schreef wobbel het volgende:
Hoe doe ik een SQL statement waar het veld "KlantId" == "1000" moet zijn, maar waar het veld "ToestelId" zowel 0 als 25 kan zijn?
Tuurlijk, ik word eindelijk wakker, want bij || komt het juist overeen. Bij && weet je ofcourse zeker dat het niet die extensie heeft.quote:Op donderdag 9 december 2010 10:58 schreef GlowMouse het volgende:
[..]
Je moet && ipv || gebruiken. Of beter: http://nl2.php.net/is_file
Je wilt uitspraken doen over iets waarvan je niet eens weet of het bestaat, aan de hand van de naam?quote:Op donderdag 9 december 2010 11:16 schreef Xanland het volgende:
[..]
Tuurlijk, ik word eindelijk wakker, want bij || komt het juist overeen. Bij && weet je ofcourse zeker dat het niet die extensie heeft.
is_file kan hier niet, tenminste... het werkt bij mijn weten namelijk niet op externe files via http, of wel ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $tafel = $_POST['tafelg']; if(isset($_POST['tafel'])) { echo"<table>"; echo"<tr><th>cijfer</th>"; echo"<th>uitkomst</th></tr>"; for($counter = 0; $counter <= 10; $counter++) { echo "<tr><td>"; echo $counter; echo "</td><td>"; echo $tafel * $counter; echo "</td></tr>"; } echo "</table>"; } |
Yupquote:
1 | $counter%2 == 0 ? //zwart : //wit |
Ik denk dat Scorpie juist niet het antwoord wilde voorkauwen. Gelukkig werkt jouw code ook niet zonder aanpassingen.quote:
Ah, dat maakt niet uit hoor. Ik had al even wat andere dingen geprobeerd zoals:quote:Op donderdag 9 december 2010 11:54 schreef Light het volgende:
[..]
Ik denk dat Scorpie juist niet het antwoord wilde voorkauwen. Gelukkig werkt jouw code ook niet zonder aanpassingen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $tafel = $_POST['tafelg']; $i=TRUE; if(isset($_POST['tafel'])) { echo"<table border=1>"; echo"<tr><th>cijfer</th>"; echo"<th>uitkomst</th></tr>"; for($counter = 0; $counter <= 10; $counter++) { echo "<tr><td class=\"" . ($i ? classnaam1 : classnaam2) . "\">"; echo $counter; echo "<tr><td class=\"" . ($i ? classnaam1 : classnaam2) . "\">"; echo $tafel * $counter; echo "</td></tr>"; $i = !$i; } echo "</table>"; } |
Doe maar niet op die manier, kan wel maar is een beetje vies.quote:Op donderdag 9 december 2010 11:57 schreef mcf het volgende:
[..]
Ah, dat maakt niet uit hoor. Ik had al even wat andere dingen geprobeerd zoals:
[ code verwijderd ]
Hij lijkt nog niet te werken maar ik kom al dichterbij
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 | $tafel = $_POST['tafelg']; if(isset($_POST['tafel'])) { $eo = 5; if($eo % 2 == 0) { echo"<table border=1 bgcolor=cccccc>"; } else { echo"<table>"; } echo"<tr><th>cijfer</th>"; echo"<th>uitkomst</th></tr>"; for($counter = 0; $counter <= 10; $counter++) { echo "<tr><td>"; echo $counter; echo "</td><td>"; echo $tafel * $counter; echo "</td></tr>"; } echo "</table>"; } |
$eo als 5 setten werkt natuurlijk niet. Je moet je counter gebruiken en modulus 2 doen.quote:Op donderdag 9 december 2010 12:44 schreef mcf het volgende:
Ik dacht aan zoiets:
[ code verwijderd ]
Naar mijn inzien zou dit moeten werken, weet iemand waar het fout gaat.
De modulo operator deelt een getal door een ander getal en geeft de restwaarde terug. Dus, stel, je hebt 3 en je doet 3 % 2 (3 modulo 2), dan hou je 1 over. Bij 4 hou je 0 over. Bij 5 hou je 1 over. Bij 6 hou je nul over.....zie je het patroon?quote:Op donderdag 9 december 2010 12:44 schreef mcf het volgende:
Ik dacht aan zoiets:
[ code verwijderd ]
Naar mijn inzien zou dit moeten werken, weet iemand waar het fout gaat.
Als ik het zo bekijk (ja in 1 minuut inderdaad) is het gewoon Smarty maar dan anders? Wat zijn de voordelen?quote:
Stukken sneller, goed gebruik gemaakt van OO en daardoor heel makkelijk aanpasbaar en uitbreidbaar, en binnenkort ook standaard template-engine in Symfonyquote:Op zaterdag 11 december 2010 15:53 schreef KomtTijd... het volgende:
[..]
Als ik het zo bekijk (ja in 1 minuut inderdaad) is het gewoon Smarty maar dan anders? Wat zijn de voordelen?
Twig compileert een template naar pure PHP code. Dus nadat een template voor het eerst gerenderd is wordt er in het vervolg alleen pure PHP gedraaid, en is de overhead van de template engine dus verwaarloosbaar. Volgensmij doet Smarty dat niet, en zit daar het grote verschilquote:Op zaterdag 11 december 2010 18:24 schreef KomtTijd... het volgende:
Ik heb er geen last van. Maargoed de websites die ik beheer hoeven ook niet bepaald high performance te zijn. Ben wel benieuwd dan hoeveel % van de rekenkracht van bijv. FOK in smarty gaat zitten... Of wat de winst zou kunnen zijn...
In gebruik maakt de manier waarop het geprogrammeerd is weinig uit toch, lijkt me?
Dank uquote:Op maandag 13 december 2010 09:44 schreef FastFox91 het volgende:
Google -> tijd groet php
http://www.sitemasters.be(...)en,_middag,_avond%29
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | CREATE TABLE IF NOT EXISTS `pix` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `categoryMain` varchar(25) NOT NULL, `categorySub` varchar(50) NOT NULL, `tags` varchar(100) NOT NULL, `user_id` int(10) unsigned NOT NULL, `user_ip` int(11) NOT NULL, `accepted` enum('y','n') NOT NULL, `filetype` tinyint(3) unsigned NOT NULL, `filename` varchar(40) NOT NULL, `filedate` date NOT NULL, `filesize` int(10) unsigned NOT NULL, `filex` mediumint(9) NOT NULL, `filey` mediumint(9) NOT NULL, `filecrc` char(40) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `categorySub` (`categorySub`,`filetype`,`filesize`,`filex`,`filey`,`filecrc`), KEY `categoryMain` (`categoryMain`,`categorySub`), KEY `filedate` (`filedate`), KEY `accepted` (`accepted`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
1 2 3 4 5 6 7 8 | SELECT `pix`.`categoryMain`, `pix`.`categorySub`, `pix`.`filedate` FROM `pix` WHERE `pix`.`accepted` = 'y' GROUP BY `pix`.`categorySub` ORDER BY `pix`.`filedate` DESC LIMIT 10 |
1 2 | id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE pix index accepted filedate 3 NULL 10 Using where; Using temporary |
Het laatst toegevoegde plaatje per subcategorie, toch? Want dat krijg je zo met zekerheid niet.quote:Op woensdag 15 december 2010 13:10 schreef Chandler het volgende:
Omdat ik maar 1 plaatje per subcategorie wil zien!
Klopt! distinct zou zeker beter zijn? ik ga er even mee spelen!quote:Op woensdag 15 december 2010 13:29 schreef Light het volgende:
[..]
Het laatst toegevoegde plaatje per subcategorie, toch? Want dat krijg je zo met zekerheid niet.
En nu ga ik eerst weer werken
Distinct is in de meeste gevallen sneller.quote:Op woensdag 15 december 2010 15:42 schreef Chandler het volgende:
[..]
Klopt! distinct zou zeker beter zijn? ik ga er even mee spelen!
Jaquote:Op vrijdag 17 december 2010 12:16 schreef Keiichi het volgende:
Een vraag waar ik al een tijdje mee loop. Met real_escape_string kun je goed waardes escape om veilig in je queries te maken. Maar voor integers gebruik ik altijd iets in de trend van sprintf("SELECT * FROM `bla` WHERE `id` = %d", $id);
Is dat ook een veilig optie?
http://nl3.php.net/sprintf kijk bij punt zes wat %d precies betekent.quote:Op vrijdag 17 december 2010 15:48 schreef Chandler het volgende:
Light vertel eens waarom dat wel een veilige optie is? stel $id = $_GET['id'] dan worden slashes toch niet gequoted of wel?
1 2 3 4 5 6 | <?php include("head.txt"); include("menu/inhoud-menu.txt"); include("inhoud-ih.txt"); include("end.txt"); ?> |
Jaquote:Op maandag 20 december 2010 00:44 schreef raav1 het volgende:
moet ik alle bestanden op t35.com hosten zodat iedereen deze kan zien?
1 2 3 4 5 6 | <?php require("head.txt"); require("menu/inhoud-menu.txt"); require("inhoud-ih.txt"); require("end.txt"); ?> |
1 2 3 4 5 6 7 8 9 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>MUN</title> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" media="all" type="text/css" href="menu/menu_style.css" /> </head> <body> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!-- AVAILABLE COLORS --> <!-- aqua, blue, gray, lime, orange, pink, purple, red --> <!-- TO APPLY A COLOR CHOICE --> <!-- Change the color class on the first div to one of the above mentioned colors --> <div class="menu bubplastic horizontal gray"> <ul> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Home</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Specs</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">FAQ</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Small</span></a></span></li> </ul> <br class="clearit" /> </div> |
1 2 | heer kun je tekst en ander dingen plaatsen op te laten zien bij ons op school<br /> wtf niet alleen op school overal :o |
1 2 3 | </body> </html> |
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>MUN</title> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" media="all" type="text/css" href="menu/menu_style.css" /> </head> <body> <!-- AVAILABLE COLORS --> <!-- aqua, blue, gray, lime, orange, pink, purple, red --> <!-- TO APPLY A COLOR CHOICE --> <!-- Change the color class on the first div to one of the above mentioned colors --> <div class="menu bubplastic horizontal gray"> <ul> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Home</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Specs</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">FAQ</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Small</span></a></span></li> </ul> <br class="clearit" /> </div> </body> </html> |
...zodat je niet 100x het menu moet aanpassen als je één linkje toevoegt?quote:Op maandag 20 december 2010 13:19 schreef Sitethief het volgende:
Sowieso is dit geen PHP issue, maar eerder HTML/CSS die niet helemaal correct is.
Ik snap trouwens niet waarom je voor zo'n simpele statische website PHP gebruikt? Het voegt verder helemaal niks toe.
1 2 | character "" not allowed in prolog <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3… |
1 | Ik snap trouwens niet waarom je voor zo'n simpele statische website PHP gebruikt? Het voegt verder helemaal niks toe. |
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>MUN</title> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" media="all" type="text/css" href="menu/menu_style.css" /> </head> <body><!-- AVAILABLE COLORS --> <!-- aqua, blue, gray, lime, orange, pink, purple, red --> <!-- TO APPLY A COLOR CHOICE --> <!-- Change the color class on the first div to one of the above mentioned colors --> <div class="menu bubplastic horizontal gray"> <ul> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Home</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Specs</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">FAQ</span></a></span></li> <li><span class="menu_r"><a href="http://www.cssmenumaker.com"><span class="menu_ar">Small</span></a></span></li> </ul> <br class="clearit" /> </div>heer kun je tekst en ander dingen plaatsen op te laten zien bij ons op school<br /> wtf niet alleen op school overal :o </body> </html> |
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Broncode die mijn firefox uitspuugt.
Het is toch echt een spatie. Het je niet toevallig een enter of spatie voor je php tag staan?quote:Op maandag 20 december 2010 16:31 schreef raav1 het volgende:
oke maar is de enter boven dat menu er wel of ook niet?
Kijken of er toevallig een enter of spatie voor je opening php tag staat? Waarschijnlijk is dat ergens in home.php, aangezien je daar je php hebt staan.quote:
Het ligt wel aan de UTF8 Byte Order Mark. UTF8 is niet het probleem, die byte order mark wel.quote:Op maandag 20 december 2010 17:21 schreef raav1 het volgende:
@glowmuis het ligt niet aan de unicode utf8
jah het lach inderdaad aan het voormaat van de txt bestanden...quote:kan het liggen aan het voormaat van de txt bestanden?
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 | <!doctype html> <html> <head> <title>hoi</title> <base href="http://duft.nl/web/" /> <script type="text/javascript"> var y = "http://"+location.hostname+location.pathname; if (y.lastIndexOf("/")+1<y.length) {y+= "/";} function geef(x) { var thsize = document.getElementById('thsize').value; document.getElementById("ubb").value += "[img]" + y + x + "[/img] \r"; document.getElementById("ubbthumb").value += "[url=http://duft.nl/web/"+x+"][img]http://duft.nl/image/" +thsize+ "/web/"+ x + "[/img][/url] \r"; // document.getElementById("html").value += "<img src='" + y + x + "' alt='" + x + "'> \r"; // document.getElementById("htmlthumb").value += "<img src='http://duft.nl/image/" +thsize+ "/web/" + x + "' alt='" + x + "'> \r"; } function leeg(){ document.getElementById("ubb").value = ""; document.getElementById("ubbthumb").value = ""; // document.getElementById("html").value =""; // document.getElementById("htmlthumb").value =""; } </script> <style> body {background:#eee} .header {position:fixed; top:0;left:0;background:#eee;width:100%;border-bottom:1px solid black;text-align:center;padding:3px;} textarea {width:48%;height:90px;} .gallery {margin-top:135px; text-align:justify;} .tegel {display:inline-block; height:140px; border: 1px solid grey; -moz-border-radius:5px; margin:5px 2px; padding:4px;text-align:center;background:white;} .tegel img {height:100px; max-width:300px; display:block; margin:0 auto;} .bottom{display:inline-block;width:100%;} </style> </head> <body> <div class="header"> <textarea id="ubb"></textarea> <textarea id="ubbthumb"></textarea><br> <!--<textarea id="html"></textarea> <textarea id="htmlthumb"></textarea><br>--> thumb size: <input type='text' value='500' id='thsize'> <button onclick="leeg()">velden leegmaken</button> <a href='?showall=true'> show all</a> </div> <div class="gallery"> <?php $files = glob("{*.jpg,*.JPG,*.gif,*.GIF,*.png,*.PNG}", GLOB_BRACE); array_multisort( array_map( 'filemtime', $files ), SORT_NUMERIC, SORT_DESC, $files ); $i = 0; $showall = $_GET['showall']; foreach ($files as $value) { echo("<div class='tegel'><a href='{$value}'><img src='http://duft.nl/image/thumb/web/{$value}' title='$value' ></a>"); echo("<a href='javascript:geef(\"".rawurlencode($value)."\")'>toevoegen</a><br> \n"); echo('<small>'.date("j-m-'y @ G:i",filemtime($value))."</small></div> \n" ); $i++; if ($i == 25 && $showall !== 'true') {break;} } ?> <div class="bottom"></div> </div> </body> </html> |
1 2 3 4 5 6 7 8 9 10 | <?php $array = array( [0] => array('name' => 'Piet', 'leeftijd' => '20'), [1] => array('name' => 'Jan', 'leeftijd' => '18') ); print_r($array[1]); ?> |
1 2 3 4 | $array = array( array('name' => 'Piet', 'leeftijd' => '20'), array('name' => 'Jan', 'leeftijd' => '18') ); |
En zoals ik ook daar al gepost had:quote:
quote:Op woensdag 5 januari 2011 13:38 schreef KomtTijd... het volgende:
[..]
Niet aan PHP code gaan zitten kloten als je er geen verstand van hebt. gebruik de templates.
1 2 3 | <?php wp_list_comments(array('type'=>comment,'callback'=>mytheme_comment,'avatar_size'=>50, 'reply_text'=>__('<font color=\"black\">Reageer</font>','OnTheGo'))) ; ?> |
1 2 3 4 | <?php ini_set('display_errors',1); error_reporting(E_ALL); ?> |
Probeer het eens.quote:Op vrijdag 7 januari 2011 11:27 schreef Graseter het volgende:
Ik heb nou error reporting aan op deze manier:
[ code verwijderd ]
Is die ini_set dan echt nodig?
Als je ze per definitie weer wilt geven; ja. Je kunt je error_reporting op E_ALL hebben, met bijvoorbeeld een zelfgemaakte errorhandler ingesteld om rapporten op te slaan, etc, maar dat ze niet automatisch gedumpt worden naar het scherm van de gebruiker. Errors weergeven is natuurlijk niet bepaald wenselijk in een productieomgeving, maar afhandeling wel. Error_reporting heeft daarnaast ook effect op logbestanden van PHP zelf bijvoorbeeld en is dus breder dan weergave alleen.quote:Op vrijdag 7 januari 2011 11:27 schreef Graseter het volgende:
Ik heb nou error reporting aan op deze manier:
[ code verwijderd ]
Is die ini_set dan echt nodig?
Ik wil niet gehele tags verwijderen maar alleenquote:Op vrijdag 7 januari 2011 17:27 schreef FastFox91 het volgende:
http://php.net/manual/en/function.strip-tags.php
1 2 3 4 5 6 7 | CREATE TABLE kalender ( id int(11) NOT NULL auto_increment, naam varchar(50) NOT NULL default '', datum varchar(15) NOT NULL default '', overleden varchar(15) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; |
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 | <?php include("connect.php"); $check=0; $tel=0; $date = getdate(); $gdatum= $date['mday'].'-'.$date['mon']; $datum = $date['mday'].'-'.$date['mon'].'-'.$date['year']; $query1=mysql_query("SELECT id, datum, naam, overleden FROM kalender"); echo ('<h2>De jarige(n) van vandaag zijn: </h2><br><br><br><br>'); while($result1=mysql_fetch_array($query1)){ $gbjaar=substr($result1['datum'], -4); $geboorte = substr($result1['datum'], 0,-5); if($geboorte==$gdatum){ $leeftijd = $date['year']-$gbjaar; echo ($result1['naam'].', '.$geslacht.' is '.$leeftijd.' jaar geworden.<br>'); }else{ $check=$check+1; } $tel=$tel+1; } if($check==$tel){ echo('Er zijn vandaag geen jarigen.'); } ?> |
Voor het opslaan van een datum kun je beter het veldtype DATE gebruiken. Daar kun je makkelijk mee rekenen, en dan kun je ook de jarigen in de komende week aangeven. Met een beetje pech moet je wel het halve script herschrijven voor die aanpassing.quote:Op zaterdag 8 januari 2011 12:14 schreef Uw_ergste_nachtmerrie het volgende:
Mijn tweede vraag is of er ook een mogelijkheid is om de verjaardagen van de komende week toe te voegen. Of is daar het script en de tabel te gammel voor? Anders laat ik het zoals het nu is.
vimquote:Op zaterdag 8 januari 2011 14:11 schreef Graseter het volgende:
Welk programma gebruiken jullie eigenlijk voor PHP projecten?
TextMate.quote:Op zaterdag 8 januari 2011 14:11 schreef Graseter het volgende:
Welk programma gebruiken jullie eigenlijk voor PHP projecten?
Daar was ik inmiddels al achter.. Een groot script (her)schrijver ben ik niet, maar ik ga binnenkort m.b.v. vriendin Google wel eens aan de slag.quote:Op zaterdag 8 januari 2011 14:05 schreef Light het volgende:
[..]
Voor het opslaan van een datum kun je beter het veldtype DATE gebruiken. Daar kun je makkelijk mee rekenen, en dan kun je ook de jarigen in de komende week aangeven. Met een beetje pech moet je wel het halve script herschrijven voor die aanpassing.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php include "connect.php"; //verbinding maken $query ='SELECT `Seizoen` , `Gespeeld` , `Basis` , `Vervangen` , `Inval` , `Minuten` , `Goals` , `Geel` , `Geelrood` , `Rood` , `Go` FROM `speler` WHERE `ID`=160 '; $sql = mysql_query($query) or die ( mysql_error( ) ); //query is uitgevoerd echo "<table border='0' align='left'><br /> <tr><td><strong>Seizoen</strong></td><td><strong>Gesp.</strong></td><td><strong>Basis.</strong></td><td><strong>Inval</strong></td><td><strong>Verv.</strong></td><td><strong>Minuten</strong></td><td><strong>Geel</strong></td><td><strong>G/R</strong></td><td><strong>Rood</strong></td><td><strong>Goals</strong></td><td><strong>Go</strong></td></tr>"; $positie = 1; while($record = mysql_fetch_object($sql)) { if ( ($positie == 1) || ($record->Seizoen <= $vorige)) { $print_positie = $positie; } else { $print_positie = " "; } echo "<tr><td>".$record->Seizoen."</td><td>".$record->Gespeeld."</td><td>".$record->Basis."</td><td>".$record->Vervangen."</td><td>".$record->Inval."</td><td>".$record->Minuten."</td><td>".$record->Geel."</td><td>".$record->Geelrood."</td><td>".$record->Rood."</td><td>".$record->Goals."</td><td>".$record->Go."</td></tr>"; $vorige = $record->Seizoen; $positie++; } echo "</table>"; ?> |
^quote:
Netbeans op Windows, Coda op de Macquote:Op zaterdag 8 januari 2011 14:11 schreef Graseter het volgende:
Welk programma gebruiken jullie eigenlijk voor PHP projecten?
Niemand? of moet ik dit allemaal gewoon met regexjes verwijderen?quote:Op zaterdag 8 januari 2011 08:37 schreef Chandler het volgende:
[..]
Ik wil niet gehele tags verwijderen maar alleen
script>
onclick/onmouseover/etc
endergelijke!
SELECT `Seizoen`,quote:Op zondag 9 januari 2011 12:30 schreef Uw_ergste_nachtmerrie het volgende:
En daar ben ik weer te zeuren, nu met volgend "probleem"
Op mijn (voetbal)site wil ik namelijk de totalen van een bepaalde speler toevoegen. Stel speler x heeft een viertal seizoenen voor de club gespeeld en in die seizoenen een aantal wedstrijden gespeeld. Hierbij wil ik ook het aantal speelminuten/basisplaatsen/gele en rode kaarten en doelpunten bij elkaar optellen. Uiteraard wil ik elke kolom apart opgeteld hebben (anders heeft die telling voor mij en de bezoekers immers helemaal geen waarde )
Hoe kan ik die optelling aan het stukje onderstaande script toevoegen? Ben er gisteren behoorlijk lang mee bezig geweest en kreeg dit met SUM en COUNT (wat volgens mij niet werkt met een WHERE) niet voor elkaar.
[ code verwijderd ]
De velden "Gespeeld tot en met Goals" zijn allemaal Integers, dat was toch een vereiste voor een correcte optelling van de inhoud van de records?
ik hoop dat ik voldoende informatie heb gegeven om tot een mooie oplossing te komen..
Aptana Studioquote:Op zaterdag 8 januari 2011 14:11 schreef Graseter het volgende:
Welk programma gebruiken jullie eigenlijk voor PHP projecten?
Met behulp van je GROUP BY worden de kolommen seizoen en go weergegeven (vervangen en inval moesten ook nog opgeteld worden).quote:Op maandag 10 januari 2011 13:38 schreef GlowMouse het volgende:
ik mis een GROUP BY, anders is de waarde in seizoen, vervangen, inval en go afhankelijk van het toeval.
Klopt, vergetenquote:Op maandag 10 januari 2011 13:38 schreef GlowMouse het volgende:
ik mis een GROUP BY, anders is de waarde in seizoen, vervangen, inval en go afhankelijk van het toeval.
In de "Go" staat alleen een interne link met afbeelding naar het betreffende seizoen.quote:Op maandag 10 januari 2011 15:22 schreef The_Terminator het volgende:
[..]
Klopt, vergeten
Het kan eventueel zo:
SELECT `Seizoen` , SUM(`Gespeeld`) , SUM(`Basis`) , SUM(`Vervangen`) , SUM(`Inval`) , SUM(`Minuten`) , SUM(`Goals`) , SUM(`Geel`) , SUM(`Geelrood`) , SUM(`Rood`) , `Go`
FROM `speler`
WHERE `ID`=2
GROUP BY Seizoen, Go
Edit: query aangepast om vervangen en inval ook op te tellen. Ik weet niet wat er in de velden 'Go' staat, en weet ook niet of het nodig is daar op te groeperen. Eventueel kan go uit de group verwijderd worden mocht dat niet van toepassing zijn.
1 2 | <?php function order($test){ echo 'as'.$page[$test];} order("1"); |
dankjewel, had global nodig. Er stond niet bij waarom variabelen standaard niet globaal zijn, wel dat het in andere talen wel zo kan zijn. Weet je ook waarom dit is?quote:
Nee, je hebt een parameter nodig. Global gebruiken is in normale omstandigheden niet nodig en m.i. ook niet netjes. Als je overal global gebruikt en in functies variabelen overal wijzigt wordt het debuggen van je applicatie binnen de kortste keren een hel.quote:
om het even te zeggen zoals ik het geleerd heb:quote:Op dinsdag 11 januari 2011 22:25 schreef Intrepidity het volgende:
[..]
Nee, je hebt een parameter nodig. Global gebruiken is in normale omstandigheden niet nodig en m.i. ook niet netjes. Als je overal global gebruikt en in functies variabelen overal wijzigt wordt het debuggen van je applicatie binnen de kortste keren een hel.
Ook in procedureel programmeren is het een ramp. Na 10 van dergelijke functies weet je gewoon niet meer waar die variabele nou ookalweer gewijzigd werd, wat voor heel onverwacht gedrag van je applicatie kan zorgen.quote:Op woensdag 12 januari 2011 00:21 schreef minibeer het volgende:
[..]
om het even te zeggen zoals ik het geleerd heb:
globale variabelen gebruiken gaat in tegen de objectgeorienteerde gedachte
Hetzelfde als bij een ad-rotator:quote:Op donderdag 13 januari 2011 01:00 schreef boem-dikkie het volgende:
Weer een vraagje.
Ik ben bezig met een website waar een kop op moet komen met 'uitgelicht'. Het is de bedoeling dat er onder die kop een drietal artiesten komen te staan. Die drie artiesten moeten om de zoveel tijd door wisselen. De gehele rotatie bestaat uit ongeveer 10 artiesten.
Iemand enig idee hoe ik dit een beetje handig kan aanpakken?
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 | <?php session_start(); //Adkeuze (begin) if (isset($_SESSION['lastBanner'])){ $bannerNo = $_SESSION['lastBanner'] + 1; if ($bannerNo > 3){ //'Bannergetal hoger dan 3? Dan terugzetten.' $bannerNo = 1; } else { //'Kies een getal tussen 1 en 3' mt_srand((int) microtime() * 10000); $bannerNo = mt_rand(1,3); } switch ($bannerNo) { //'Welke banner wordt het?' case 1: $bannerCode = 'sth1.jpg'; break; case 2: $bannerCode = 'sth2.jpg'; break; case 3: $bannerCode = 'sth3.jpg'; break; } } //Adkeuze (einde) $_SESSION['lastBanner'] = $bannerNo; //Sessienummer krijgt een bannernummer toegewezen echo $bannerCode ?> |
1 2 3 4 | <?php mysql_connect("sqladres", "databasenaam", "xxxxxxx"); mysql_select_db("databasenaam"); ?> |
1 2 3 4 5 6 7 8 9 10 | <?php if(isset($_COOKIE['CookieName'])) { echo "Ingelogd"; } else { echo "Uitgelogd"; } ?> |
http://nl3.php.net/setcookiequote:Op donderdag 13 januari 2011 18:50 schreef Habork het volgende:
Ik heb hier een klein probleem wat betreft cookies, ik heb een inlogscript gemaakt met behulp van cookies. Nu wil ik controleren of iemand ingelogd is met het volgende stukje script
[ code verwijderd ]
Dit werkt goed zolang ik dit probeer vanuit een map (of 'lager' gelegen map) waarin de cookie gemaakt is. Als ik een maplevel hoger zit dan werkt dit niet. Iemand enig idee hoe ik dit oplos?
quote:path
The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain. If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
quote:Op donderdag 13 januari 2011 17:01 schreef Mirel het volgende:
Ik heb ooit een klein beetje php moeten doen, was toen een complete leek en nu nog steeds. Ik heb wat vraagjes.
Ik heb een drietal tekstboxjes en een submit knop. Moet de action tag naar m'n action.php in de form tag of in de submit knop tag?
1 2 3 | <form action="action.php"> <input type="submit" /> </form> |
Op de pagina waar je gegevens uit de database wilt lezen of erin wilt schrijven.quote:Ik heb een database aangemaakt en daarin zit een tabel met de 3 velden van de tekst (heb ik overigens gewoon VARCHAR gelaten). Op deze manier dacht ik te connecten:
[ code verwijderd ]
Ik heb dit nu staan op de pagina waar de form staat. Is het daar goed, of moet het in de action.php waar de knop of form dus naar verwijst? Of allebei?
Tabel selecteren doe je in de query zelf.quote:En hier selecteert hij de database op de 2e regel. Moet ik hier ook de tabel selecteren of moet dat in de action.php?
Vergeet niet dat een gebruiker zelf ook cookies kan aanmaken en op die manier heel makkelijk (onterecht) kan inloggen.quote:
Ligt eraan wat er in die cookie staat. Alleen een "ja" of "nee" om te controleren of iemand is ingelogd is een beetje dom. Als je er een hash van 64+ karakters in zet die per gebruiker uniek is, wordt het al een stuk lastiger om te misbruiken.quote:Op donderdag 13 januari 2011 22:35 schreef FastFox91 het volgende:
[..]
Vergeet niet dat een gebruiker zelf ook cookies kan aanmaken en op die manier heel makkelijk (onterecht) kan inloggen.
Wil je A.U.B wel letten op beveiligings problemen als je alleen werkt met COOKIES want je controleert op deze manier de inhoudt niet!quote:
in principe zou de gebruiker die toch ook kunnen kopiëren en terugzetten? Behalve als het om een hash gaat die iedere keer dat er ingelogd is wordt aangemaakt. (of begrijp ik er weer helemaal niks van ?)quote:Op vrijdag 14 januari 2011 10:54 schreef mstx het volgende:
[..]
Ligt eraan wat er in die cookie staat. Alleen een "ja" of "nee" om te controleren of iemand is ingelogd is een beetje dom. Als je er een hash van 64+ karakters in zet die per gebruiker uniek is, wordt het al een stuk lastiger om te misbruiken.
Normaal gebruik je ook alleen cookies als je data heb die je weer in een volgende sessie wilt gebruiken, dus dan is het ook de bedoeling dat je die de volgende sessie weer kunt terugzetten.quote:Op vrijdag 14 januari 2011 14:11 schreef minibeer het volgende:
[..]
in principe zou de gebruiker die toch ook kunnen kopiëren en terugzetten? Behalve als het om een hash gaat die iedere keer dat er ingelogd is wordt aangemaakt. (of begrijp ik er weer helemaal niks van ?)
Met de voorbeeld code van w3schools is het gelukt, maar met mijn eigen strings niet. Daarnaast had je in het voorbeeld 'Peter' en 'Griffin'. In de database zie ik alleen de eerste letters.quote:Op donderdag 13 januari 2011 18:55 schreef mstx het volgende:
[..]
[ code verwijderd ]
[..]
Op de pagina waar je gegevens uit de database wilt lezen of erin wilt schrijven.
[..]
Tabel selecteren doe je in de query zelf.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <? $name = $_POST["name"]; $credits = $_POST["credits"]; $description = $_POST["description"]; $con = mysql_connect("xxx", "xxx", "xxx"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("xxx", $con); mysql_query("INSERT INTO challenges (name, credits, description) VALUES ($name, $credits, $description)"); ?> |
In een cookie alleen de sessie ID opslaan, en de sessiedata zelf op een server (bijvoorbeeld in de database) bijhouden en inderdaad koppelen aan IP en regelmatig laten verlopen. Zo werkt het hier op fok ook. Als ik op uitloggen klik heb ik de mogelijkheid om alle aan mijn account gekoppelde sessies te beëindigen en een eventueel gehijackte cookie nutteloos te maken.quote:Op vrijdag 14 januari 2011 14:46 schreef mstx het volgende:
[..]
Normaal gebruik je ook alleen cookies als je data heb die je weer in een volgende sessie wilt gebruiken, dus dan is het ook de bedoeling dat je die de volgende sessie weer kunt terugzetten.
Als iemand anders jouw cookie kopieert en in zijn browser plakt (dat bedoel jij?) heb je dan wel een probleem, daarom is het ook beter om het aan een IP te koppelen. Dat is waarschijnlijk ook niet 100% safe dus als iemand daar een betere methode voor heeft hoor ik het graag, dat vind ik ook wel interessant namelijk.
Dan kan toch ook met SESSIONID?quote:Op vrijdag 14 januari 2011 14:51 schreef Intrepidity het volgende:
[..]
In een cookie alleen de sessie ID opslaan, en de sessiedata zelf op een server (bijvoorbeeld in de database) bijhouden en inderdaad koppelen aan IP en regelmatig laten verlopen. Zo werkt het hier op fok ook. Als ik op uitloggen klik heb ik de mogelijkheid om alle aan mijn account gekoppelde sessies te beëindigen en een eventueel gehijackte cookie nutteloos te maken.
1 2 3 | <?php $map = 'fotoalbum'; |
Daar kan je vrij weinig aan zienquote:Op vrijdag 14 januari 2011 18:47 schreef Gitaarmat het volgende:
Heb een fotoalbum van het net geplukt om op mijn site te gebruiken maar volgens phpmyadmin is de eerste regel fout?
[ code verwijderd ]
of het komt omdat er nog geen map "fotoalbum" bestaat.
Zou beter moeten werken dan proberen dat php-bestand in phpmyadmin te laden.quote:Op vrijdag 14 januari 2011 18:55 schreef Gitaarmat het volgende:
Ik had eerst een php bestand bij m'n webhost tussen de html bestanden maar dit werkt soeiwso niet, of toch wel?
euh ja, een PHP-bestand is inderdaad geen geldige SQL queryquote:Op vrijdag 14 januari 2011 18:55 schreef Gitaarmat het volgende:
Ik importeer het php-bestand en dan "SQL heeft een fout in uw bestand gevonden" en dan kan ik alleen op terug klikken.
Ik had eerst een php bestand bij m'n webhost tussen de html bestanden maar dit werkt soeiwso niet, of toch wel?
Het is:quote:Op vrijdag 14 januari 2011 19:11 schreef Gitaarmat het volgende:
Oh, php heeft niks te maken met die phpmyadmin?
Als ik in mn html pagina <?php Include("fotoalbum.php"); ?>
doe dan wordt er niks weergeven
1 2 3 | <?php include "fotoalbum.php"; ?> |
1 2 3 | <?php include_once "fotoalbum.php"; ?> |
Ja, omdat een .html pagina niet door de PHP-parser gehaald wordt.quote:Op vrijdag 14 januari 2011 19:11 schreef Gitaarmat het volgende:
Oh, php heeft niks te maken met die phpmyadmin?
Als ik in mn html pagina <?php Include("fotoalbum.php"); ?>
doe dan wordt er niks weergeven
Dat laatste dus.quote:Op vrijdag 14 januari 2011 19:20 schreef KomtTijd... het volgende:
[..]
Ja, omdat een .html pagina niet door de PHP-parser gehaald wordt.
Als je gewoon naar fotoalbum.php surft moet'ie het doen. Of je moet je HTML bestand renamen naar .php
quote:Op vrijdag 14 januari 2011 19:21 schreef Gitaarmat het volgende:
Het werkt niet met die include, maar ook geen foutmelding oid. Gewoon tekstje zonder fotoalbum eronder.
Dit.quote:Op vrijdag 14 januari 2011 19:20 schreef KomtTijd... het volgende:
[..]
Ja, omdat een .html pagina niet door de PHP-parser gehaald wordt.
Als je gewoon naar fotoalbum.php surft moet'ie het doen. Of je moet je HTML bestand renamen naar .php
Klopt.quote:Op vrijdag 14 januari 2011 19:24 schreef KomtTijd... het volgende:
[..]
[..]
Dit.
Dat van ofyles kun je vergeten, linebrakes hebben geen invloed op je script en hebben hier niets mee te maken.
Herbenoemen kan wel, maar buiten de webserver en dan moet je hem nog opladen...quote:Op vrijdag 14 januari 2011 19:25 schreef Gitaarmat het volgende:
Renamen werkt ook niet? Gewoon zwart nog. Geen error.
Ik blijf niet alles 2x vragen...quote:Op vrijdag 14 januari 2011 19:26 schreef KomtTijd... het volgende:
Wat is nu de output dan? Kortom de paginabron?
Heb je de include ingesloten in een php-blok?quote:Op vrijdag 14 januari 2011 19:27 schreef Gitaarmat het volgende:
Ik heb het html bestand. (Wat nu dus het php bestand is) Daarin de include maar de include wordt niet weergegeven, de rest wel.
Zie hierbovenquote:Op vrijdag 14 januari 2011 19:29 schreef KomtTijd... het volgende:
[..]
Ik blijf niet alles 2x vragen...
php blok= php-tag?quote:Op vrijdag 14 januari 2011 19:30 schreef Ofyles2 het volgende:
[..]
Heb je de include ingesloten in een php-blok?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <html> <head> <title>...and the gods made coffee</title> <head> <body bgcolor="black" text="white" alink="black" vlink="black" > <center> <img src="linksie.jpg"><img width="50% height="75%" src="indexplaatje.jpg"><img src="rechtsie.jpg"> </center> <center> <P STYLE="width:450px; text-align: justify;"><FONT face="verdana" size="1"> <center>Deze pagina van de website is aan constructie onderhevig <?php include "fotoalbum.php"; ?></center> </P> |
Ja bijna, en nu de paginabron die je te zien krijgt als je die pagina in je browser opent...quote:Op vrijdag 14 januari 2011 19:32 schreef Gitaarmat het volgende:
[..]
php blok= php-tag?
Zo:
[ code verwijderd ]
Ik zie geen fouten in de script, misschien dat er iets aan de hand is met fotoalbum.php zelf?quote:Op vrijdag 14 januari 2011 19:32 schreef Gitaarmat het volgende:
[..]
php blok= php-tag?
Zo:
[ code verwijderd ]
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 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | <?php $map = 'fotoalbum'; $afbeeldingen = array(); $hoogte_klein = 112; $breedte_klein = 150; $hoogte_groot = 400; $breedte_groot = 700; $perpagina = 12; if(isset($_GET['album']) && !empty($_GET['album'])) { $tmp = explode('/',$_GET['album']); if($tmp[0] == $map) { $map = str_replace(array('.', '\\', ':'), '', $_GET['album']); } } if(isset($_GET['paginanr']) && !empty($_GET['paginanr']) && ctype_digit($_GET['paginanr'])) { $paginanr = $_GET['paginanr']; }else{ $paginanr = 1; } if(isset($_GET['afbeelding']) && !empty($_GET['afbeelding'])) { $afbeelding = $_GET['afbeelding']; }else{ $afbeelding = NULL; } function thumbnail($afbeelding, $type) { $map = $afbeelding['dirname']; $bestandsnaam = $afbeelding['basename']; list($type, $hoogte, $breedte) = $type; list($breedte_origineel, $hoogte_origineel, $extensie) = getimagesize($map.'/'.$bestandsnaam); if(!is_dir($map.'/thumbs/')) { mkdir($map.'/thumbs/', 0777); chmod($map.'/thumbs/', 0777); } if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) { $breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel; }else{ $hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel; } $afbeelding = imagecreatetruecolor($breedte, $hoogte); switch($extensie) { case 1: //gif $afbeelding_origineel = imagecreatefromgif($map.'/'.$bestandsnaam); imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel); imagegif($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam); break; case 2: //jpg $afbeelding_origineel = imagecreatefromjpeg($map.'/'.$bestandsnaam); imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel); imagejpeg($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam, 80); break; case 3: //png $afbeelding_origineel = imagecreatefrompng($map.'/'.$bestandsnaam); $background = imagecolorallocate($afbeelding, 0, 0, 0); imagecolortransparent($afbeelding, $background); // make the new temp image all transparent imagealphablending($afbeelding, false); // turn off the alpha blending to keep the alpha channel imagesavealpha($afbeelding, true); imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel); imagepng($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam); break; } chmod($map.'/thumbs/'.$type.'_'.$bestandsnaam, 0777); return TRUE; } $tmp = NULL; foreach(explode('/',$map) as $tmp2) { echo '>> <a href="?pagina=fotoalbum&album='.$tmp.$tmp2.'">'.ucfirst($tmp2).'</a> '; $tmp = $tmp.$tmp2.'/'; } echo '<br><br>'.PHP_EOL; if(!$bestanden = glob($map.'/*.*')) { $bestanden = array(); } foreach($bestanden as $bestand) { $gegevens = getimagesize($bestand); $extensie = $gegevens['mime']; if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png') { $afbeeldingen[] = $bestand; } } $aantalfotos = count($afbeeldingen); if(isset($afbeelding)) { foreach($afbeeldingen as $id => $naam) { if(basename($naam) == $afbeelding) { $fotonr = $id; } } if(isset($fotonr)) { $afbeelding = pathinfo($afbeeldingen[$fotonr]); if($fotonr > 0) { $vorige_afbeelding = pathinfo($afbeeldingen[$fotonr-1]); echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$vorige_afbeelding['basename'].'" title="Ga naar foto '.$vorige_afbeelding['basename'].'"><< Vorige</a>'; }else{ echo '<< Vorige'; } echo ' Foto '.($fotonr +1).' van '.$aantalfotos.' '; if($fotonr < $aantalfotos -1) { $volgende_afbeelding = pathinfo($afbeeldingen[$fotonr+1]); echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$volgende_afbeelding['basename'].'" title="Ga naar foto '.$volgende_afbeelding['basename'].'">Volgende >></a><br>'; }else{ echo 'Volgende >><br>'.PHP_EOL; } if(!file_exists($afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'])) { if(thumbnail($afbeelding, array('groot', $hoogte_groot, $breedte_groot))) { echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } }else{ echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } }else{ echo '<p>Sorry, deze foto bestaat niet!</p>'; } }else{ if(!$mappen = glob($map.'/*', GLOB_ONLYDIR)) { $mappen = array(); } foreach($mappen as $album) { if(basename($album) != 'thumbs') { echo '<a href="?pagina=fotoalbum&album='.$album.'">'.ucfirst(basename($album)).'</a><br>'.PHP_EOL; } } if($aantalfotos > $perpagina) { if ($paginanr > 1) { echo '<a href="?pagina=fotoalbum&album='.$map.'&paginanr='.($paginanr - 1).'" title="Ga naar pagina '.($paginanr - 1).'"><< Vorige</a>'; }else{ echo '<< Vorige'; } echo ' Pagina '.$paginanr.' van '.ceil($aantalfotos/$perpagina).' '; if ($paginanr < ceil(($aantalfotos)/$perpagina)) { echo '<a href="?pagina=fotoalbum&album='.$map.'&paginanr='.($paginanr + 1).'" title="Ga naar pagina '.($paginanr + 1).'">Volgende >></a><br>'; }else{ echo 'Volgende >><br>'.PHP_EOL; } } for($fotonr = (($paginanr -1) * $perpagina); $fotonr <= ((($paginanr -1) * $perpagina) + ($perpagina - 1)) && $fotonr < count($bestanden); $fotonr += 1) { $afbeelding = pathinfo($afbeeldingen[$fotonr]); if(!file_exists($afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'])) { if(thumbnail($afbeelding, array('klein', $hoogte_klein, $breedte_klein))) { echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } }else{ echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } } } ?>] |
Ik zal dit verder afhandelen, maar ik heb ook kort tijd nu...quote:
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |