Ik heb een scriptje van een site gehaald die vrij gemakkelijk aan te passen zou moeten zijn.quote:<?php
session_start();
?>
<html>
<head>
<title>Login pagina</title>
</head>
<body>
<form method="post" action="login.php">
<input type="hidden" name="Submit" value="1">
<input type="text" name="gebruikersnaam">
<input type="text" name="password_old">
<input type="password" name="password_new">
<input type="password" name="password_new_check">
<input type="submit" value="Login">
</form>
<p>
<?php
$DBHost = "iets.nl";
$DBLogin = "iets2";
$DBPassword = "nogiets";
$DBDatabase = "iets2";
mysql_connect("$DBHost", "$DBLogin", "$DBPassword");
@mysql_select_db("$DBDatabase");
// er van uitgaande dat je weet hoe je een form maakt, en de variables doorspeelt aan een ander script
$gebruikersnaam = md5($_POST['gebruikersnaam']);
$password_old = md5($_POST['password_old']);
$password_new = md5($_POST['password_new']);
$password_new_check = md5($_POST['password_new_check']);
// Hier heb je dus waardes uit een form gehaalt wat een gebruiker heeft ingevult.
if (!empty($password_old) && !empty($password_new) && !empty($password_new_check)) {
$sql=mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam='$username'");
while($data=mysql_fetch_array($sql)) { // Je zoekt in de database naar de gebruiker die op dit moment is ingelogt.
if ($data['password'] == $password_old) {
if ($password_new == $password_new_check) {
mysql_query("UPDATE gebruikers SET password='$password_new' WHERE gebruikersnaam = 'gebruikersnaam'");
// hiermee zeg je dus: verander het wachtwoord naar het nieuwe wachtwoord,
// maar alleen bij degene met --> $username <-- die username
}
else {
$error = "De wachtwoorden komen niet overeen";
}
}
else {
$error = "Het wachtwoord is onjuist";
}
}
}
else { $error = "Je bent iets vergeten in te vullen."; }
?>
</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 | <? $sql = "SELECT email FROM users WHERE firstname = '". $row['nsiemp'] ."'"; $result = mysql_query($sql); if (!$result) { echo "Kon de query ($sql) niet uitvoeren (E-mail melding niet verzonden): " . mysql_error(); exit; } if (mysql_num_rows($result) == 0) { echo "Geen uitgaande calls gevonden."; exit; } while ($row = mysql_fetch_assoc($result)) { $toAdres = $row['email']; switch($_POST['action']){ default: break; case "versturen": $mailTitel = "Nieuwe call op NSI Employees"; $mailText.="\nBeste,"; $mailText.="\nJe hebt een nieuwe call ontvangen op NSI Employees."; $mailText.="\nDetails kun je bekijken via http://w.w.com"; mail($toAdres, $mailTitel, $mailText, "From: NSI"); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $query="SELECT FAQ_id, question, answer FROM FAQ WHERE language_id=1 OR language_id=2"; $result=mysql_query($query); while($row=mysql_fetch_array($result)){ $query2="SELECT product_id FROM FAQ_product WHERE FAQ_id=".$row['FAQ_id'].""; $result2=mysql_query($query2); $row2=mysql_fetch_array($result2); $query3="SELECT product_code FROM product WHERE product_id=".$row2['product_id'].""; $result3=mysql_query($query3); $row3=mysql_fetch_array($result3); ?> |
1 2 3 | <?php $query="SELECT FAQ.FAQ_id, FAQ.question, FAQ.answer, FAQ_product.product_id FROM FAQ LEFT JOIN FAQ_product ON FAQ.FAQ_id = FAQ_product.FAQ_id WHERE language_id=1 or language_id=2"; ?> |
set_time_limit(0)quote:Op maandag 14 februari 2005 15:28 schreef Swetsenegger het volgende:
Een en ander werkt nu, maar op de server staat een maximum execution time voor php waar ik lastig wat aan kan veranderen.
484 keer connectenquote:Op maandag 14 februari 2005 15:28 schreef Swetsenegger het volgende:
Ik ben nog steeds met mijn conversie bezig van een externe db naar een lokale db.
Een en ander werkt nu, maar op de server staat een maximum execution time voor php waar ik lastig wat aan kan veranderen.
Ik moet mijn code dus optimaliseren.
Nu heb ik dit:
[ code verwijderd ]
hetgeen dus de originele data uit de externe db haalt.
Maar er moet toch een manier zijn om dit in 1 query te doen ipv van 3 waarbij ik ook nog 484 keer de db connectie moet openen en sluiten (Het gaat dus om 484 rows, in 3 verschillende tabellen)
Beetje een gok omdat ik niet weet hoe de tabellen in elkaar stekenquote:Nu vind ik die sql reference manual erg wazig, ik begrijp in ieder geval dat ik met aliasen voor de verschillende tabel namen moet gaan werken en join's maar het is nog een beetje abrcadabra voor me.
Tipje van de sluier iemand?
Ondertussen heb ik query 1 en 2 al samen gevoegd. Nu query 3 er nog bij
[ code verwijderd ]
1 2 3 4 5 | SELECT f.*, product.* FROM FAQ f INNER JOIN FAQ_product fp ON fp.FAQ_id=f.FAQ_id INNER JOIN product p ON p.product_id=fp.product_id WHERE f.language_id IN (1,2) |
Ik denk dat de externe database connection een timeout geeft. Daar draait geen php script, en dus heb je niet aan set_time_limit()quote:Op maandag 14 februari 2005 15:46 schreef Burning_RefleX het volgende:
[..]
set_time_limit(0)
Dit zorgt dat de execution time weg gaat, dus geen limiet.
Je kan ipv. 0 ook 60 neerzetten, dit is het aantal seconden dat het script mag lopen. (standaard: 30)
Je switch is verkeerd.quote:Op maandag 14 februari 2005 15:23 schreef dnzl het volgende:
Ik probeer naast het invoegen van data in mySQL. Een mailtje te versturen. Nu loop ik een beetje stuk. Terwijl ik toch het idee heb dat ik geen fouten maak.
[ code verwijderd ]
Thumb is met een h.quote:Op maandag 14 februari 2005 18:17 schreef Darkomen het volgende:
Oke, ik heb een upload script gemaakt.
Deze upload de image.
als gelukt $data .="gelukt";
Resized de image
als gelukt $data .="resized";
maakt een tumbnail
als gelukt $data .="tumbnail created";
Daar is ie weer de PHP manualquote:voegt een banner toe
als gelukt $data .="banner added";
Nu als het een grote foto is dan duurt het een tijdje, ik begreep dat je tussen die stappen ook de data naar de browser kan sturen. flush()
heeft iemand een voorbeeld van zo'n script?
1 2 3 4 5 6 7 8 9 10 | <? echo str_repeat(" ", 256); $i = 100; while($i > 0) { echo $i." bottle".($i != 1 ? 's' : '')." of beer on the wall, ".$i." bottle".($i != 1 ? 's' : '')." of beer. Take one down and pass it around, ".(--$i)." bottle".($i != 1 ? 's' : '')." of beer on the wall<br>\n"; flush(); ob_flush(); sleep(10); } ?> |
Inderdaad erg vaag want die tekst staat nergens in de code, spooky.quote:Op maandag 14 februari 2005 15:06 schreef Johan-Derksen het volgende:
Ik heb de gegevens aangepast maar het werkt niet...
Na het invullen van de gebruikersnaam, oude wachtwoord, nieuwe ww en nogmaals nieuwe ww, springt ie terug naar login.php met als tekst: Je gebruikersnaam of password klopt niet.
Erg vaag!
Heb je al geprobeerd te debuggen. Klopt de data die je binnen krijgt. Krijg je errors/warnings? (zet error reporting aan!) Welke query's worden uitgevoerd? Klopt de data die de query's terug geven? etc etc.quote:Iemand een idee wat er fout gaat?
ja het is hetzelfde, enkel vertaald. Alhoewel je in het Engels al een tweede versie van het boek hebt, waarbij een ganse hoop fouten uit het boek gehaald zijn, en dat de sccript nu werken met register_globals = ON. Veel script uit versie 1 werken niet als je register_globals op ON zet.quote:Op maandag 14 februari 2005 19:00 schreef markiemark het volgende:
ik heb ook een vraagje.. is het nederlandse boek PHP4 Het complete handboek hetzelfde als het engelse PHP 4 Bible ??? Zo ja... ok duidelijkzo nee, wat zijn de verschillen want ik heb heb PHP4 het complete handboek al..
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 | <?php session_start(); ?> <html> <head> <title>Login pagina</title> </head> <body> <form method="post" action="pass.php"> <input type="hidden" name="Submit" value="1"> <input type="text" name="gebruikersnaam"> <input type="text" name="password_old"> <input type="password" name="password_new"> <input type="password" name="password_new_check"> <input type="submit" value="Login"> </form> <p> <?php $DBHost = "hh"; $DBLogin = "hhh"; $DBPassword = "hhhh"; $DBDatabase = "hhh"; mysql_connect("$DBHost", "$DBLogin", "$DBPassword"); @mysql_select_db("$DBDatabase"); $gebruikersnaam = md5($_POST['gebruikersnaam']); $password_old = md5($_POST['password_old']); $password_new = md5($_POST['password_new']); $password_new_check = md5($_POST['password_new_check']); if (!empty($password_old) && !empty($password_new) && !empty($password_new_check)) { $sql=mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam='$gebruikersnaam'"); while($data=mysql_fetch_array($sql)) { if ($data['password'] == $password_old) { if ($password_new == $password_new_check) { mysql_query("UPDATE gebruikers SET password='$password_new' WHERE gebruikersnaam = '$gebruikersnaam'"); } else { $error = "De wachtwoorden komen niet overeen"; } } else { $error = "Het wachtwoord is onjuist"; } } } else { $error = "Je bent iets vergeten in te vullen."; } ?> </body> </html> |
quote:Op maandag 14 februari 2005 20:30 schreef Jump het volgende:
Omdat niemand nog het vorige deel gaat lezen
Weet iemand het verschil tussen de -> en de :: operator i ngebruik van classes en andere ?
aldus: http://nl3.php.net/manual/nl/keyword.paamayim-nekudotayim.phpquote:Sometimes it is useful to refer to functions and variables in base classes or to refer to functions in classes that have not yet any instances. The :: operator is being used for this.
Ik heb het al opgelost, ik had geen join nodigquote:Op maandag 14 februari 2005 18:36 schreef SuperRembo het volgende:
[..]
484 keer connecten
Dan zou je nog makkelijker eerst de tabelen helemaal helemaal inlezen en in arrays zetten. Dan er doorheen loopen en er uit zoeken wat je nodig hebt. Dan ben je met 1x conecten en 3 query's klaar. Zo schokkend veel data zal dat toch niet zijn?
[..]
Beetje een gok omdat ik niet weet hoe de tabellen in elkaar steken
[ code verwijderd ]
(een INNER JOIN in plaats van een LEFT JOIN omdat ik aan neem dat FAQ of products niet leeg mogen zijn)
Weet je inmiddels welke query's worden uitgevoerd?quote:Op maandag 14 februari 2005 20:33 schreef Johan-Derksen het volgende:
[ code verwijderd ]
DIt is dus mn huidige code... maar er wordt niet iets aangepast in de tabel gebruikers met kolom password
Dat is erg jammer
Dan geef ik 't op.quote:Op maandag 14 februari 2005 21:35 schreef Johan-Derksen het volgende:
ja md5 ken ik... en die haal ik weg bij gebruikersnaam...
Maar je punt over uitgevoerde query's kan ik niet goed controleren... zou niet weten hoe
Geweldig antwoordquote:Op maandag 14 februari 2005 18:55 schreef SuperRembo het volgende:
[..]
Thumb is met een h.
[..]
Daar is ie weer de PHP manual
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 | <? echo str_repeat(" ", 256); $i = 100; while($i > 0) { $data .= $i." bottle".($i != 1 ? 's' : '')." of beer on the wall, ".$i." bottle".($i != 1 ? 's' : '')." of beer. Take one down and pass it around, ".(--$i)." bottle".($i != 1 ? 's' : '')." of beer on the wall<br>\n"; flush(); $data .=""; ob_flush(); sleep(10); } ?> |
1 2 3 4 | <? include('bla.php'); echo $data; ?> |
Staan je gebruikersnaam en password wel in md5 formaat opgeslagen in de database?quote:Op maandag 14 februari 2005 20:33 schreef Johan-Derksen het volgende:
[ code verwijderd ]
DIt is dus mn huidige code... maar er wordt niet iets aangepast in de tabel gebruikers met kolom password
Dat is erg jammer
Gedaan en dat werkt dus niet, vandaar dat ik het vroegquote:Op maandag 14 februari 2005 22:21 schreef SuperRembo het volgende:
Lijkt me wel kunnen. Probeer 't eens zou ik zeggen.
De kolommen zijn lang genoeg (41), maar ik kan niet achterhalen hoe je een kolom met md5 format opslaat. Dat zal dus wel niet het geval zijn. Ik ga eens opzoeken hoe ik dat kan aanpassen in mn mysql db.quote:Op maandag 14 februari 2005 23:44 schreef MouseInteractive het volgende:
[..]
Staan je gebruikersnaam en password wel in md5 formaat opgeslagen in de database?
En zijn je tabel kolommen lang genoeg wat betreft tekens? (Een md5 string is zo'n 40 tekens lang ofzo, dus zorg wel dat het maximum aantal tekens in je mysql kolom groter is dan 40)
Een CHAR van 32 moet genoet zijn hoor.quote:Op dinsdag 15 februari 2005 09:13 schreef Johan-Derksen het volgende:
[..]
De kolommen zijn lang genoeg (41), maar ik kan niet achterhalen hoe je een kolom met md5 format opslaat. Dat zal dus wel niet het geval zijn. Ik ga eens opzoeken hoe ik dat kan aanpassen in mn mysql db.
Dank je wel voor het meedenken!
Probeer eens even je gebruikersnaam en password uit de tabel te wissen en vervolgens opnieuw in md5 formaat in de tabel op te slaan.quote:Op dinsdag 15 februari 2005 09:13 schreef Johan-Derksen het volgende:
[..]
De kolommen zijn lang genoeg (41), maar ik kan niet achterhalen hoe je een kolom met md5 format opslaat. Dat zal dus wel niet het geval zijn. Ik ga eens opzoeken hoe ik dat kan aanpassen in mn mysql db.
Dank je wel voor het meedenken!
1 2 3 4 5 6 | <?php $gebruikersnaam = md5($_POST['gebruikersnaam']); $password = md5($_POST['password']); mysql_query("INSERT INTO gebruikers (gebruikersnaam,password) VALUES ('$gebruikersnaam','$password')"); ?> |
Waarom zou je de gebruikersnaam in md5 formaat willen opslaan?quote:Op maandag 14 februari 2005 23:44 schreef MouseInteractive het volgende:
[..]
Staan je gebruikersnaam en password wel in md5 formaat opgeslagen in de database?
Omdat hij de query uitvoert met iets als:quote:Op dinsdag 15 februari 2005 11:21 schreef Light het volgende:
[..]
Waarom zou je de gebruikersnaam in md5 formaat willen opslaan?
1 | WHERE gebruikersnaam = '$gebruikersnaam' |
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 | <?php function check($in, $type = null) { $err = "false"; switch ($type) { case "numeric": if (preg_match ("/^([0-9]+)$/", $in)) { return $in; } else { return $err; } break; case "postcode": if (preg_match('/^\d{4}\s?[A-Z]{2}$/', $in)) { return $in; } else { return $err; } break; case "mac": // mac address if (preg_match("/^([0-9a-fA-F][0-9a-fA-F]<img src="http://images.fok.nl/s/smile.gif" width="15" height="15" alt="" />{5}([0-9a-fA-F][0-9a-fA-F])$/", $in)) { return $in; } else { return $err; } break; case "email": // checks proper syntax if (preg_match("/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/" , $in)) { return $in; } else { return $err; } break; case "ip": if (preg_match("/^((127)|(192)|(10).*)$/", $in)) { return $err; } $ip = explode(".", $in); if(count($ip) != 4) { return $err; } foreach($ip as $block) { if(!is_numeric($block) || $block>255 || $block<1) { return $err; } } return $in; break; case "link": if (eregi("/^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]<img src="http://images.fok.nl/s/shiny.gif" width="15" height="15" alt="" />?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$/", $in)) { return $in; } else { return $err; } break; case "date": /* Date format : dd-mm-yyyy */ $dt = str_replace("/", "-", $in); // if found / change to - $dt = str_replace(" ", "-", $dt); // if found [space] change to - if (preg_match("/^(?=\d)(?:(?!(?:(?:0?[5-9]|1[0-4])(?:\.|-|\/)10(?:\.|-|\/)(?:1582))|(?:(?:0?[3-9]|1[0-3])(?:\.|-|\/)0?9(?:\.|-|\/)(?:1752)))(31(?!(?:\.|-|\/)(?:0?[2469]|11))|30(?!(?:\.|-|\/)0?2)|(?:29(?:(?!(?:\.|-|\/)0?2(?:\.|-|\/))|(?=\D0?2\D(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|2[0-8]|1\d|0?[1-9])([-.\/])(1[012]|(?:0?[1-9]))\2((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?:$|(?=\x20\d)\x20)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/", $dt)) { return $in; } else { return $err; } break; case "time": $in = str_replace("/", ":", $in); // if found / change to : $in = str_replace(" ", ":", $in); // if found [space] change to : if (preg_match("/(^|^[0-9]*:)[0-9]{2}(\.[0-9]{1,2}$|$)/", $in)) { return $in; } else { return $err; } break; case "htmlcolor": // old ^(#){1}([a-fA-F0-9]){6}$; if (preg_match("/^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$/", $in)) { return $in; } else { return $err; } break; case "image": if (preg_match("/^src[^>]*[^/].(?:jpg|bmp|gif)(?:\"|\')$/", $in)) { return $in; } else { return $err; } break; case "isbn": $regexpr = "ISBN\x20(?=.{13}$)\d{1,5}([- ])\d{1,7}\1\d{1,6}\1(\d|X)$"; return preg_match($regexpr, $in) ? $in : $err; break; case "text": break; default: // text and all break; } return $err; } echo '<h1>Check Function</h1>'; echo '<br />numeric : test1 with numbers only : ' . check("324290348", "numeric"); echo '<br />numeric : test2 with numbers & text : ' . check("40S0834SS", "numeric"); echo '<br />postcode : test1 with correct NL postcode : ' . check("9733 AA", "postcode"); echo '<br />postcode : test2 with wrong NL postcode : ' . check("442 AAA", "postcode"); echo '<br />mac address : test1 with correct mac address : ' . check("00:50:8D:F9:FA:8A", "mac"); echo '<br />mac address : test2 with wrong mac address : ' . check("00:50:8D:F9:FA:DD:A", "mac"); echo '<br />email : test1 with correct email address : ' . check("sex@sex.com", "email"); echo '<br />email : test2 with wrong email address : ' . check("test.sex#woei@home.nl", "email"); echo '<br />ip : test1 with correct ip address : ' . check("127.5.222.12", "ip"); echo '<br />ip : test2 with wrong ip address : ' . check("269.10.1.1", "ip"); /* hmmmm */ echo '<br />link : test1 with correct link address : ' . check("http://www.yahoo.com", "link"); echo '<br />link : test2 with wrong link address : ' . check("www.dezesitebestaatniet.nl", "link"); /* hmmmm */ echo '<br />date : test1 with correct date (dd/mm/yyyy) : ' . check("32-12-1960", "date"); echo '<br />date : test2 with wrong date (dd/mm/yyyy): ' . check("12-12-1980", "date"); /* hmmmm */ echo '<br />time : test1 with correct time stamp : ' . check("23:23", "time"); echo '<br />time : test2 with wrong time stamp : ' . check("61:12", "time"); echo '<br />htmlcolor : test1 with correct color code : ' . check("#FFFFFF", "htmlcolor"); echo '<br />htmlcolor : test2 with wrong color code : ' . check("#ad$as%a", "htmlcolor"); ?> |
Bumpjequote:Op maandag 14 februari 2005 21:53 schreef Darkomen het volgende:
[..]
Geweldig antwoord![]()
Maar is dit ook mogenlijk?
File bla.php
1
2
3
4
5
6
7
8
9
10
11
12<?
echo str_repeat(" ", 256);
$i = 100;
while($i > 0) {
$data .= $i." bottle".($i != 1 ? 's' : '')." of beer on the wall, ".$i." bottle".($i != 1 ? 's' : '')." of beer. Take one down and pass it around, ".(--$i)." bottle".($i != 1 ? 's' : '')." of beer on the wall<br>\n";
flush();
$data .="";
ob_flush();
sleep(10);
}
?>
file bla2.php
1
2
3
4<?
include('bla.php');
echo $data;
?>
quote:
quote:Op maandag 14 februari 2005 22:21 schreef SuperRembo het volgende:
Lijkt me wel kunnen. Probeer 't eens zou ik zeggen.
...quote:Op dinsdag 15 februari 2005 08:40 schreef Darkomen het volgende:
[Lijkt me wel kunnen. Probeer 't eens zou ik zeggen.]
Gedaan en dat werkt dus niet, vandaar dat ik het vroeg
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <form action="index.php" method="post"><br /> Product<br /> <select class="form" name="articel_code" multiple="multiple" style="width:400px;" size="3"> <? include('includes/connect.dat'); $query="SELECT * FROM products order by articel_code ASC"; $result=mysql_query($query); while($row=mysql_fetch_array($result)){ if (empty($row['articel_code'])){ $articel_code='no code'; }else{ $articel_code="{$row['articel_code']}";} print "<OPTION value=\"$articel_code\">$articel_code - {$row['articel_name']}</OPTION>\n"; } ?> </SELECT> |
quote:Op woensdag 16 februari 2005 11:10 schreef Swetsenegger het volgende:
Nieuw probleempje
Ik heb het volgende form
[ code verwijderd ]
Hier komt dus een $_POST['articel_code'] uit welke multiple waardes kan hebben (je kan in het form dus met ctrl meerdere artikelen selecteren)
Maar als ik 'm echo zie ik alleen de laatst geselecteerde waarde
en wanneer wordt die bug in de [ php ] tag gefixed zodat '<' niet meer als z'n htmlentitie wordt weer gegeven
1 | <select class="form" name="articel_code[]" multiple="multiple" style="width:400px;" size="3"> |
ob_flush(): failed to flush buffer. No buffer to flushquote:
1 2 3 4 5 6 7 8 9 10 11 12 | <? $data =''; $data .= str_repeat(" ", 256); $i = 100; while($i > 0) { $data .= $i." bottle".($i != 1 ? 's' : '')." of beer on the wall, ".$i." bottle".($i != 1 ? 's' : '')." of beer. Take one down and pass it around, ".(--$i)." bottle".($i != 1 ? 's' : '')." of beer on the wall<br>\n"; flush(); ob_flush(); sleep(2); } ?> |
1 2 3 4 5 | <? error_reporting(E_ALL); include('bla2.php'); echo $data; ?> |
Je hebt het script zo aangepast dat ie niets meer output. De output buffer blijft dus leeg. Daar geeft ie een notice van.quote:Op woensdag 16 februari 2005 13:31 schreef Darkomen het volgende:
[..]
ob_flush(): failed to flush buffer. No buffer to flush
bla2.php
[ code verwijderd ]
bla.php
[ code verwijderd ]
Ik heb de phpmanual over flush ook gelezen maar helaas word ik daar niet veel wijzer van
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 | <?php if (eregi("/^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]<img src="http://images.fok.nl/s/shiny.gif" width="15" height="15" alt="" />?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$/", $in)) { return $in; } else { return $err; } break; case "date": /* Date format : dd-mm-yyyy */ $dt = str_replace("/", "-", $in); // if found / change to - $dt = str_replace(" ", "-", $dt); // if found [space] change to - if (preg_match("/^(?=\d)(?:(?!(?:(?:0?[5-9]|1[0-4])(?:\.|-|\/)10(?:\.|-|\/)(?:1582))|(?:(?:0?[3-9]|1[0-3])(?:\.|-|\/)0?9(?:\.|-|\/)(?:1752)))(31(?!(?:\.|-|\/)(?:0?[2469]|11))|30(?!(?:\.|-|\/)0?2)|(?:29(?:(?!(?:\.|-|\/)0?2(?:\.|-|\/))|(?=\D0?2\D(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|2[0-8]|1\d|0?[1-9])([-.\/])(1[012]|(?:0?[1-9]))\2((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?:$|(?=\x20\d)\x20)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/", $dt)) { return $in; } else { return $err; } break; case "time": $in = str_replace("/", ":", $in); // if found / change to : $in = str_replace(" ", ":", $in); // if found [space] change to : if (preg_match("/(^|^[0-9]*:)[0-9]{2}(\.[0-9]{1,2}$|$)/", $in)) { return $in; } else { return $err; } break; ?> |
Ik heb je een werkend voorbeeld gegeven. Daar heb je zo mee zitten rotzooien dat 't niet meer werktquote:Op woensdag 16 februari 2005 16:17 schreef Darkomen het volgende:
Ik heb het idee dat je me probeert op te voedenHeel aardig, bij mij werkt het alleen beter als ik een voorbeeld heb die werkt, dan weet ik wat ik fout doe en dan kan ik gaan rotzooien om te krijgen wat ik echt wil.
ob_flush flusht de output buffer. Als je niets in de output buffer zet (geen echo/print), dan is er niets te flushen.quote:Ik heb bijvoorbeeld al veel dingen geprobeerd zoals flush($data); ob_flush($data); maar niets dat me hierbij helpt, zelfs gegoogeld op flush($
Ik doe m'n best om het te begrijpen, maar volgens jou moet ik dus voor flush(), $data echoen?quote:Op woensdag 16 februari 2005 19:40 schreef SuperRembo het volgende:
[..]
Ik heb je een werkend voorbeeld gegeven. Daar heb je zo mee zitten rotzooien dat 't niet meer werkt
[..]
ob_flush flusht de output buffer. Als je niets in de output buffer zet (geen echo/print), dan is er niets te flushen.
ob_flush() vervroegd alleen de output. Als er zonder ob_flush() geen output is, dan is die er ook niet met ob_flush().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <? $moeilijke_code if ($succes_moeilijke_code) { $data .="gelukt"; flush();// dus output $data naar de browser en ga weer verder met de code. ) $andere_moeilijke_code if ($succes_andere_moeilijke_code) { $data .="gelukt"; flush(); ) $weer_andere_moeilijke_code if ($succes_weer_andere_moeilijke_code) { $data .="gelukt"; flush(); ) ?> |
1 2 3 4 5 6 | <? include('include.php'); echo 'wat html zooi'; echo $data; echo 'nog wat html zooi'; ?> |
HEt script doet een aantal dingen,quote:Op donderdag 17 februari 2005 10:05 schreef Swetsenegger het volgende:
Volgens mij start je helemaal bovenaan met ob_start() en helemaal onderaan je pagina een ob_flush()
Verder hoef je je nergens druk over te maken.
Maar wanneer je goed script heb je geen buffering nodig. Zet gewoon elke voorwaardelijke actie welke headers aanpast helemaal bovenaan je pagina.
En als ik je script zie begrijp ik niet waarom je flush of buffering nodig zou hebben
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 | function createthumb($start_image,$enddirectory_image,$new_w,$new_h,$extension){ if (preg_match("/jpg|jpeg|JPG/",$extension)){$src_img=imagecreatefromjpeg($start_image);} if (preg_match("/png/",$extension)){$src_img=imagecreatefrompng($start_image);} if (preg_match("/gif/",$extension)){$src_img=imagecreatefromgif($start_image);} $old_x=imageSX($src_img); $old_y=imageSY($src_img); if ($old_x > $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_h/$old_x); } if ($old_x < $old_y) { $thumb_w=$old_x*($new_w/$old_y); $thumb_h=$new_h; } if ($old_x == $old_y) { $thumb_w=$new_w; $thumb_h=$new_h; } $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); if(preg_match("/png/",$extension)) {imagepng($dst_img,$enddirectory_image);} elseif(preg_match("/jpg|jpeg|JPG/",$extension)) {imagejpeg($dst_img,$enddirectory_image);} else {imagegif($dst_img,$enddirectory_image);} imagedestroy($dst_img); } |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |