ja!quote:Op zaterdag 20 januari 2007 21:05 schreef JeRa het volgende:
Tijd Voor PHP!
Niet meer of minder eenvoudig dan bij een update.quote:Op zaterdag 20 januari 2007 20:49 schreef ChOas het volgende:
[..]
En eenvoudiger om een SQL-injection uit te voeren.
Als je bv. kolom1 = 'abc', kolom2 = 'xyz' hebt, zie je in één oogopslag in welke kolom abc opgeslaan wordtquote:Op zaterdag 20 januari 2007 20:46 schreef JeRa het volgende:
[..]
Wat is er precies makkelijker aan en over welke overeenkomstige waarden heb je het?
Waarom zou je een wachtwoord in een serverside sessie opslaan?quote:Op zaterdag 20 januari 2007 21:28 schreef super-muffin het volgende:
Is een password encrypten met md5 en dan opslaan in een sessie veilig genoeg of niet?
ongeveer op deze manier?
[ code verwijderd ]
Waarom zou je een password in een sessie willen opslaan? (En waarom gebruik je dan niet $_SESSION ?)quote:Op zaterdag 20 januari 2007 21:28 schreef super-muffin het volgende:
Is een password encrypten met md5 en dan opslaan in een sessie veilig genoeg of niet?
ongeveer op deze manier?
[ code verwijderd ]
Tja, dat is een keuze. Aangezien jouw methode niet in een SQL standaard voorkomt pak ik het liever zo aan:quote:Op zaterdag 20 januari 2007 21:22 schreef fate het volgende:
[..]
Als je bv. kolom1 = 'abc', kolom2 = 'xyz' hebt, zie je in één oogopslag in welke kolom abc opgeslaan wordt :).
1 2 3 | VALUES (1, 'henk', TRUE), VALUES (2, 'piet', FALSE); |
Gaat rapquote:Op zaterdag 20 januari 2007 21:31 schreef Swetsenegger het volgende:
deel 37 alweer.
(ik deed geen $_SESSION omdat ik het ff snel typte, in mijn script staat het wel goedquote:Op zaterdag 20 januari 2007 21:37 schreef Light het volgende:
[..]
Waarom zou je een password in een sessie willen opslaan? (En waarom gebruik je dan niet $_SESSION ?)
Password controle doe je bij het inloggen, en daarna kun je in de sessie aangeven of iemand al dan niet is ingelogd.
Omdat ik een beginner benquote:Op zaterdag 20 januari 2007 21:35 schreef JeRa het volgende:
[..]
Waarom zou je een wachtwoord in een serverside sessie opslaan?
Dat klopt. Bij de serverside sessions kunnen je bezoekers niet komen, bij bv. hun eigen cookies wel.quote:Op zaterdag 20 januari 2007 21:51 schreef super-muffin het volgende:
[..]
Dus met het succesvol inloggen maak ik een sessie ($_SESSION[loggedin] = '1') en controleer op elke pagina of de sessie loggedin de waarde 1 heeft?
Geen excuus!quote:
Hoezo dat dan?quote:Op zaterdag 20 januari 2007 20:49 schreef ChOas het volgende:
[..]
En eenvoudiger om een SQL-injection uit te voeren.
Misschien is dat ook wel overzichtelijk maar toen ik eens voor een loginsysteem zo'n 35 kolommen had, was het toch gemakkelijker op mijn manierquote:Op zaterdag 20 januari 2007 21:43 schreef JeRa het volgende:
[..]
Tja, dat is een keuze. Aangezien jouw methode niet in een SQL standaard voorkomt pak ik het liever zo aan:
[ code verwijderd ]
En dan zie ik ook in één oogopslag bij welke kolommen de waardes horen
Die U-modifier werkt, dank je wel. Ik was er niet opgekomen, daar mijn kennis over regular expressions ook niet ver reikt.quote:Op zaterdag 20 januari 2007 14:58 schreef JeRa het volgende:
@Pelgrim
Waarom escape je de forwardslash? Als je de U-modifier toevoegt hoef je niet overal de greediness te negaten (dan kun je dus .*? schrijven als .*). Verder is het wel handig om te weten waar je op matcht en wat er zou moeten gebeuren, en wat er eventueel al gebeurt.
Ik zou meteen al aan m'n hoofd krabben als ik een query gebruikte waar 35 kolommen uit kwamen rollenquote:Op zondag 21 januari 2007 13:02 schreef fate het volgende:
[..]
Misschien is dat ook wel overzichtelijk maar toen ik eens voor een loginsysteem zo'n 35 kolommen had, was het toch gemakkelijker op mijn manier. Maar ieder zijn mening natuurlijk
.
Ja das wel een boel veelquote:Op zondag 21 januari 2007 16:17 schreef JeRa het volgende:
[..]
Ik zou meteen al aan m'n hoofd krabben als ik een query gebruikte waar 35 kolommen uit kwamen rollen
ligt er aan wat voor eenquote:Op zondag 21 januari 2007 17:37 schreef Swetsenegger het volgende:
Nog mensen opzoek naar een laptop trouwens?
Dan zit je dus vast aan het aantal verschillende typen rechten dat je in je rechtensysteem hebt, dat lijkt me net zo onoverzichtelijk als een INSERT-query schrijven met 35 kolommen die je apart moet gaan benoemenquote:Op zondag 21 januari 2007 17:57 schreef Light het volgende:
[..]
Het is een manier voor een rechtensysteem
ik heb C# geleerd maar geen VB.quote:Op maandag 22 januari 2007 08:59 schreef Swetsenegger het volgende:
Offtopic, maar hier zitten de web experts. ASP.NET met VB.NET of C#.NET? Welke kan ik het beste leren?
Kan je met C# meer dan met VB? Welke wordt het meest gevraagd of maakt dat niet uit?quote:Op maandag 22 januari 2007 09:07 schreef profielnaam het volgende:
[..]
ik heb C# geleerd maar geen VB.
maakt volgens mij niet heel veel uit, maar C# lijkt toch wel de standaard voor .NET development.quote:Op maandag 22 januari 2007 09:10 schreef Swetsenegger het volgende:
[..]
Kan je met C# meer dan met VB? Welke wordt het meest gevraagd of maakt dat niet uit?
Ik open er even een apart topic overquote:Op maandag 22 januari 2007 10:41 schreef GVRuud het volgende:
Vroegah kon je met C(destijds nog gewoon ++) veel meer dan met visual basic. Sinds de komst van het .NET platform zijn de functionaliteiten voor iedere taal hetzelfde, en liggen de mogelijkheden qua programmeertaal IMO ook gelijk.
..quote:Op maandag 22 januari 2007 11:32 schreef hornage het volgende:
jah, iemand nog dringende, moeilijke, hersenbrekende vragen/problemen met php?![]()
Ik sta op scherp, kom maar op!![]()
1 2 3 4 5 | if(isset($_GET['informatie'])){ $informatienaam = $_POST['selectinfo']; //selectinfo is de naam van de dropdown box } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if(isset($_GET['informatie'])){ $informatienaam = $_POST['selectinfo']; //selectinfo is de naam van de dropdown box if ((isset ($_GET['informatie'])) and (isset ($_GET['k1']))){ echo "$informatienaam"; echo "keuze 1 gekozen"; } if ((isset ($_GET['informatie'])) and (isset ($_GET['k2']))){ echo "$informatienaam"; echo "keuze 2 gekozen"; } } //sluiting if(isset($_GET['informatie'])) ?> |
dat klinkt als een hele slimme methode, probeer het eensquote:Op maandag 22 januari 2007 16:17 schreef Chandler het volgende:
tvp en tevens een kleine vraag.
Ik wil strings uit een tabel/veld lezen maar wil eerst de langste strings er uit halen? hoe doe ik dat? sorteren op lengte van de varchar?
Dit kan je oplossen door deze waardes in je form te zetten als een input type=hidden. Dan wordt het gewoon doorgestuurdquote:Op maandag 22 januari 2007 17:08 schreef Xevor het volgende:
Ik heb een pagina met een dropdown box, waarin informatie zit (voor het gemaakt info-a en info-b).
Bij het selecteren van info-a blijf je in dezelfde pagina maar komt er achter de pagina ?informatie te staan.
Met behulp van deze code:
[ code verwijderd ]
Maar het probleem komt nu. Ik wil verder gaan met de url in een volgende isset. Wanneer de pagina pagina.php?informatie geopend wordt komen er namelijk nog meer keuzes, voor het gemak keuze 1 en keuze 2.
Keuze 1 leidt naar pagina.php?informatie&k1
Keuze 2 leidt naar pagina.php?informatie&k2
Het probleem komt nu:
[ code verwijderd ]
Het probleem is dat $informatienaam 'vergeten' is bij keuze 1 en keuze 2 en er niks komt bij echo "$informatienaam"; Dus ik vroeg mij af waarom dit zo is en hoe het op te lossen is?
quote:Op maandag 22 januari 2007 17:31 schreef Xevor het volgende:
Dat helpt dus ook nietOverigens wel handig dat input type=hidden want dan gaan de submit knop weg nadat er al op geklikt is
Helaas is mijn probleem nog niet verholpen
Correct, maar hoe sorteer ik op de lengte??quote:Op maandag 22 januari 2007 17:13 schreef hornage het volgende:
[..]
dat klinkt als een hele slimme methode, probeer het eens![]()
heb je wel php draaien op je laptop?quote:Op dinsdag 23 januari 2007 07:16 schreef boeda-76 het volgende:
Hallo allemaal. Ik heb zins kort een Macbook. Draaide daar eerst Opera op, werkte helemaal ok. Heb sinds kort ook Firefox geinstalleerd, en nu kan ik bepaalde bestanden, eindigend op .php, niet meer met voorvertoning openen. Hij opent deze nu automatisch met het ColorSync-hulpprogramma, wat hier helemaal niet ideaal voor is. Heb natuurlijk al geprobeerd mbv toon info het programma te veranderen waar hij mee opent, maar elke keer komt hij toch weer met Colorsync. Iemand ideeen? Heb nu geen idee meer hoe dit op te lossen.
Mac OX 10.4, en Firefox 2.0
Bedankt
Volgens mij wil 'ie ze niet draaien, maar alleen openen met een ander programma (om te editen).quote:Op dinsdag 23 januari 2007 07:56 schreef Swetsenegger het volgende:
[..]
heb je wel php draaien op je laptop?
Nou ken ik Opera niet echt als een PHP editor maar meer als een browser. Er zal vast nog een programma zijn met de naam Opera, maar dan 1 die ik niet ken.quote:Op dinsdag 23 januari 2007 08:58 schreef CraZaay het volgende:
[..]
Volgens mij wil 'ie ze niet draaien, maar alleen openen met een ander programma (om te editen).
Goed puntquote:Op dinsdag 23 januari 2007 09:00 schreef Light het volgende:
[..]
Nou ken ik Opera niet echt als een PHP editor maar meer als een browser. Er zal vast nog een programma zijn met de naam Opera, maar dan 1 die ik niet ken.
Dat dusquote:Op dinsdag 23 januari 2007 09:00 schreef Light het volgende:
[..]
Nou ken ik Opera niet echt als een PHP editor maar meer als een browser. Er zal vast nog een programma zijn met de naam Opera, maar dan 1 die ik niet ken.
bij deze een mooie functie die dat voor je regelt:quote:Op maandag 22 januari 2007 22:32 schreef Chandler het volgende:
[..]
Correct, maar hoe sorteer ik op de lengte?? :D dat is dus de vraag :@
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function sortByLength($array) { $sortedarray = array(); $index = 0; while ($array != array()) { $max = ""; $maxkey = 0; foreach ($array as $key => $value) { if (strlen($value) > strlen($max)) { $max = $value; $maxkey = $key; } } $sortedarray[$index] = $max; $index++; unset($array[$maxkey]); } return $sortedarray; } ?> |
quote:Op dinsdag 23 januari 2007 11:23 schreef boeda-76 het volgende:
Hoi,
wil inderdaad alleen maar bestanden die eindigen op .php kunnen openen en opslaan op mijn laptop. Ik heb nu Opera (webbrowser) er weer op gezet, en kan de bestanden wel openen, maar niet opslaan?![]()
de slashes zijn verwijderd er komt dus slash-n en slash-r voor in de plaats...quote:Op woensdag 24 januari 2007 11:26 schreef CraZaay het volgende:
"nr codes" ?
strip_tags() voor weergeven en daarna nl2br() bij postenquote:Op woensdag 24 januari 2007 12:04 schreef schwa78 het volgende:
[..]
de slashes zijn verwijderd er komt dus slash-n en slash-r voor in de plaats...
Dat gaat dus niet werken. De newlines zijn er al uit (vervangen door de string 'nr'), waardoor nl2br() niets meer doet. Daarnaast stript strip_tags() de html, en dus niet de string 'nr' afaikquote:Op woensdag 24 januari 2007 12:19 schreef THeeF het volgende:
[..]
strip_tags() voor weergeven en daarna nl2br() bij posten
Dat is één of andere stomme bug in Replique, ik heb me er ook al meermaals aan geërgerd en zeker als je een script post en al je backslashes worden zomaar verwijderdquote:Op woensdag 24 januari 2007 14:28 schreef CraZaay het volgende:
edit: Waarom slikt Fok! geen backslashesWaar 'nr' staat bedoelde ik dus 'backslash n backslash r'.
dat kan veel simpeler. Je weet dat php een aantal mooie array sorteer functies heeft met callback optie?quote:Op dinsdag 23 januari 2007 11:24 schreef hornage het volgende:
[..]
bij deze een mooie functie die dat voor je regelt:
[ code verwijderd ]
1 2 3 4 | FROM tabelX JOIN tabelY ON join_voorwaarde_y JOIN tabelZ ON join_voorwaarde_z |
Tnx, maar is er in MySQL geen functie die dat automatisch kan doen?quote:Op dinsdag 23 januari 2007 11:24 schreef hornage het volgende:
bij deze een mooie functie die dat voor je regelt:
In de documentatie van MySQL staan een hoop stringfuncties waar je met gemak op kunt sorteren. Jij zoekt waarschijnlijk LENGTH(kolom)quote:Op woensdag 24 januari 2007 17:09 schreef Chandler het volgende:
[..]
Tnx, maar is er in MySQL geen functie die dat automatisch kan doen?
Kun je daar een voorbeeld van geven? Heb zelf wat geexperimenteerd, maar schijnbaar wil mysql niet direct sorteren op length(kolom). Ik zou niet weten hoe deze query moet zonder een extra kolom...quote:Op woensdag 24 januari 2007 17:11 schreef JeRa het volgende:
[..]
In de documentatie van MySQL staan een hoop stringfuncties waar je met gemak op kunt sorteren. Jij zoekt waarschijnlijk LENGTH(kolom)let wel op dat dit soort sorteringen niet al te snel zijn omdat ze niet te indexeren zijn.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if ( $mimetype bij $extensie hoort ) { grant_access ( ); } else { sterf( ); } ?> |
Nou, je gebruikt gewoon die functie in combinatie met een VARCHAR of TEXT kolomquote:Op woensdag 24 januari 2007 17:29 schreef ralfie het volgende:
[..]
Kun je daar een voorbeeld van geven? Heb zelf wat geexperimenteerd, maar schijnbaar wil mysql niet direct sorteren op length(kolom). Ik zou niet weten hoe deze query moet zonder een extra kolom...
1 |
Ik zou idd op mimetype, bestandsextensie en eventueel bestandsgrootte filtreren. Daar heb je ook handige functies voorquote:Op woensdag 24 januari 2007 18:17 schreef wobbel het volgende:
Wat is de beste manier om achter de bestandstype te komen van een geupload bestand? $_FILES['bestand']['type'] is niet veilig genoeg lees ik op php.net, maar wat is dan de beste manier?
Op extensie controleren én op mime-type? Ik ga er vanuit dat zoiets de veiligste manier is.
[ code verwijderd ]
Queries in MySQL zijn atomic, dat wil zeggen dat tijdens het uitvoeren van een SELECT, INSERT, UPDATE of DELETE MySQL garandeert dat de inhoud van de tabellen die je aanspreekt niet wijzigt. Daarvoor moet MySQL de tabellen locken, zodat wanneer jij een SELECT uitvoert die lang duurt er geen andere query tussen kan komen die de tabellen wijzigt. Echter kunnen queries die de tabellen niet wijzigen (andere SELECTs) wél gewoon worden uitgevoerd tijdens een langdurige SELECT.quote:Op woensdag 24 januari 2007 18:52 schreef Chandler het volgende:
Vraag m.b.t. het locken van tabellen? hoe kan een tabel gelocked worden zonder dat je daarvoor speciale queries draait?
vandaag is een website van een opdrachtgever offline gezet op zijn nieuwe hosting omdat de queries (ja het zijn er heel wat per pagina, maar goed en niet door mij gescript) de tabellen zouden locken en problemen zou veroorzaken m.b.t. de preformance van MySQL.
Heeft iemand hier een mooie uitleg voor?
hoe simpelquote:Op woensdag 24 januari 2007 18:50 schreef JeRa het volgende:
[..]
Nou, je gebruikt gewoon die functie in combinatie met een VARCHAR of TEXT kolomeventueel via een apart veld:
[ code verwijderd ]
Tnx, helaas voor mij is de technicus van deze webhosting niet meer aanwezig en moet ik dus wachten tot morgen ochtend om voor deze klant de problemen op te lossen... gelukkig ben ik al weer heel wat kennis rijker (door jouquote:Op woensdag 24 januari 2007 19:02 schreef JeRa het volgende:
[..]
Queries in MySQL zijn atomic, dat wil zeggen dat tijdens het uitvoeren van een SELECT, INSERT, UPDATE of DELETE MySQL garandeert dat de inhoud van de tabellen die je aanspreekt niet wijzigt. Daarvoor moet MySQL de tabellen locken, zodat wanneer jij een SELECT uitvoert die lang duurt er geen andere query tussen kan komen die de tabellen wijzigt. Echter kunnen queries die de tabellen niet wijzigen (andere SELECTs) wél gewoon worden uitgevoerd tijdens een langdurige SELECT.
Je kunt dus last krijgen van verminderde performance bij locking als:
1) Je een SELECT hebt draaien die lang duurt
2) Je gelijktijdig iets in de tabellen die worden aangesproken door de SELECT wilt wijzigen
Kwestie van uitzoeken welke queries er lastig doen, dushint: SHOW FULL PROCESSLIST
Ik ook nietquote:Op woensdag 24 januari 2007 19:28 schreef ralfie het volgende:
[..]
hoe simpel![]()
half uur zitten klooien met ORDER BY length(text) en veel, VEEL varianten daarop...maar er nooit aan gedacht om de LENGTH() in het SELECT deel te zetten
Leuk probleem. Alleen zie ik zo gauw geen oplossing, ook niet met een group by trouwens.quote:Op woensdag 24 januari 2007 17:06 schreef JeRa het volgende:
Ik heb een tabel X [...]
Het rare is dus dat ik helemaal geen vreemd datamodel heb, het is sterk genormaliseerd zelfs. Je zou zeggen dat er meer mensen tegen een dergelijk probleem oplopen als ze twee of meer typen attributen aan één item willen toekennen in een database.quote:Op woensdag 24 januari 2007 21:41 schreef SuperRembo het volgende:
[..]
Leuk probleem. Alleen zie ik zo gauw geen oplossing, ook niet met een group by trouwens.
Dat is wel te doen, maar dan nog vind ik het niet bij het hiërarchische model horen dat ik in m'n database heb vastgelegdquote:Op woensdag 24 januari 2007 22:05 schreef SuperRembo het volgende:
Ik denk niet dat je hoeft te groupen op de tekstvelden zelf. Als het je lukt om (met een eigen aggregate) de juiste id's van tabel X, Y en Z bij elkaar hebt, dan kan je daar wel weer tegenaan joinen om de teksten op te halen.
Ja dat idee dus, maar dan voor DBMS'en als MySQL of PgSQLquote:Op woensdag 24 januari 2007 22:23 schreef Chandler het volgende:
http://en.wikipedia.org/wiki/Dimensional_database zou dit eventueel nog kunnen helpen?
1 2 3 4 5 6 7 8 9 10 11 12 13 | function check($invoer) { $woorden = array('acces' => 'access'); foreach($woorden as $fout => $goed) { $invoer = preg_replace("#".preg_quote($fout,'#')."#i","$goed",$invoer); } return $invoer; } $tekst = 'acces'; echo check($tekst) ?> |
1 2 3 4 5 6 7 | $tekst = 'acces ies vout'; $foute_woorden = array('acces', 'vout', 'ies'); $goede_woorden = array('access', 'goed', 'is'); $tekst = str_replace($foute_woorden, $goede_woorden, $tekst); print $tekst; ?> |
Wil je de rijen random uit de database trekken, of wat?quote:Op vrijdag 26 januari 2007 16:43 schreef wobbel het volgende:
Wat is de beste manier om met de hand de volgorde te bepalen van rijen in de database?
Ik heb nu de volgende rijen:
- Waarde 1
- Waarde 2
- Waarde 3
- Waarde 4
Maar ik wil met de hand bepalen dat het zo wordt weergegeven vanuit de database:
- Waarde 3
- Waarde 2
- Waarde 1
- Waarde 4
Tot hier snapte ik het nogquote:Op vrijdag 26 januari 2007 17:07 schreef hornage het volgende:
de volgorde wordt bepaald door de index. Standaard zit er eentje op je primary key. Als die niet de volgorde geeft die je wilt hebben lijkt mij dat je een extra field aanmaakt en daar een index op maakt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $subject = 'Je bent ge-emaild vanaf mijndomein.nl'; $headers .= "From: test <webmaster@mijndomein.nl>n"; $headers .= "Reply-To:webmaster@mijndomein.nln"; $headers .= "Return-Path: <webmaster@mijndomein.nl>n"; $headers .= "MIME-Version: 1.0 n"; $headers .= "Content-Type: text/html; charset=iso-8859-1n"; $message = 'Hallo <b>dit is een testje</b> '; if(!mail('emailadres@tiscali.nl', $subject, $message,$headers)) { echo '<br/><b>De email kon niet worden verzonden.</b><br />'; } else { echo 'Je email is verzonden.'; } |
1 2 3 4 5 6 7 | $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n"; $headers .= "From: info@domein.nl\r\n"; $headers .= "Return-Path: info@domein.nl\r\n"; $headers .= "Bcc: iemand@anderdomein.nl"; ?> |
Kortom: extra kolom toevoegen aan je tabel, hier cijfers in zetten en op deze kolom sorteren. Tip: gebruik geen kolomnaam als "order" bijvoorbeeldquote:
Ik vermoed dat er niet consequent wordt omgegaan met $_HTTP_SESSION_VARS en $_SESSION; even de overduidelijke valkuil uit de weg halen: op het begin van het script staat wel session_start()?quote:Op zaterdag 27 januari 2007 09:42 schreef splendor het volgende:
Een vriend van mij heeft een verse windows instalatie en daar Appserv (apache+mysql+php) op geinstaleerd en alles werkt verder goed maar zijn sessies krijgt ie niet aan de gang.
$_HTTP_SESSION_VARS werkt wel maar zodra hij $_SESSION gebruikt wordt het sessie bestandje wel aangemaakt maar niet gevuld met waardes.
Iemand een idee hoe dit kan?
Alle sessie instellingen in php staan waarschijnlijk wel goed want die hebben we vergeleken met die van mij. En de map heeft gewoon schrijfrechten dus dat is het probleem ook niet.
1 2 3 4 5 6 7 8 9 | session_start(); $_SESSION['test'] = "a"; $HTTP_SESSION_VARS['test2'] = "b"; echo $_SESSION['test']; //werkt wel echo $HTTP_SESSION_VARS['test2']; //werkt wel ?> |
1 2 3 4 5 6 7 8 9 | session_start(); //$_SESSION['test'] = "a"; //$HTTP_SESSION_VARS['test2'] = "b"; echo $_SESSION['test']; //werkt niet echo $HTTP_SESSION_VARS['test2']; //werkt wel ?> |
Door phpinfo() of phpversion() te gebruiken kom je erachter of PHP5 daadwerkelijk werkt.quote:Op zaterdag 27 januari 2007 10:20 schreef splendor het volgende:
Zou het kunnen dat er toch nog ergens php bestanden zijn achtergebleven?
Die werkte wel gewoon, daarmee hebben we zijn sessie instelling vergeleken met die van mij. Of is het zo dat je echt heel gericht op zoek moet gaan om te kijken of er ergens stukjes php4 zijn achtergebleven?quote:Op zaterdag 27 januari 2007 10:25 schreef JeRa het volgende:
[..]
Door phpinfo() of phpversion() te gebruiken kom je erachter of PHP5 daadwerkelijk werkt.
Als PHP zegt dat ie op versie 5 draait, dan is de kans klein dat er ergens stukjes PHP4 achter zijn geblevenquote:Op zaterdag 27 januari 2007 10:31 schreef splendor het volgende:
[..]
Die werkte wel gewoon, daarmee hebben we zijn sessie instelling vergeleken met die van mij. Of is het zo dat je echt heel gericht op zoek moet gaan om te kijken of er ergens stukjes php4 zijn achtergebleven?
Iemand hier nog een brauwseltje voor ? punt waar ik tegenaanloop is dat je een string moet opgeven welke de bron is.quote:Op donderdag 25 januari 2007 23:52 schreef profielnaam het volgende:
ik wil een RSS waarin de verkeerde spelling staat van een bepaald woord alsnog omzetten naar html maar dan met de mogelijkheid een woord bijvoorbeeld: "acces" te renamen naar het juiste woord "access" is dit mogelijk bijv met een if of foreach statement, hoe zou dit in zn werk gaan ?
Je kan natuurlijk ook gewoon een auto incrediment veld toevoegen.quote:Op zaterdag 27 januari 2007 12:29 schreef Chandler het volgende:
Vraagje!
Stel je hebt een tabel met heel veel velden en records... echter mis je de record ID. En je wilt iets verwijderen... maar data in dit tabel kan voor meerdere gebruikers gelijk zijn aan elkaar (op username na dan) dan zijn er 2 opties.
1. Delete alles met de zelfde teksten die jij wilt laten verwijderen
2. Delete het record met LIMIT
Welke gebruiken jullie? en waarom?
Je zegt toch dat de username uniek is? Dan kun je dat toch als unieke factor gebruiken?quote:Op zaterdag 27 januari 2007 12:29 schreef Chandler het volgende:
Vraagje!
Stel je hebt een tabel met heel veel velden en records... echter mis je de record ID. En je wilt iets verwijderen... maar data in dit tabel kan voor meerdere gebruikers gelijk zijn aan elkaar (op username na dan) dan zijn er 2 opties.
1. Delete alles met de zelfde teksten die jij wilt laten verwijderen
2. Delete het record met LIMIT
Welke gebruiken jullie? en waarom?
Nee want een dubbele versie van auto_incre werkt niet. ivm sub_id's die in het tabel zelf verwerkt zitten, maar ik verwijder nu gewoon op datum en tekst...quote:Op zondag 28 januari 2007 04:04 schreef Tiemie het volgende:
[..]
Je kan natuurlijk ook gewoon een auto incrediment veld toevoegen.![]()
Correct, en ik heb het fout gezegd in sommige tabellen is de username uniek, maar in vele niet... daar zit weer een auto_incre... op 2 velden (combi dus) bv user & linkidquote:Op zondag 28 januari 2007 11:43 schreef CraZaay het volgende:
Je zegt toch dat de username uniek is? Dan kun je dat toch als unieke factor gebruiken?
LIMIT heb je weinig aan, je verwijdert dan de eerste n matches, zonder controle te hebben welke dat dan precies zijn
1 2 3 4 5 6 7 | HuHu 0 JeRa 0 Piet 0 Piet 1 Piet 2 Kees 0 |
Correct uniek op 2 velden...quote:Op zondag 28 januari 2007 17:15 schreef JeRa het volgende:
@Chandler
Hoezo een 'dubbele versie' van een AUTO_INCREMENT? Zit er al eentje op dan? Want dat zou betekenen dat je al een unieke key hebt.
quote:Op zondag 28 januari 2007 17:18 schreef HuHu het volgende:
@ JeRa: volgens mij bedoeld hij dit:
[ code verwijderd ]
Als er dus dubbele namen zijn, dan wordt het Nummer veld opgehoogt, zodat de rij uniek blijft. Maar dan kan je gewoon de combinatie van naam & nummer gebruiken als uniek ID.
Jah klopt... een AUTO-INCREMENT werkt inderdaad niet zo, maar ik vermoedde dat hij het dus verkeerd verwoordde.quote:Op zondag 28 januari 2007 20:30 schreef JeRa het volgende:
@HuHu
Op die manier werkt een AUTO_INCREMENT niet, die hoogt bij elke rij de waarde op. Daarom snap ik ook niet waarom een tweede AUTO_INCREMENT 'niet werkt'.
Maar goed, je kunt gewoon een PK op die twee velden aanmaken idd.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <p><a href="javascript:InsertContent('spoiler')" class="link">Find out the spoiler !</a></p> <div id="spoiler" style="font-size: 24px; display: none;"> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <?php include ('include.php'); ?> </TD> </TR> </TBODY> </TABLE> <script type="text/javascript" language="JavaScript"><!-- function InsertContent(d) { document.getElementById(d).style.display = ""; } //--></script> </div> |
Het zou wel moeten kunnen met AJAX geloof ik..quote:Op zondag 28 januari 2007 20:46 schreef profielnaam het volgende:
Hee ik probeer php code binnen een javascript uit te voeren, de php moet zich includen in dit javascriptje. Ik weet dat php server side is en javascript client side en dat het daarom niet zou moeten werken.
Maar het resultaat wat ik verlang.. moet toch wel mogelijk zijn ? dus eigenlijk de code die hier beneden staat.
[ code verwijderd ]
Nee... zoals je het daar hebt staan is het niet mogelijk.quote:Op zondag 28 januari 2007 20:46 schreef profielnaam het volgende:
Hee ik probeer php code binnen een javascript uit te voeren, de php moet zich includen in dit javascriptje. Ik weet dat php server side is en javascript client side en dat het daarom niet zou moeten werken.
Maar het resultaat wat ik verlang.. moet toch wel mogelijk zijn ? dus eigenlijk de code die hier beneden staat.
[ code verwijderd ]
zou het wel kunnen als je de php functies gewoon in je page zelf gooit, ipv te includen (aanroepen, zoals jij zei ?)quote:Op zondag 28 januari 2007 21:09 schreef HuHu het volgende:
[..]
Nee... zoals je het daar hebt staan is het niet mogelijk.
De uitvoer van de PHP code wordt namelijk IN het document gezet, en niet de PHP functies zelf. Je kan deze dus niet meer aanroepen.
Eventueel kan je met behulp van AJAX een verzoek doen aan de server, daar de functie laten uitvoeren, en het resultaat terug laten sturen. Zie daarvoor bijvoorbeeld: http://www.prototypejs.org/.
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 | ?> <HTML><HEAD></HEAD><BODY> <?php /* Variabele voor connectie naar MySQL Server */ $hostname = '***'; $username = '***'; $password = '***'; /* Variabele voor selecteren juiste database */ $database_name = 'maximusdb'; /* Connecteren aan juiste server en database */ $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!"); $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!"); echo '<form action="form_add_todo.php" method="POST"> <input type = "text" name = "Omschrijving"> <input type = "text" name = "Memo"> <input type = "submit" value = "OK!"></form>'; mysql_close($connection); ?> </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 | ?> <HTML><HEAD></HEAD><BODY> <?php /* Variabele voor connectie naar MySQL Server */ $hostname = '***'; $username = '****'; $password = '****'; /* Variabele voor selecteren juiste database */ $database_name = 'maximusdb'; /* Connecteren aan juiste server en database */ $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!"); $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!"); /* Form code */ $omschrijving = strip_tags(trim($_POST["Omschrijving"])); $memo = strip_tags(trim($_POST["Memo"])); /* Query Library */ $query01 = "INSERT INTO todo (OMS, MEMO, READY) VALUES ($omschrijving, $memo, '0')"; /* Result Library */ $result01 = mysql_query($query01) or die ("Kan de query niet uitvoeren (query01)"); mysql_close($connection); ?> </BODY></HTML> |
1 2 3 | Notice: D:DownloadsYou Know MeGeeckerDBform_add_todo.php line 21 - Undefined index: Memo |
Dan moet je er JavaScript functies van maken, dan is het geen enkel probleem. Je kan dan echter niet communiceren met de server.quote:Op zondag 28 januari 2007 21:29 schreef profielnaam het volgende:
[..]
zou het wel kunnen als je de php functies gewoon in je page zelf gooit, ipv te includen (aanroepen, zoals jij zei ?)
1 2 | VALUES ('$omschrijving', '$memo', '0')"; |
Er moeten quotes rond de VALUES in je query.quote:Op zondag 28 januari 2007 21:36 schreef JortK het volgende:
Ik heb net me eerste stapjes met PHP gezet, en heb een form gemaakt:
[ code verwijderd ]
En die roept dit bestand aan:
[ code verwijderd ]
Nu krijg ik de volgende meldingen wanneer ik de OK! knop indruk in me form:
[ code verwijderd ]
Wie kan me vertellen waarom hij het record niet aan de database toevoegd?
1 2 | VALUES ('{$omschrijving}', '{$memo}', '0')"; |
1 2 | VALUES ('" . $omschrijving . "', '" . $memo . "', '0')"; |
Omdat het een paar milliseconden trager is (je gebruikt dubbele quotes voor een string die je eigenlijk niet geparsed wilt hebben)?quote:Op zondag 28 januari 2007 22:12 schreef Chandler het volgende:
[ code verwijderd ]
waarom niet gewoon zo? is ook mooier in je hightlighting editor
Wat een zeldzaam ranzig datamodelquote:Op zondag 28 januari 2007 17:18 schreef HuHu het volgende:
@ JeRa: volgens mij bedoeld hij dit:
[ code verwijderd ]
Als er dus dubbele namen zijn, dan wordt het Nummer veld opgehoogt, zodat de rij uniek blijft. Maar dan kan je gewoon de combinatie van naam & nummer gebruiken als uniek ID.
Jij hebt geen editor die variabelen in een dubbelgequote string (al dan niet tussen {} ) highlight?quote:Op zondag 28 januari 2007 22:12 schreef Chandler het volgende:
[ code verwijderd ]
waarom niet gewoon zo? is ook mooier in je hightlighting editor
maar hoe zorg ik dat ik dit geautomatiseerd kan aanpasen?quote:Op vrijdag 26 januari 2007 17:29 schreef DoDie het volgende:
Je hebt een ID dus bijv Record 1 heeft ID 1. Dan pak je de ID van Waarde 1, ID + 3 is dus waarde 4 ed
Is het echt sneller? maar werkt het dan ook met $_POST etc?quote:Op zondag 28 januari 2007 23:21 schreef CraZaay het volgende:
[..]
Omdat het een paar milliseconden trager is (je gebruikt dubbele quotes voor een string die je eigenlijk niet geparsed wilt hebben)?
Zo zeldzaam is het niet hoorquote:
quote:Op zondag 28 januari 2007 23:51 schreef JeRa het volgende:
Valt wel mee, m:n koppeltabellen zien er 'ongeveer' ook zo uit.
Om te koppelen ja, waarbij in dat geval 'nummer' een verwijzing is naar een record in een andere tabel neem ik aan. Wat ik ervan begrepen heb is Chandler's tabel geen koppeltabel, maar wordt 'nummer' gebruikt om uniciteit aan te geven (standaard 0, tenzij er al een record met een bepaalde username is, dan ophogen).quote:Op zondag 28 januari 2007 23:51 schreef JeRa het volgende:
[..]
Valt wel mee, m:n koppeltabellen zien er 'ongeveer' ook zo uit.
Ja, maar het verschil is echt minimaal.quote:Op maandag 29 januari 2007 09:42 schreef Chandler het volgende:
[..]
Is het echt sneller? maar werkt het dan ook met $_POST etc?
Om consequent te zijn gebruik ik altijd exact dezelfde coding style, in mijn geval voor strings dus enkele quotes (apostrofes) en concatenatie om variabelen in te voegen.quote:Op maandag 29 januari 2007 10:08 schreef CraZaay het volgende:
[..]
Ja, maar het verschil is echt minimaal.
Tja bv voor een link tabel. (met meerdere gebruikers)quote:Op maandag 29 januari 2007 10:04 schreef CraZaay het volgende:
Voor zover ik weet is dat in dagelijks MySQL gebruik niet echt normaal. Ik zou het iig nooit gebruiken. Of begrijp ik de werking van je tabel verkeerd Chandler?
LOL, ik gebruik ook altijd " . $blaat . " gewoon om het feit dat ik idd ook consequent wil zijn in mijn coding stylequote:Op maandag 29 januari 2007 11:04 schreef JeRa het volgende:
Om consequent te zijn gebruik ik altijd exact dezelfde coding style, in mijn geval voor strings dus enkele quotes (apostrofes) en concatenatie om variabelen in te voegen.
Echter ben ik ook van mening dat je, zodra je dat nodig hebt om tijdswinst te boeken, er iets fundamenteels mis is aan je script.
Gebruik je dan ook enkele qoutes voor sql strings? Dan moet je dus een heleboel qoutejes escapen. Dat lijkt me niet handig en het maakt het er ook niet leesbaarder op.quote:Op maandag 29 januari 2007 11:04 schreef JeRa het volgende:
[..]
Om consequent te zijn gebruik ik altijd exact dezelfde coding style, in mijn geval voor strings dus enkele quotes (apostrofes) en concatenatie om variabelen in te voegen.
Jouw 'dan moet je dus' klopt van geen kantenquote:Op maandag 29 januari 2007 11:50 schreef SuperRembo het volgende:
[..]
Gebruik je dan ook enkele qoutes voor sql strings? Dan moet je dus een heleboel qoutejes escapen. Dat lijkt me niet handig en het maakt het er ook niet leesbaarder op.
1 2 3 4 5 6 | $stmt = $db->prepare('INSERT INTO "tabel" ("userid", "value") VALUES (:userid, :value)'); $stmt->bindParam('userid', $userid); // integer $stmt->bindParam('value', $value); // string $res = $stmt->execute(); ?> |
Ah, dan begreep ik je verkeerd. 'nummer' is dus daadwerkelijk een verwijzing naar een record in een andere tabel? Zo ja, dan vind ik alleen de naamgeving waardeloosquote:Op maandag 29 januari 2007 11:17 schreef Chandler het volgende:
[..]
Tja bv voor een link tabel. (met meerdere gebruikers)
userid
linkid
link
auto_incr zit op userid incombi met linkid oftewel bij 0 links is linkid 0 bij 9 links is linkid=9 en dat voor iedere gebruiker zo... maar goed, het is niet een database die ik bedacht heb
1 2 3 4 5 | $var = 'string'; $query = "test = '$var'" $query = "test = '{$array[1]}'" ?> |
Dat wat ik daar liet zien is PDO, dus dat kan net zo goed met MySQL of SQL server of wat dan ookquote:Op maandag 29 januari 2007 14:33 schreef CraZaay het volgende:
[..]
99% van de mensen hier zal MySQL gebruiken denk ik
Dat was mss een beetje kort door de bocht.quote:Op maandag 29 januari 2007 11:57 schreef JeRa het volgende:
Jouw 'dan moet je dus' klopt van geen kantenzie een mooi prepared statement voor PgSQL:
Ziet er netjes uit. Is die db class van eigen fabricaat?quote:[ code verwijderd ]
Et voila, snel, uitermate veilig en zonder ook maar iets te hoeven escapen![]()
Rephrase: de meesten hier hakken de SQL-statements rechtstreeks in hun code denk ik (de mensen hier die MVC-concepten e.d. gebruiken zijn op 1 hand te tellen volgens mijquote:Op maandag 29 januari 2007 14:37 schreef JeRa het volgende:
[..]
Dat wat ik daar liet zien is PDO, dus dat kan net zo goed met MySQL of SQL server of wat dan ook
'zowat'? Da's dan net te weinigquote:Op maandag 29 januari 2007 15:15 schreef Chandler het volgende:
Ik controlleer tegenwoordig zowat alle input, of het nu via een cookie, get,post of wat dan ook isheb er een paar leuke includes voor geschreven... altijd handig
Het is gewoon PDOquote:Op maandag 29 januari 2007 14:45 schreef SuperRembo het volgende:
[..]
Dat was mss een beetje kort door de bocht.
[..]
Ziet er netjes uit. Is die db class van eigen fabricaat?
Waarom geef je bij bindParam() eigenlijk geen type informatie mee, het lijk me dat je dat (meestal) wel nodig hebt. Of wordt die informatie er door de db layer zelf bij gehaald?
Checken of je domein voorkomt in de referer?quote:Op maandag 29 januari 2007 16:40 schreef super-muffin het volgende:
Hoe kan ik makkelijk controleren of een referer afkomstig is van mijn eigen site of extern?
En is_date()?quote:Op maandag 29 januari 2007 15:59 schreef JeRa het volgende:
[..]
Het is gewoon PDOhttp://nl2.php.net/PDO
En verder is het in PHP gewoon mogelijk om het type te bepalen zonder extra argumenten mee te leveren hoor, daar heb je dingen als is_string() en is_float() voor
Nee, maar ik zet dan ook nooit data of tijden direct zo in de database. Vaak kun je now() of '-infinity' als standaardwaarden gebruiken, en als ik dan toch een willekeurige datum moet invoeren doe ik dat door de datum eerst in PHP te controleren en om te zetten naar een Unix epoch timestampquote:Op maandag 29 januari 2007 16:55 schreef SuperRembo het volgende:
[..]
En is_date()?
Het data type in php hoeft natuurlijk niet overeen te komen met het data type in de database.
quote:
UUID()quote:Op maandag 29 januari 2007 17:12 schreef JortK het volgende:
Weet iemand trouwens of je iets van GUID's aan kan maken in een MySQL database?
MS-SQL heeft hier gewoon newid() voor, maar deze kan ik niet terugvinden in MySQL
Ja daar zat ik ook aan te denken. Met preg_match.quote:Op maandag 29 januari 2007 16:44 schreef CraZaay het volgende:
[..]
Checken of je domein voorkomt in de referer?
Die is er, je kunt een scherm tonen met daarin de referer en de bezoeker vragen of hij/zij in die string jouw domeinnaam ziet. Echter is de veiligste methode om het gewoon maar zelf te doen met idd een regular expressionquote:Op maandag 29 januari 2007 17:18 schreef super-muffin het volgende:
[..]
Ja daar zat ik ook aan te denken. Met preg_match.
Maar ik dacht, misschien is er een makkelijkere manier.
Die zijn er niet. Een 'externe module' is niets generieks, en 'een CMS systeem' ook niet.quote:Op maandag 29 januari 2007 17:24 schreef Chandler het volgende:
vraagje; weet iemand een tutoriaal over hoe te werken met externe modules m.b.t. een CMS systeem?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $uri = "http://www.example.com/index.php?option=blaat"; $contextOptions = array( "http" => array ( "header" => "Cookie: jalUserName=Username;PHPSESSID=abc12345;419f256etc.=532d83678etc.rn" ) ); $context = stream_context_create( $contextOptions ); $page = file_get_contents( $uri, false, $context ); echo $page; ?> |
Hoezo niet? er zijn ook tutorialen over het maken van een CMS zelf (voor standaard pagina's ed) maar is er anders dan een beschrijving hoe anderen werken met externe modules? zou fijn vinden om hier wat meer informatie over te hebben.quote:Op maandag 29 januari 2007 18:06 schreef CraZaay het volgende:
Die zijn er niet. Een 'externe module' is niets generieks, en 'een CMS systeem' ook niet.
Ik weet niet waar je het voor wil gebruiken maar hou er wel rekening mee dat de headers van een website vrij makkelijk zijn aan te passen waardoor een bezoeker ook kan doen alsof hij van jou domein afkomt.quote:Op maandag 29 januari 2007 17:18 schreef super-muffin het volgende:
[..]
Ja daar zat ik ook aan te denken. Met preg_match.
Maar ik dacht, misschien is er een makkelijkere manier.
Hij heeft uiteindelijk maar een ander pakket geïnstalleerd (xamp ofzo?) en die deed het wel gelukkig.quote:Op zaterdag 27 januari 2007 10:36 schreef JeRa het volgende:
[..]
Als PHP zegt dat ie op versie 5 draait, dan is de kans klein dat er ergens stukjes PHP4 achter zijn gebleven
Verder is het een goed idee om de configuratie met elkaar te vergelijken. Zolang die code die je net liet zien de enige relevante code is en je in eerste instantie alleen $_SESSION hebt gebruikt zonder dat dat werkte, is er iets vreemds aan de hand en is het slim om zo even het één en het ander te vergelijken ja.
Zowel met mediumtext als met longtext krijg ik de zelfde error. Het gaat overigens om 4399 tekens, dus waarschijnlijk ligt het ergens anders aan?quote:Op maandag 29 januari 2007 19:48 schreef HuHu het volgende:
Het datatype TEXT kan maar 216+2 bytes aan, oftewel 65538 tekens. Je zou een MEDIUMTEXT (224+2) of LONGTEXT (232+2) kunnen nemen.
Bron: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html.
edit:quote:TRADITIONAL is shorthand for "both strict modes, plus a bunch of other restrictions."
This is more like the way that other "traditional" SQL DBMSs act with regard to data checking.
CMS systemen kun je op ontelbare manieren bouwen. 'Externe modules' (wat dat ook moge zijn) ook. Hoe wil je hier dan ooit een tutorial over schrijven, tenzij je definieert wat voor externe module voor welk CMS?quote:Op maandag 29 januari 2007 19:08 schreef Chandler het volgende:
[..]
Hoezo niet? er zijn ook tutorialen over het maken van een CMS zelf (voor standaard pagina's ed) maar is er anders dan een beschrijving hoe anderen werken met externe modules? zou fijn vinden om hier wat meer informatie over te hebben.
Nu wanneer ik de link aanklik naar het script... blijft deze oneindig ladenquote:Op maandag 29 januari 2007 20:50 schreef HuHu het volgende:
Eerder een IIS newbie dan. Heb je alle stappen op deze pagina gedaan: http://www.php.net/manual/en/install.windows.iis.php?
heb je geen infinite loop in je script?quote:Op maandag 29 januari 2007 21:04 schreef JortK het volgende:
[..]
Nu wanneer ik de link aanklik naar het script... blijft deze oneindig laden
AppServ, XAMPPquote:Op maandag 29 januari 2007 22:43 schreef JortK het volgende:
Omdat Apache een fucking foutmelding geeft op de een of andere manier... Is er ook een pakket waarin Apache en PHP al in één zitten... dat net zo lief
IIS ookquote:Op maandag 29 januari 2007 22:43 schreef JortK het volgende:
Omdat Apache een fucking foutmelding geeft op de een of andere manier...
quote:Is er ook een pakket waarin Apache en PHP al in één zitten... dat net zo lief
Nee hoor, ik moest alleen even lachenquote:Op maandag 29 januari 2007 23:12 schreef JortK het volgende:
Ja sorry ik moet leren... dus kan zijn dat ik stomme vragen stel
Hoezo is dat strangequote:Nu heb ik XAMPP geinstalleerd.. Apache draait ook weer (how strange)
Je hebt een fout in je script. je bent een ; of een } ofzo vergeten.quote:Alleen nu als ik het PHP script run krijg ik een blank scherm, en als ik me source bekijk zie ik wel de code staan (de php code)
Iets gaat er dus nog niet goed
Je zit er telkens ééntje te hoogquote:Op maandag 29 januari 2007 19:48 schreef HuHu het volgende:
Het datatype TEXT kan maar 216+2 bytes aan, oftewel 65538 tekens. Je zou een MEDIUMTEXT (224+2) of LONGTEXT (232+2) kunnen nemen.
Je hebt deels gelijk, maar ik zie dus steeds meer scripts komen waarbij men apparte modules kan aanschaffen zoals een gastenboek, galerij, contact formulier, downloads, forum, etc etc etc... nu kun je deze scripts zo in een directory zetten en een installer draaien en klaar is kees!quote:Op maandag 29 januari 2007 20:05 schreef CraZaay het volgende:
[..]
CMS systemen kun je op ontelbare manieren bouwen. 'Externe modules' (wat dat ook moge zijn) ook. Hoe wil je hier dan ooit een tutorial over schrijven, tenzij je definieert wat voor externe module voor welk CMS?
Om het anders te stellen: als je naar een garage gaat en je vraagt of ze een uitbreiding voor een auto kunnen bouwen, wat denk je dat ze dan zeggen?
Je hebt nog nooit met classes gewerkt Chandler? Zie voor meer info: http://nl3.php.net/oopquote:Op dinsdag 30 januari 2007 10:33 schreef Chandler het volgende:
smesjz: ik ben zelf helaas nog niet erg into OOmaar zou je mij de voordelen daarvan kunnen vertellen en eventueel een voorbeeld?
Tuurlijk wel, maar dan wel simpele oplossingenquote:Op dinsdag 30 januari 2007 10:52 schreef CraZaay het volgende:
Je hebt nog nooit met classes gewerkt Chandler? Zie voor meer info: http://nl3.php.net/oop
ah, nu snap ik er helemaal de ballen meer van, maar ik ga php.net eens doorspitten.quote:Je kunt classes 'extenden', waardoor deze nieuwe class toegang heeft tot de methods van z'n 'parent'.
Je gebruikt dan dus 1 class voor het standaard werk (dbase, etc), en een extension voor iedere module die je eraan wilt knopen. Dit zou je kunnen gebruiken voor je 'het script heeft een paar verschillende functies die voor alle scripts hetzelfde zijn'-verhaal
Ik dacht dus altijd dat classes vooral makkelijk te gebruiken waren wanneer je vaak dezelfde functies moest aanroepen met verschillende waarden zodat je bv gemakkelijker een 3d berekening kon doen...quote:Op dinsdag 30 januari 2007 10:56 schreef smesjz het volgende:
Een vergelijking tussen OO en functioneel programmeren kan je met een beetje Google werk zelf ook wel vinden.
De verschillen zijn te groot vind ik om zo ff uit te leggen, dat is al door anderen duidelijker gedaan
Ah, nog niet helemaal duidelijk maar ik begin het wat meer te begrijpen.quote:Bij een CMS zou je kunnen een Pagina als een object kunnen beschouwen. Zo'n pagina kan je bijv. tonen, verwijderen, activeren e.d. (methods). En een pagina heeft wat eigenschappen zoals een titel, auteur, status, datum e.d. (properties).
En ieder Pagina object heeft een aantal Content elementen (children) die op hun beurt ook weer kunnen objecten zijn. Zo'n element heeft bijv. een type (video, tekst, link, e.d.) en kan verwijderd worden, gewijzigd, toegevoegd e.d. worden.
Hoeft natuurlijk niet, tis net waar je code voor gebruikt gaat worden...quote:Het brengt wat meer logica in je code denk ik.
Logica in de zin dat je niet OF een hoop variabele global hoeft te maken OF mee als parameter heen en weer hoeft te gooien.quote:Op dinsdag 30 januari 2007 11:33 schreef Chandler het volgende:
Hoeft natuurlijk niet, tis net waar je code voor gebruikt gaat worden...
Dat heb ik ook. Bij c++, java en zelfs javascript kan ik zat toepassingen bedenken, maar bij php gaat het niet verder als $db->query("select blah from blah where bla='blabla'"); En zelfs daar is het nut tegenover gewone functies mij nauwelijks duidelijkquote:Op dinsdag 30 januari 2007 12:39 schreef Swetsenegger het volgende:
Het OO kwartje wil bij mij ook maar niet vallen.
Ik begrijp het concept, maar het goed toepassen blijft zo compleet anders denken dan dat ik na 25 jaar functioneel programmeren gewend ben.
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 | class SimpelLampje { private $enabled = false; private $voltage = "220v"; private $kleur = "groen"; public function __construct() { echo "Ik ben een simpel lampje die aan en uit kan n"; } public function AanUit() { $this->enabled = !$this->enabled; } public function Rapporteer() { $status = ($this->enabled) ? "Aan" : "Uit"; printf("Het lampje is nu %s n",$status); } } class BeterLampje extends Simpellampje { public function __construct() { parent::__construct(); echo "Maar ik kan nu meer n"; } public function dim($percentage = 100) { printf( "Het licht wordt gedimmed tot %d procent n",$percentage); } } $simpel = new SimpelLampje; $simpel->Rapporteer(); $beter = new BeterLampje; $beter->AanUit(); $beter->Rapporteer(); $beter->dim(50); ?> |
1 2 3 4 5 6 | Het lampje is nu Uit Ik ben een simpel lampje die aan en uit kan Maar ik kan nu meer Het lampje is nu Aan Het licht wordt gedimmed tot 50 procent |
Halleluja!quote:Op dinsdag 30 januari 2007 13:40 schreef smesjz het volgende:
Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.
Iemand hier nog sterke ideeën over?quote:Op maandag 29 januari 2007 18:33 schreef keeper het volgende:
Ik probeer een pagina op een website binnen te halen middels file_get_contents(). Gaat allemaal goed, alleen omdat dit een beveiligde pagina is (joomla-cms) krijg ik dan niet de hele inhoud van de pagina te zien, maar de mededeling "je bent niet gemachtigd, etc". Logisch, want ik ben niet ingelogd op die site.
Okay, cookies meesturen. Maar hoe werkt dit (of specifieker, hoe werkt dit bij een Joomla pagina)? Welke cookies zijn belangrijk? Ik heb nu deze code:
[ code verwijderd ]
Waarbij die laatste waarde in de cookie (419..) een 32 tekens lange Hex-waarde is met als waarde (532...) een 67 tekens lange hex-waarde. Als ik dit zo stuur krijg ik een error "Redirection limit reached". Kan ik daaruit concluderen dat de login op zich werkt, alleen dat ik word teruggestuurd naar de pagina en dat er daar wat mis gaat (ik draai dat script vanaf www.mijnsite.nl/script.php)? Of gaat die login sowieso niet goed? Als ik die laatste waarde met al die hex-shit weglaat, krijg ik gewoon de "niet gemachtigd deze pagina te bekijken error".
Weet iemand of dit gaat werken? Of kijkt Joomla naar meer dingen tijdens het inloggen, zoals IP waar het vandaan komt of User-Agent? En is dat dan nog ergens mee te nemen?
disclaimer: het gaat om het automatisch inlezen van een grote pagina met data waar ik wel toegang tot heb via de browser, maar dus niet via een script
Hmmm, dit wordt me al duidelijker dan de over bekende 'auto' en 'raceauto' klasses die ik altijd als voorbeeld zie.quote:Op dinsdag 30 januari 2007 13:40 schreef smesjz het volgende:
Bij PHP kan je natuurlijk een authenticatie object maken voor alles wat daar mee te maken heeft er in mikken. Idem voor database interactie.
Maar het vereist denk ik een andere denkwijze. Idem met een MVC benadering, je kan natuurlijk dbase queries in een template stoppen omdat het zo makkelijk is. Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.
Bovendien kan je met OO ook allerlei handige methodes gebruiken zoals UML voordat je meteen gaat coden.
Simpel voorbeeldje van wat OO:
[ code verwijderd ]
Dit geeft ->
[ code verwijderd ]
Hoewel erg triviaal, geeft het toch al een beetje de basics van OO weer. Zo hoef je gedeelde functionaliteit (methods, properties) zoals de AanUit en Rapporteer functie maar 1 keer te definieeren.
Al die basisfunctionaliteit erft de verbetere lamp automatisch.
En zo kan je natuurlijk ook de AanUit method in BeterLampje opnieuw schrijven zodat ie niet alleen aan of uit kan zijn, maar ook gedimd kan zijn.
Nee, dat zou het wel erg onveilig maken hequote:Op dinsdag 30 januari 2007 14:10 schreef keeper het volgende:
[..]
Iemand hier nog sterke ideeën over?
Of versimpeld: hoe is het mogelijk om via een script te faken dat je bent ingelogd op een site, zodat je gegevens die achter die login staan automatisch binnen kan trekken?
Het kan gerust hoor, je hebt alleen wat verstand nodig van het HTTP protocol (en verder is CURL dan een goede optie).quote:Op dinsdag 30 januari 2007 14:12 schreef Swetsenegger het volgende:
[..]
Nee, dat zou het wel erg onveilig maken he
Als je weet hoe de login werkt (sessie) kan je die zetten natuurlijk.
Dat lijkt me wel wat. Zelf ben ik nog een enorme prutser, dus tuts schrijven lijkt me nog geen goede optiequote:Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:
[..]
Hmmm, dit wordt me al duidelijker dan de over bekende 'auto' en 'raceauto' klasses die ik altijd als voorbeeld zie.
Heb je geen zin om eens een tut te schrijven voor dit topic?
Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.
Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
Hoezo kan het gerust als je niet weet welke sessie info ik set en controleer bij de login?quote:Op dinsdag 30 januari 2007 14:13 schreef JeRa het volgende:
[..]
Het kan gerust hoor, je hebt alleen wat verstand nodig van het HTTP protocol (en verder is CURL dan een goede optie).
uhm? Hoezo werkt now() niet? Ik weet natuurlijk niet je db in elkaar zit maar zoiets moet wel werken:quote:Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
Hey mensen, ff een kort vraagje regarding SQL
Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
1 2 3 | FROM CheckedIN WHERE DepartDate = Now() |
Als ik een login bij jou heb en kan inloggen, dan hoef ik (vrijwel altijd) alleen maar rekening te houden met:quote:Op dinsdag 30 januari 2007 14:27 schreef Swetsenegger het volgende:
[..]
Hoezo kan het gerust als je niet weet welke sessie info ik set en controleer bij de login?
quote:Op dinsdag 30 januari 2007 14:28 schreef Sjoe538 het volgende:
Hallo,
Ik zit met het volgende probleem, ik wil een passagier die is ingecheckt vergelijken met een vlucht zijn vertrektijd. Maar de query die ik heb gemaakt moet het dus voor 'vandaag' opgeven, oftewel, alle passagiers die vandaag vertrekken. Maar dit kan dus elke dag veranderen.. Hoe los ik dit op? Met day vergelijk ik alleen de dag.. dus hoe pas ik de now() functie toe?
1
2WHERE date(vlucht.vertrektijd) =
day(passagier.inchecktijdstip)
Dan ga je er dus al vanuit dat je kan inloggenquote:Op dinsdag 30 januari 2007 14:30 schreef JeRa het volgende:
[..]
Als ik een login bij jou heb en kan inloggen, dan hoef ik (vrijwel altijd) alleen maar rekening te houden met:
- het IP-adres waarvan ik communiceer
- de HTTP-headers die ik meestuur (User-Agent, Referer, etc)
Door een beetje te testen kun je er vrij simpel achterkomen waar jij op controleert
Ja...dat was het hele idee toch? (zie de post van keeper)quote:Op dinsdag 30 januari 2007 14:35 schreef Swetsenegger het volgende:
[..]
Dan ga je er dus al vanuit dat je kan inloggen
Is het veld dat je controleerd wel een DATETIME veld of iets in die richting?quote:Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
Hey mensen, ff een kort vraagje regarding SQL
Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
Daarin werd mij niet duidelijk dat hij een login hadquote:Op dinsdag 30 januari 2007 14:36 schreef JeRa het volgende:
[..]
Ja...dat was het hele idee toch? (zie de post van keeper)
Ik ga ff offtopic, maar puik idee (pleur het op de wiki, zo zijn er meerdere onderwerpen - die niks met dit topic te maken hebben) waar we FAQ's / HOWTO's / tutorials voor kunnen gebruiken/aanmaken.quote:Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:
Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.
Mij welquote:Op dinsdag 30 januari 2007 14:39 schreef Swetsenegger het volgende:
[..]
Daarin werd mij niet duidelijk dat hij een login had
quote:Ik probeer een pagina op een website binnen te halen middels file_get_contents(). Gaat allemaal goed, alleen omdat dit een beveiligde pagina is (joomla-cms) krijg ik dan niet de hele inhoud van de pagina te zien, maar de mededeling "je bent niet gemachtigd, etc". Logisch, want ik ben niet ingelogd op die site.
(...)
disclaimer: het gaat om het automatisch inlezen van een grote pagina met data waar ik wel toegang tot heb via de browser, maar dus niet via een script
Doe de groeten aan Thijs als je hem ziet.quote:Op dinsdag 30 januari 2007 13:59 schreef CraZaay het volgende:
Halleluja!Wij doen echt alles met Ruby on Rails, tenzij een opdrachtgever expliciet PHP of Java wil.
Als er een bug in RoR code zit, wordt dat meestal al heel snel opgemerkt omdat veel mensen het gebruiken. Ik heb wel eens last gehad van een memory leak in RoR waardoor een app ontzettend traag was als ie in debug mode wordt gedraaid. Dan is die extra laag wel een nadeel.quote:Op dinsdag 30 januari 2007 14:11 schreef JeRa het volgende:
Ruby on Rails en alle andere implementaties van een geautomatiseerd MVC-concept zullen bij mij nooit de voorkeur krijgen. Als er iets is wat ik haat dan is het wel code obfuscatie door generatie. Als ik ooit een performanceprobleem in een applicatie heb is het nu ontzettend gemakkelijk in mijn MVC-model om het probleem te traceren en te debuggen, terwijl bij RoR een bugje in RoR de oorzaak kan zijn. Tuurlijk kan het in PHP ook, maar bij RoR heb je er nog een extra laag bovenop.
Verder is Ruby echt een kotstaal.[/mening]
quote:Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
Hey mensen, ff een kort vraagje regarding SQL
Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
Een tutorial schrijven in het Nederlands kan ik wel doen, maar ik heb zo het gevoel dat zoiets er al is.quote:Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:
Heb je geen zin om eens een tut te schrijven voor dit topic?
Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.
Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
Je wilt dus gewoon de huidige dag hebben? Volgens mij kan dat met day(currentdate()), of day(now()), afhankelijk van wat je gebruikt. Wel een tijdje geleden dat ik iets met SQL heb gedaan, dus kan er naast zittenquote:
Maar ik zou het dan graag met oefeningen uitbereiden, waarbij voor mij part alleen met pseudo-code gewerkt wordt. Een goede voorbereiding en goede eerste opzet van classes is het belangrijkst.quote:Op dinsdag 30 januari 2007 15:00 schreef smesjz het volgende:
[..]
Een tutorial schrijven in het Nederlands kan ik wel doen, maar ik heb zo het gevoel dat zoiets er al is.
1 |
1 |
En met day(getdate())? Weet nog dat ik hier ook nog mee heb zitten klotenquote:Op dinsdag 30 januari 2007 15:43 schreef Sjoe538 het volgende:
[ code verwijderd ]
now is not a recognized function name
[ code verwijderd ]
currentdate is not a .. etc.
1 2 3 4 5 6 7 8 | passagier.inchecktijdstip, sum(bagageobject.gewicht) AS 'Totaal gewicht' FROM passagier INNER JOIN vlucht ON passagier.vluchtnummer = vlucht.vluchtnummer INNER JOIN bagageobject ON bagageobject.passagiernummer = passagier.passagiernummer WHERE day(vlucht.vertrektijd) = day(passagier.inchecktijdstip) and day(getdate()) GROUP BY passagier.passagiernummer, passagier.naam, passagier.vluchtnummer, vlucht.vertrektijd, passagier.balienummer, passagier.inchecktijdstip ORDER BY vlucht.vertrektijd, passagier.passagiernummer |
Na de AND moet een compleet nieuwe statement komen.quote:Op dinsdag 30 januari 2007 16:22 schreef Sjoe538 het volgende:
Er moet nog iets achter / tussen de getdate functie?
1 2 3 4 5 6 | day(getdate()) = day(vlucht.vertrektijd) GROUP BY passagier.passagiernummer, passagier.naam, passagier.vluchtnummer, vlucht.vertrektijd, passagier.balienummer, passagier.inchecktijdstip ORDER BY vlucht.vertrektijd, passagier.passagiernummer |
Je kijkt nu alleen naar de dag. Als je jaar er bij wilt moet je ook nog year(bla)=year(getdate()) er bij doen natuurlijk.quote:Op dinsdag 30 januari 2007 16:33 schreef Sjoe538 het volgende:
[ code verwijderd ]
Doet het wel, geeft alleen een datum van ergens in 2006 weer.. dus klopt nog niet..
zucht.. tuurlijk.. Ik kijk er vanavond wel verder na.. eerst werken.quote:Op dinsdag 30 januari 2007 16:36 schreef Aibmi het volgende:
[..]
Je kijkt nu alleen naar de dag. Als je jaar er bij wilt moet je ook nog year(bla)=year(getdate()) er bij doen natuurlijk.
1 2 3 4 5 6 7 8 9 10 11 12 13 | passagier.inchecktijdstip, sum(bagageobject.gewicht) AS 'Totaal gewicht' FROM passagier INNER JOIN vlucht ON passagier.vluchtnummer = vlucht.vluchtnummer INNER JOIN bagageobject ON bagageobject.passagiernummer = passagier.passagiernummer WHERE day(vlucht.vertrektijd) = day(passagier.inchecktijdstip) and month(vlucht.vertrektijd) = month(passagier.inchecktijdstip) and year(vlucht.vertrektijd) = year(passagier.inchecktijdstip) and day(getdate()) = day(vlucht.vertrektijd) and month(getdate()) = month(vlucht.vertrektijd) and year(getdate()) = year(vlucht.vertrektijd) GROUP BY passagier.passagiernummer, passagier.naam, passagier.vluchtnummer, vlucht.vertrektijd, passagier.balienummer, passagier.inchecktijdstip ORDER BY vlucht.vertrektijd, passagier.passagiernummer |
Ik wil dit eigenlijk doen aan de hand van het volgende. Op een forum dat ik maak kan een reactie bewerkt worden, aangezien de reacties verdeeld zijn over meerdere pagina's wil ik dat na het bewerken de gebruiker automatisch naar zijn reactie gaat op bijvoorbeeld pagina 2. Daarom wil ik dus weten wat de positie is van de reactie in kwestie. Hopelijk is deze uitleg iets duidelijk.quote:Op dinsdag 30 januari 2007 17:38 schreef Chandler het volgende:
LIMIT 45, 15 = vanaf 45 t/m 60..
Dat gaat je niet makkelijk lukken zonder ofwel handmatig te tellen via PHP of een slimme LIMIT, of er een aparte counter aan te hangen die de positie van een bericht in een topic weergeeft. Die moet je dan wel bij elke delete e.d. aanpassenquote:Op dinsdag 30 januari 2007 19:03 schreef Pelgrim het volgende:
[..]
Ik wil dit eigenlijk doen aan de hand van het volgende. Op een forum dat ik maak kan een reactie bewerkt worden, aangezien de reacties verdeeld zijn over meerdere pagina's wil ik dat na het bewerken de gebruiker automatisch naar zijn reactie gaat op bijvoorbeeld pagina 2. Daarom wil ik dus weten wat de positie is van de reactie in kwestie. Hopelijk is deze uitleg iets duidelijk.
Example 2. wordwrap() examplequote:Op dinsdag 30 januari 2007 18:52 schreef Chandler het volgende:
Kleine vraag.. Stel ik heb het volgende.
Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaar.
Dit is een stukje text die een layout naar de mallemoer kan helpen, heeft iemand een idee hoe ik dit het beste kan uitvullen zodat de text onder elkaar komt ipv de layout verneukt?
1 2 3 4 5 6 | $text = "A very long woooooooooooord."; $newtext = wordwrap($text, 8, "n", 1); echo "$newtextn"; ?> |
1 2 3 4 | long wooooooo ooooord. |
ehhm, in het CSS overflow: hidden of overflow: scroll gebruiken. Maar is totaal niet ideaal dus.quote:Op dinsdag 30 januari 2007 18:52 schreef Chandler het volgende:
Kleine vraag.. Stel ik heb het volgende.
Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaar.
Dit is een stukje text die een layout naar de mallemoer kan helpen, heeft iemand een idee hoe ik dit het beste kan uitvullen zodat de text onder elkaar komt ipv de layout verneukt?
Wordwrap() is inderdaad handig om lange strings te 'breken'. Maar een nog simpele oplossing kan via simpele HTML en CSS.quote:Op dinsdag 30 januari 2007 19:17 schreef splendor het volgende:
[..]
Example 2. wordwrap() example
[ code verwijderd ]
This example would display:
[ code verwijderd ]
http://nl2.php.net/manual/en/function.wordwrap.php
Toevallig vandaag tegengekomen op zoek naar iets anders.![]()
Het probleem alleen is dat iemand die zijn lettergrootte van de browser anders ingesteld heeft staan vaak alsnog je layout verknalt.
divje met een width gaat niet werken.quote:Op dinsdag 30 januari 2007 19:27 schreef Tuvai.net het volgende:
[..]
Wordwrap() is inderdaad handig om lange strings te 'breken'. Maar een nog simpele oplossing kan via simpele HTML en CSS. :) Gewoon een div layer gebruiken waar het betreffende stukje tekst in moet. Fok doet dit ook als ik het goed heb. Ik ben zelf niet zo dol op wordwrap(), beetje lompe functie vind ik het.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <head> <style type="text/css"> div {width: 10px;} </style> </head> <body> <div>Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaar</div> </body> </html> |
Okay, het is dus alleen door middel van trial&error te doen. Had ik ook al gedacht, eigenlijk. Het gaat trouwens om een Joomla-site, dus misschien iemand al bekend met wat daar zoal wordt gecheckt? Ik had zelf geprobeerd alle cookies die ik van die site heb mee te sturen in een HTTP-header, gecombineerd met file_get_contents, maar dit geeft dus een 'redirection limit' error.quote:Op dinsdag 30 januari 2007 14:30 schreef JeRa het volgende:
Door een beetje te testen kun je er vrij simpel achterkomen waar jij op controleert
Ik zal een tutorial schrijven a.d.h.v. tenminste twee classes: Student en Vak (of Project) en misschien dat ik er nog een paar bij verzin als dat nuttig is.quote:Op dinsdag 30 januari 2007 15:14 schreef Swetsenegger het volgende:
Ik zou het graag zien.
Top, het gaat mij ook om de OO aanpak, als het kwartje valt kan ik de rest zelf welquote:Op dinsdag 30 januari 2007 23:41 schreef smesjz het volgende:
[..]
Ik zal een tutorial schrijven a.d.h.v. tenminste twee classes: Student en Vak (of Project) en misschien dat ik er nog een paar bij verzin als dat nuttig is.
Lijkt je dat wat?
Het gaat mij vooral om een OO aanpak en niet zo zeer om direct een OO CMS neer te zetten.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $text = "in deze zin zit een heeeeeeelerglangwoooooooooooorddienietdoordebeugelkan dus gesplitst moet worden!"; $x = explode(" ", $text); foreach ($x as $id => $key) { if (strlen($key) > 20) { $x[$id] = wordwrap($key, 20, "- ", 1); } } echo implode(" ", $x); ?> |
Hopen dat mensen dan geen "dus..." of "B.V.D." gaan schrijvenquote:Op woensdag 31 januari 2007 14:03 schreef the_disheaver het volgende:
Ja, en ook via regex komma's en andere puntjes waar geen spatie achter staan een spatie geven, en hetzelfde voor spaties voor hoofdletters (dit dan pas uitvoeren als een woord meer dan 20 tekens heeft)
Wel de regex uitbreiden dat ie bij meerdere puntjes alleen de laatste pakt, meerdere hoofdletters achter elkaar negeert en B.V.D. wijzigd in 'dank'quote:Op woensdag 31 januari 2007 14:45 schreef CraZaay het volgende:
[..]
Hopen dat mensen dan geen "dus..." of "B.V.D." gaan schrijven
edit: oh, je zegt erbij dat je dat alleen voor > 20 karakters doetnevermind
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 | <HTML><HEAD></HEAD><BODY> /* Variabele voor connectie naar MySQL Server */ $hostname = 'localhost'; $username = 'ma**'; $password = 'console'; /* Variabele voor selecteren juiste database */ $database_name = 'ma***'; /* Connecteren aan juiste server en database */ $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!"); $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!"); /* Query Library */ $query01 = 'SELECT * FROM ToDo WHERE READY = "0"'; /* Result Library*/ $result01 = mysql_query($query01) or die ("Kan de query niet uitvoeren (Query01)"); echo "<B>Overzicht openstaande activiteiten</B>"; echo "<P>"; echo "<TABLE BORDER='1'>"; while ($row01 = mysql_fetch_array($result01)) { extract($row01); echo "<TR><TD>$OMS</TD> <TD>$MEMO</TD></TR>"; } echo "</TABLE>"; mysql_close($connection); </BODY></HTML> ?> |
1 |
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 | /* Variabele voor connectie naar MySQL Server */ $hostname = 'localhost'; $username = 'ma***'; $password = 'console'; /* Variabele voor selecteren juiste database */ $database_name = '***usdb'; /* Connecteren aan juiste server en database */ $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!"); $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!"); /* Query Library */ $query01 = 'SELECT * FROM ToDo WHERE READY = "0"'; /* Result Library*/ $result01 = mysql_query($query01) or die ("Kan de query niet uitvoeren (Query01)"); echo "<B>Overzicht openstaande activiteiten</B>"; echo "<P>"; echo "<TABLE BORDER='1'>"; while ($row01 = mysql_fetch_array($result01)) { extract($row01); echo "<TR><TD>$OMS</TD> <TD>$MEMO</TD></TR>"; } echo "</TABLE>"; mysql_close($connection); ?> |
1 2 3 | <?php php-code... |
1 2 3 | print "<html> etc"; php code... |
1 |
1 |
1 |
1 2 3 4 | echo "<head>"; echo "<title>"; enzovoorts. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | echo "<html> <head> <title></title> </head> <body> <table border=\"0\"> <tr> <td> enzovoorts"; ?> |
quote:Op donderdag 1 februari 2007 01:26 schreef markiemark het volgende:
Even een snelle vraag.. Kan ik met php de naam van een directory wijzigen. In mijn script maak ik directory's aan, maar deze wil ik kunnen wijzigen.. Iemand een idee hoe? Wissen (rmdir()) en opnieuw aanmaken is geen optie..
Als ik aan een nieuwe layout of iets dergelijks begin, dan maak ik gewoon eerst de HTML af. Pas wanneer ik op het punt kom dat ik echt PHP code moet gaan gebruiken om bijvoorbeeld MySQL records te weergeven, dan zet ik de boel om. Meestal betekent dat voor mij slechts dat ik door middel van Kladblok " vervang door \", PHP moet openen en sluiten ( <? en [/b]?>[/b]) en de boel in een echo() te zetten. :)quote:Op woensdag 31 januari 2007 21:09 schreef JortK het volgende:
ja html snap ik wel... maar nu het stuk PHP erbij maakt het in een keer een stuk moeilijker :)
1 2 3 4 5 6 7 8 9 10 | <div id="container"> <div id="header"> <div id="logo"></div> <h2 class="verborgen">Navigatie</h2> <ul class="navigatie"> |
1 2 3 4 5 6 7 8 9 10 11 12 | echo "<body> <div id=\"container\"> <div id=\"header\"> <div id=\"logo\"></div> <h2 class=\"verborgen\">Navigatie</h2> <ul class=\"navigatie\">"; ?> |
Tis voor 'Intern' gebruikquote:Op donderdag 1 februari 2007 11:24 schreef Tuvai.net het volgende:
[..]
Als ik aan een nieuwe layout of iets dergelijks begin, dan maak ik gewoon eerst de HTML af. Pas wanneer ik op het punt kom dat ik echt PHP code moet gaan gebruiken om bijvoorbeeld MySQL records te weergeven, dan zet ik de boel om. Meestal betekent dat voor mij slechts dat ik door middel van Kladblok " vervang door \", PHP moet openen en sluiten ( <? en [/b]?>[/b]) en de boel in een echo() te zetten.
Stel je het volgende stukje HTML eens voor:
[ code verwijderd ]
Ga je dat simpelweg omzetten naar PHP dan krijg je dus dit:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // code hier! // hieronder zit de sluit tag, maar die zie je niet op FOK? (BUGGG!) <html> <head> <title>Voorbeeld</title> </head> <body> // ^^ open tag // php scripting etc. // hier onder weer een sluit tag! </body> </html> ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // code hier! // hieronder zit de sluit tag, maar die zie je niet op FOK? (BUGGG!) ?> <html> <head> <title>Voorbeeld</title> </head> <body> <?php // ^^ open tag // php scripting etc. // hier onder weer een sluit tag! ?> </body> </html> |
Mijn highlighter maakt onderscheidt tussen html en php. Als ik alle html parse mis ik dat.quote:Op donderdag 1 februari 2007 11:58 schreef Tuvai.net het volgende:
Klopt, maar ik vind het gewoon onhandig qua syntaxis. Ik heb in m'n eigen PHP bestanden altijd alles volledig in PHP, ook de HTML die geparsed word. Het is voor mij dan ook een gewende om met gebackslashde HTML code te werken.Het aantal tekens maakt verder geen mallemoer uit.
Het gaat niet om herkenning het gaat om een verschil tussen php en html highlighting. PHP designer maakt een verschil in highlighting tussen php en html en dat kan best handig zijn (commentaar in php en html is dus onderscheiden. Best handig, want tenslotte is html commentaar WEL zichtbaar in je source). Zodra je html door php parsed zal de editor de html als inhoud van je functie/language construct highlighten en niet als html functies.quote:Op donderdag 1 februari 2007 12:41 schreef Tuvai.net het volgende:
Ik heb altijd met Notepad (+) gewerkt en sinds kort met Notepad++ (met highlighting). Heb geen problemen met de herkenning of iets dergelijks. Maar ik werk dan ook al wat jaartjes op deze manier.
Je kan ipv die toch gewoon een andere opdracht/functie/what ever in je else stoppen.quote:Op donderdag 1 februari 2007 12:47 schreef __Saviour__ het volgende:
kun je als een sql verbinding/opdracht niet lukt ipv de die("tekst") opdracht ook iets anders laten uitvoeren, gewoon een compleet ander stuk van het script?
1 2 3 4 5 | // doe iets }else{ //doe iets anders } |
wat je nu hebt is dan:quote:Op donderdag 1 februari 2007 12:47 schreef __Saviour__ het volgende:
kun je als een sql verbinding/opdracht niet lukt ipv de die("tekst") opdracht ook iets anders laten uitvoeren, gewoon een compleet ander stuk van het script?
1 2 3 4 | { // code hier } |
Nee volgens mij op die manier 1 functie.quote:Op donderdag 1 februari 2007 12:53 schreef __Saviour__ het volgende:
ok, dus dit zou moeten werken?
[ code verwijderd ]
quote:Op donderdag 1 februari 2007 12:58 schreef __Saviour__ het volgende:
en die manier van jou? kan ik daar wel een variable toewijzen aan de verbinding?
anders heb er je er toch niks aan, dan kun je niet naar die verbinding verwijzen
1 2 3 4 5 6 | if($con!=FALSE){ // doe iets }else{ //doe iets anders } |
OF het er nou 1 of 100 zijn, maakt allemaal niks uit.quote:Op donderdag 1 februari 2007 13:32 schreef JortK het volgende:
Volgende uitdaging is het wegschrijven van meerdere records..
Ik vul een form in met drie rijen.. en die moeten met een druk op de knop allemaal weggeschreven worden als aparte regels
Kijken of ik hier uit kan komen (mochten jullie voorbeeldscripts hebben, graag)
1 2 3 4 5 6 | if($_POST['actie']=='verzenden'){ mysql_query("INSERT INTO bla (veld) VALUES ('inhoud van vledje bla')"); header("location:bestand.php"); } ?> |
Alleen ik werk er meequote:Op donderdag 1 februari 2007 13:37 schreef Tuvai.net het volgende:
[..]
OF het er nou 1 of 100 zijn, maakt allemaal niks uit.
Meestal heb je, wanneer een formulier gepost word middels _POST, een dergelijk PHP script:
[ code verwijderd ]
mysql_query() en header() zijn dan beide functies die aangeroepen worden, en afgesloten worden met ;. In feite heb je met een scriptje waar 3 records weggeschreven moeten worden precies hetzelfde, maar dan 3 keer een mysql_query(). header() heb ik er trouwens bij gezet. Het header() regeltje boven redirect je door naar 'bestand.php', zodat de scriptuitvoer niet herhaald kan worden door middel van een refresh.
Oh en Jort, als je met formulieren gaat werken waar gebruikers input leveren, wees je dan wel voorzichtig met 'SQL injection'?
Nog iets korterquote:
1 2 3 4 5 | // doe iets }else{ //doe iets anders } |
Ik heb in het verleden wel functies geschreven die gewoon bestonden.quote:Op donderdag 1 februari 2007 14:45 schreef JortK het volgende:
als ik dat zo zie heeft PHP voor alles wel een functie gemaakt lol
Deels vind ik het wel jammer maar aan de andere kant maakt het scripten ook weer heel gemakkelijkquote:Op donderdag 1 februari 2007 15:19 schreef Swetsenegger het volgende:
Ik heb in het verleden wel functies geschreven die gewoon bestonden.
Tegenwoordig zoek ik wel even goed in de manual
Ik denk dat er nog genoeg te scripten overblijft. Maar als je eht echt jammer vind, raadt ik je assembley aan.... Daar mag je ALLES zelf verzinnen (behalve optellen, aftrekken en delen enzo)quote:Op donderdag 1 februari 2007 16:29 schreef Chandler het volgende:
[..]
Deels vind ik het wel jammer maar aan de andere kant maakt het scripten ook weer heel gemakkelijk
Je kan natuurlijk ook altijd nog je eigen programmeertaal implementeren en zelf een compiler ervoor schrijven.quote:Op donderdag 1 februari 2007 16:40 schreef Swetsenegger het volgende:
[..]
Ik denk dat er nog genoeg te scripten overblijft. Maar als je eht echt jammer vind, raadt ik je assembley aan.... Daar mag je ALLES zelf verzinnen (behalve optellen, aftrekken en delen enzo)
Ooit eens 1 progie mee gemaakt om de scherm mode naar mode 13 te veranderenquote:Op donderdag 1 februari 2007 16:40 schreef Swetsenegger het volgende:
[..]
Ik denk dat er nog genoeg te scripten overblijft. Maar als je eht echt jammer vind, raadt ik je assembley aan.... Daar mag je ALLES zelf verzinnen (behalve optellen, aftrekken en delen enzo)
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |