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); } |
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 | SQL; CREATE TABLE `werkstations` ( `id` int(11) NOT NULL auto_increment, `consultant` varchar(25) NOT NULL default 'Niet ingev.', `klant` varchar(25) NOT NULL default 'Niet ingev.', `datum` varchar(20) NOT NULL default '0-0-0-0', `cp_naam` varchar(25) NOT NULL default '', `cp_user` varchar(25) NOT NULL default '', `cp_ip` varchar(20) NOT NULL default '0.0.0.0', `gateway` varchar(20) NOT NULL default '0.0.0.0', `domeinnaam` varchar(40) NOT NULL default '', `subnetmask` varchar(30) NOT NULL default '0.0.0.0', `dnsip1` varchar(30) NOT NULL default '0.0.0.0', `dnsip2` varchar(30) NOT NULL default '0.0.0.0', `dhcp` varchar(4) NOT NULL default '', `win95` varchar(30) NOT NULL default '', `win95_taal` varchar(30) NOT NULL default '', `win98` varchar(30) NOT NULL default '', `win98_taal` varchar(30) NOT NULL default '', `winme` varchar(30) NOT NULL default '', `winme_taal` varchar(30) NOT NULL default '', `winnt` varchar(30) NOT NULL default '', `winnt_taal` varchar(30) NOT NULL default '', `winnt_sp` varchar(5) NOT NULL default '', `win2000` varchar(30) NOT NULL default '', `win2k_taal` varchar(30) NOT NULL default '', `win2k_sp` varchar(5) NOT NULL default '', `winxp` varchar(30) NOT NULL default '', `winxp_taal` varchar(30) NOT NULL default '', `winxp_type` varchar(6) NOT NULL default 'Pro', `winxp_sp` varchar(4) NOT NULL default '', `antivirus` varchar(30) NOT NULL default '', `av_taal` varchar(30) NOT NULL default '', `antivirus2` varchar(30) NOT NULL default '', `av_taal2` varchar(30) NOT NULL default '', `msoffice` varchar(30) NOT NULL default '', `mso_taal` varchar(30) NOT NULL default '', `mso_type` varchar(5) NOT NULL default '', `mso_sp` varchar(5) NOT NULL default '', `inte_expl` varchar(30) NOT NULL default '', `ie_taal` varchar(30) NOT NULL default '', `acrobat` varchar(30) NOT NULL default '', `acro_taal` varchar(30) NOT NULL default '', `winzip` varchar(30) NOT NULL default '', `wz_taal` varchar(30) NOT NULL default '', `extrapp1` varchar(30) NOT NULL default '', `extrapp2` varchar(30) NOT NULL default '', `extrapp3` varchar(30) NOT NULL default '', `opmerking` varchar(30) NOT NULL default 'Geen', `merk` varchar(30) NOT NULL default '', `outled` varchar(30) NOT NULL default '', `behuizing` varchar(30) NOT NULL default '', `model` varchar(30) NOT NULL default '', `model_serie` varchar(30) NOT NULL default '0.0.0.0', `monitor` varchar(6) NOT NULL default '', `monitor_serie` varchar(30) NOT NULL default '0.0.0.0', `monitor_soort` varchar(40) NOT NULL default '', `monitor_type` varchar(10) NOT NULL default '', `pentium_type` varchar(4) NOT NULL default '4', `processor` varchar(20) NOT NULL default 'Pentium', `proc_overig` varchar(20) NOT NULL default '', `snelheid` varchar(30) NOT NULL default '', `geheugen` varchar(4) NOT NULL default '', `geheugen2` varchar(4) NOT NULL default '', `maalgeheugen` varchar(30) NOT NULL default '', `maalgeheugen2` varchar(30) NOT NULL default '', `geheugenpos_vrij` varchar(30) NOT NULL default '', `geheugenpos_totaal` varchar(30) NOT NULL default '', `vasteschijf` varchar(10) NOT NULL default '', `vasteschijf_type` varchar(12) NOT NULL default '', `cdrom` varchar(10) NOT NULL default '', `cdrom_type` varchar(6) NOT NULL default '', `grafisch_type` varchar(30) NOT NULL default '', `grafisch_model` varchar(10) NOT NULL default '', `geluids` varchar(15) NOT NULL default 'Geïntegreerd', `netwerk1` varchar(10) NOT NULL default '', `netwerk2` varchar(10) NOT NULL default '', `modem_soort` varchar(10) NOT NULL default '', `modem_serie` varchar(30) NOT NULL default '', `modem_type` varchar(30) NOT NULL default '', `aansl_parallel` varchar(10) NOT NULL default '0', `aansl_parallel2` varchar(10) NOT NULL default '0', `aansl_serieel19` varchar(10) NOT NULL default '0', `aansl_serieel25` varchar(10) NOT NULL default '0', `aansl_usb` varchar(10) NOT NULL default '0', `aansl_usb2` varchar(10) NOT NULL default '0', `schijfpos_vrijaantal1` varchar(5) NOT NULL default '', `schijfpos_vrijaantal2` varchar(5) NOT NULL default '', `toetsenbord` varchar(30) NOT NULL default '', `muis` varchar(30) NOT NULL default '', `overig` varchar(50) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=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 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 | <? $consultant=$_POST['consultant']; $klant=$_POST['klant']; $datum=$_POST['datum']; $cp_naam=$_POST['cp_naam']; $cp_user=$_POST['cp_user']; $cp_ip=$_POST['cp_ip']; $gateway=$_POST['gateway']; $domeinnaam=$_POST['domeinnaam']; $subnetmask=$_POST['subnetmask']; $dnsip1=$_POST['dnsip1']; $dnsip2=$_POST['dnsip2']; $dhcp=$_POST['dhcp']; $win95=$_POST['win95']; $win95_taal=$_POST['win95_taal']; $win98=$_POST['win98']; $win98_taal=$_POST['win98_taal']; $winme=$_POST['winme']; $winme_taal=$_POST['winme_taal']; $winnt=$_POST['winnt']; $winnt_taal=$_POST['winnt_taal']; $winnt_sp=$_POST['winnt_sp']; $win2000=$_POST['win2000']; $win2k_taal=$_POST['win2k_taal']; $win2k_sp=$_POST['win2k_sp']; $winxp=$_POST['winxp']; $winxp_taal=$_POST['winxp_taal']; $winxp_sp=$_POST['winxp_sp']; $antivirus=$_POST['antivirus']; $av_taal=$_POST['av_taal']; $antivirus2=$_POST['antivirus2']; $av_taal2=$_POST['av_taal2']; $msoffice=$_POST['msoffice']; $mso_taal=$_POST['mso_taal']; $mso_type=$_POST['mso_type']; $mso_sp=$_POST['mso_sp']; $inte_expl=$_POST['inte_expl']; $ie_taal=$_POST['ie_taal']; $acrobat=$_POST['acrobat']; $acro_taal=$_POST['acro_taal']; $winzip=$_POST['winzip']; $wz_taal=$_POST['wz_taal']; $extrapp1=$_POST['extrapp1']; $extrapp2=$_POST['extrapp2']; $extrapp3=$_POST['extrapp3']; $opmerking=$_POST['opmerking']; $merk=$_POST['merk']; $outled=$_POST['outled']; $behuizing=$_POST['behuizing']; $model=$_POST['model']; $model_serie=$_POST['model_serie']; $monitor=$_POST['monitor']; $monitor_serie=$_POST['monitor_serie']; $monitor_soort=$_POST['monitor_soort']; $monitor_type=$_POST['monitor_type']; $pentium_type=$_POST['pentium_type']; $processor=$_POST['processor']; $proc_overig=$_POST['proc_overig']; $snelheid=$_POST['snelheid']; $geheugen=$_POST['geheugen']; $geheugen2=$_POST['geheugen2']; $maalgeheugen=$_POST['maalgeheugen']; $maalgeheugen2=$_POST['maalgeheugen2']; $geheugenpos_vrij=$_POST['geheugenpos_vrij']; $geheugenpos_totaal=$_POST['geheugenpos_totaal']; $vasteschijf=$_POST['vasteschijf']; $vasteschijf_type=$_POST['vasteschijf_type']; $cdrom=$_POST['cdrom']; $cdrom_type=$_POST['cdrom_type']; $grafisch_type=$_POST['grafisch_type']; $grafisch_model=$_POST['grafisch_model']; $geluids=$_POST['geluids']; $netwerk1=$_POST['netwerk1']; $netwerk2=$_POST['netwerk2']; $modem_soort=$_POST['modem_soort']; $modem_serie=$_POST['modem_serie']; $modem_type=$_POST['modem_type']; $aansl_parallel=$_POST['aansl_parallel']; $aansl_parallel2=$_POST['aansl_parallel2']; $aansl_serieel19=$_POST['aansl_serieel19']; $aansl_serieel25=$_POST['aansl_serieel25']; $aansl_usb=$_POST['aansl_usb']; $aansl_usb2=$_POST['aansl_usb2']; $schijfpos_vrijtype=$_POST['schijfpos_vrijtype']; $schijfpos_vrijaantal1=$_POST['schijfpos_vrijaantal1']; $schijfpos_vrijaantal2=$_POST['schijfpos_vrijaantal2']; $toetsenbord=$_POST['toetsenbord']; $muis=$_POST['muis']; $overig=$_POST['overig']; ?> <? $sql = " INSERT INTO werkstations (consultant, klant, datum, cp_naam, cp_user, cp_ip, gateway, domeinnaam, subnetmask, dnsip1, dnsip2, dhcp, win95, win95_taal, win98, win98_taal, winme, winme_taal, winnt, winnt_taal, winnt_sp, win2000, win2k_taal, win2k_sp, winxp, winxp_taal, winxp_sp, winxp_type, antivirus, av_taal, antivirus2, av_taal2, msoffice, mso_taal, mso_type, mso_sp, inte_expl, ie_taal, acrobat, acro_taal, winzip, wz_taal, extrapp1, extrapp2, extrapp3, opmerking, merk, outled, behuizing, model, model_serie, monitor, monitor_serie, monitor_soort, monitor_type, pentium_type, processor, proc_overig, snelheid, geheugen, geheugen2, maalgeheugen, maalgeheugen2, geheugenpos_vrij, geheugenpos_totaal, vasteschijf, vasteschijf_type, cdrom, cdrom_type, grafisch_type, grafisch_model, geluids, netwerk1, netwerk2, modem_soort, modem_serie, modem_type, aansl_parallel, aansl_parallel2, aansl_serieel19, aansl_serieel25, aantal_usb, aantal_usb2, schijfpos_vrijaantal1, schijfpos_vrijaantal2, toetsenbord, muis, overig) VALUES ('$consultant','$klant','$datum','$cp_naam','$cp_user','$cp_ip','$gateway','$domeinnaam','$subnetmask','$dnsip1','$dnsip2','$dhcp','$win95','$win95_taal','$win98','$win98_taal','$winme','$winme_taal','$winnt','$winnt_taal','$winnt_sp','$win2000,'$win2k_taal','$win2k_sp','$winxp','$winxp_taal','$winxp_sp','$winxp_type','$antivirus','$av_taal','$antivirus2','$av_taal2','$msoffice','$mso_taal','$mso_type','$mso_sp','$inte_expl','$ie_taal','$acrobat','$acro_taal','$winzip','$wz_taal','$extrapp1','$extrapp2','$extrapp3','$opmerking','$merk','$outled','$behuizing','$model','$model_serie','$monitor','$monitor_serie','$monitor_soort','$monitor_type','$pentium_type','$processor','$proc_overig','$snelheid','$geheugen','$geheugen2','$maalgeheugen','$maalgeheugen2','$geheugenpos_vrij','$geheugenpos_totaal','$vasteschijf','$vasteschijf_type','$cdrom','$cdrom_type','$grafisch_type','$grafisch_model','$geluids','$netwerk1','$netwerk2','$modem_soort','$modem_serie','$modem_type','$aansl_parallel', '$aansl_parallel2','$aan_serieel19','$aansl_serieel25','$aantal_usb','$aantal_usb2','$schijfpos_vrijaantal1','$schijfpos_vrijaantal2','$toetsenbord','$muis','$overig')"; ?> |
Nee dat hoeft niet persee maar is meestal wel zo gemakkelijk toch?quote:Op woensdag 16 februari 2005 19:35 schreef DutchBlood het volgende:
Wil je per se regular expressions gebruiken?
quote:<?php
$filename = "synop.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
$boom = explode(" ", $contents);
$last = count($boom) - 1;
// waarden zitten nu in $boom[0] tot en met $boom[$last]
echo("$boom[0] $boom[1] $boom[2] $boom[3] $boom[4] $boom[5] $boom[6] $boom[7] $boom[8]");
?>
Verklaar je nader, svpquote:Op donderdag 17 februari 2005 12:04 schreef SuperRembo het volgende:
De grootste fout is je datamodel.
Een hoop werk om te maken, een drama om te onderhouden.![]()
Nou, bv bij date en time:quote:Op donderdag 17 februari 2005 12:22 schreef Chandler het volgende:
[..]
Nee dat hoeft niet persee maar is meestal wel zo gemakkelijk toch?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php $arr = explode($string,'-'); /* Waar '-' is het scheidingsteken dus */ foreach($arr as $val) { if (!is_numeric($val)) { $error = true; /* Een van de velden is niet numeriek, dus fout */ } else { /* Velden zijn alleen numeriek */ if($arr[0] >= 1 and $arr[0] <= date($arr[1])) { /* Date ok */ } if($arr[1] >= 1 and $arr[1] <= 12) { /* Maand ok */ } } ?> |
Ik weet niet of het antwoord al is gegeven, maar ik denk dat je mysql_fetch_assoc moet gebruikenquote: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
quote:Op donderdag 17 februari 2005 12:43 schreef maniack28 het volgende:
Ik probeer een txt bestand op te splitten in kleine stukjes, want die stukjes moeten gedoceerd worden. Het zijn zogenaamde synops met informatie over het weer.(zie: http://www.meteonet.nl/educatief/synopcode.htm) Alleen het probleem is, ik heb nu alles gesplitst en die hebben nu dus waarden van $boom[0] t/m $boom[last] alleen bestaat zo'n boom uit bijv. de code: SMMJO1 alleen moet die ook weer gesplit worden, want bijv. de eerste 2 letters heben een betekenis en de laatste 4 ook.... Hoe krijg ik dat voor elkaar?
Dit is mn huidige code
[..]
1 2 3 4 5 6 | <?php foreach($boom as $value){ $boom_front=substr($value,0,2); $boom_back=substr($value,3,6); } ?> |
printf() / sprintf() / number_format()quote:Op donderdag 17 februari 2005 19:25 schreef Maikey het volgende:
Ik ben bezig met een online shop met daarin een cart met je bestelde producten. Momenteel ben ik bezig met het berekenen van de totaalprijs, alles wordt nu netjes berekend, alleen PHP stript de laatste nullen van een getal eraf, bijvoorbeeld 2,50 wordt 2,5. Is hier een speciale functie voor om die laatste cijfers te behouden?
Met printf of sprintf zou je een heel eind moeten kunnen komenquote:Op donderdag 17 februari 2005 19:25 schreef Maikey het volgende:
Ik ben bezig met een online shop met daarin een cart met je bestelde producten. Momenteel ben ik bezig met het berekenen van de totaalprijs, alles wordt nu netjes berekend, alleen PHP stript de laatste nullen van een getal eraf, bijvoorbeeld 2,50 wordt 2,5. Is hier een speciale functie voor om die laatste cijfers te behouden?
Iemand?quote:Op donderdag 17 februari 2005 12:21 schreef Kapt.Ruigbaard het volgende:
Op Fok (bijvoorbeeld) worden bericht titels uit het nieuws die langer zijn dan een x-aantal tekens afgekort. Als je hier met de muis overheen beweegt, verschijnt de volledige titel wel. Het lijkt een beetje op de ALT van een plaatje.
Mijn vraag is, hoe krijg je zoiets voor elkaar?
1 | $bericht = eregi_replace("\\[img\\]([^\\[] |
Teksten langer dan x-aantal tekens afkorten met substrquote:
Dat doe je gewoon met de title attrubute. Daar is geen javascript voor nodig.quote:Op donderdag 17 februari 2005 20:02 schreef Swetsenegger het volgende:
[..]
Teksten langer dan x-aantal tekens afkorten met substr
alternative alt (tooltip) doe je met javascript, bv: http://www.walterzorn.com/tooltip/tooltip_e.htm
Klopt, maar een tooltip schuift mooi meequote:Op donderdag 17 februari 2005 20:33 schreef SuperRembo het volgende:
[..]
Dat doe je gewoon met de title attrubute. Daar is geen javascript voor nodig.
1 | DELETE * FROM calls wHERE nsiemp = '$nsiemp' |
1 | DELETE * FROM calls wHERE nsiemp = '$nsiemp' |
$nsiemp vervangen door $_POST['nsiemp'] ? Ik weet niet precies wat je bedoelt maar ik denk dat je dit bedoelt, als je de select knop tenminste als naam nsiemp hebt gegevenquote:Op vrijdag 18 februari 2005 12:48 schreef dnzl het volgende:
[ code verwijderd ]
Ik heb een klein select formpje in HTML die voor deze actie zit. Hoe zorg ik ervoor dat hij die waarde van die select als '$nsiemp' gebruikt?
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 | <?php if(isset($_GET['download']) AND strlen($_GET['download']) > 0) { if (eregi("\/", $_GET['download'])) $filename = substr(strrchr($_GET['download'], "/"), 1); else $filename = $_GET['download']; if (@!$fp = fopen($_GET['download'], "r")) $error = "Kan ".$filename." niet uitlezen.\n"; else { if (@!$content = fread($fp, filesize($_GET['download']))) $error = "Kan ".$filename." niet uitlezen.\n"; else { $handle = popen("/usr/bin/file -b '".addslashes($_GET['download'])."'", "r"); pclose($handle); header ("Content-Type: text/html".$filetype); header ("Content-Transfer-Encoding: ascii".$filetype); header ("Content-Disposition: attachment; filename=".$filename); echo $content; unset($error); } fclose($fp); } exit; } if (isset($error)) { echo "$error"; } ?> |
nl2br:quote:Op vrijdag 18 februari 2005 13:50 schreef Pronk het volgende:
Ik heb een scriptje gemaakt dat regels wegschrijft in een tekstbestandje, nu heb ik een scriptje van een site gehaald om het bestandje te downloaden.
Mijn probleem is nu dat het bestandje gewoon wordt gedownload meer niet in het juiste formaat. Het bestandje dat nu wordt gedownload bestaat eigenlijk uit 1 lange regel gescheiden met een raar blokje. Het is natuurlijk de bedoeling dat er een nieuwe regel begint i.p.v de rare blokjes.
Ik denk dat dit is op te lossen door het HEADER gedeelte van dit scriptje aan te passen. Is mijn gedachte goed? Hoe moet ik deze headers veranderen?
[ code verwijderd ]
1 2 3 4 | <?php $content=nl2br($content); echo $content; ?> |
1 | header ("Content-Type: text/plain"); |
1 2 | $handle = popen("/usr/bin/file -b '".addslashes($_GET['download'])."'", "r"); pclose($handle); |
HEt script doet een aantal dingen,quote:Op donderdag 17 februari 2005 11:07 schreef Darkomen het volgende:
[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); } |
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 | class sessie{ function open ($j,$k) { $connect = mysql_connect(....); mysql_select_db('....); return true; } function close () { $this->gc(''); } function read($ses_id) { $q = 'SELECT * FROM sessies WHERE ses_id=\''.$ses_id.'\' and ip=\''.$_SERVER['REMOTE_ADDR'].'\''; $res = mysql_query($q); $data = mysql_fetch_array($res); if(mysql_num_rows($res) < 1) { return ''; } else { return $data['data']; } } function write($ses_id,$data) { $q = 'SELECT * FROM sessies WHERE ses_id=\''.$ses_id.'\''; $res = mysql_query($q); if(mysql_num_rows($res) < 1) { $q = 'INSERT INTO sessies (ses_id,date,data,ip) VALUES (\''.$ses_id.'\','.time().',\''.$data.'\',\''.$_SERVER['REMOTE_ADDR'].'\')'; $res = mysql_query($q); $iets = $q; if(mysql_affected_rows()) { return true; } else { return false; } } else { $q = 'UPDATE sessies SET date='.time().',data=\''.$data.'\' WHERE ses_id=\''.$ses_id.'\''; $res = mysql_query($q); if(mysql_affected_rows()) { return true; } else { return false; } } } function destroy($ses_id) { $q = 'DELETE FROM sessies WHERE ses_id=\''.$ses_id.'\''; $res = mysql_query($q); if($res) { return true; } else { return false; } } function gc($life) { $q = 'DELETE FROM sessies WHERE date<'.strtotime('-4 weeks'); $res = mysql_query($q); return true; } } |
Thnx!quote:Op donderdag 17 februari 2005 20:33 schreef SuperRembo het volgende:
[..]
Dat doe je gewoon met de title attrubute. Daar is geen javascript voor nodig.
In plaats van die array?quote:Op donderdag 17 februari 2005 16:42 schreef ikke_ook het volgende:
[..]
Ik weet niet of het antwoord al is gegeven, maar ik denk dat je mysql_fetch_assoc moet gebruiken
ConTEXT bijvoorbeeld.quote:Op dinsdag 22 februari 2005 07:39 schreef Cafun het volgende:
Wat is nou eigenlijk een goede edittor voor PHP filetjes?
Heb verschillende pakketjes geprobeerd, maar ik wilde ook nog even aan jullie vragen welke goed is
Is het dus mogelijk om zoiets als A, B, C, D ipv userfile neer te zetten? ['userfile', 'A', 'B'] lukt niet..quote:<form enctype='multipart/form-data' action='upload.php?upload' method='post'>
Upload dit bestand: <input name='userfile' type='file'><br />
in deze directory: <input name='dir' value='/var/www/html/uploadtest/'>
<input type='submit' value='Upload!'>
</form>
<?php
if($_SERVER['QUERY_STRING'] != 'upload')
{
echo "";
}
else
{
if($_FILES['userfile']['type'] != '')
{
$namefile = addslashes($_FILES['userfile']['name']);
$typefile = $_FILES['userfile']['type'];
$tempname = $_FILES['userfile']['tmp_name'];
$filesize = $_FILES['userfile']['size'];
$destdirf = $_POST['dir'];
$errormsg = $_FILES['userfile']['error'];
move_uploaded_file($tempname, $destdirf.$namefile);
echo("uploaded");
echo("name: ".$namefile."<br>");
echo("tempname: ".$tempname."<br>");
echo("filesize: ".$filesize."<br>");
echo("type of file: ".$typefile."<br>");
echo("destdir: ".$destdirf."<br>");
echo("error: ".$errormsg);
}
else
{
echo "Mogelijke aanval gespot<br>";
}
}
Nee ik had me vergist. Het zou wel moeten werken zoals jij t hebt.quote:Op maandag 21 februari 2005 22:57 schreef Johan-Derksen het volgende:
[..]
In plaats van die array?
Of waar bedoel je precies?
1 2 3 4 5 6 7 8 9 10 11 12 | <?php function datum_vertaal($weekdag,$dagnr,$maandnr) { $dag=array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag'); $maand=array('maand','januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'); $uitkomst = "$dag[$weekdag] $dagnr $maand[$maandnr]"; return $uitkomst; } ?> |
Dat is kut, want het werkt niet ...quote:Op dinsdag 22 februari 2005 14:51 schreef ikke_ook het volgende:
[..]
Nee ik had me vergist. Het zou wel moeten werken zoals jij t hebt.
Lijkt me niet dat het veel korter kan, ik zou het ook zo ongeveer doen in ieder gevalquote:Op dinsdag 22 februari 2005 16:55 schreef Wouta het volgende:
Hoi,
Ik heb voor het eerst een functie-tje geschreven in PHP en ik vraag me eigelijk af of ik het wel goed heb gedaan. De functie doet wel wat ik wil maar toch heb ik het idee dat ik teveel code ofzo heb.
[ code verwijderd ]
Niet slecht inderdaad, in de regel zou je beter niet te veel dubbele qoutes gebruiken. Dus:quote:Op dinsdag 22 februari 2005 16:55 schreef Wouta het volgende:
Hoi,
Ik heb voor het eerst een functie-tje geschreven in PHP en ik vraag me eigelijk af of ik het wel goed heb gedaan. De functie doet wel wat ik wil maar toch heb ik het idee dat ik teveel code ofzo heb.
[ code verwijderd ]
1 2 3 4 5 6 7 8 | function datum_vertaal($weekdag,$dagnr,$maandnr) { $dag=array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag'); $maand=array('maand','januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'); $uitkomst = $dag[$weekdag] . $dagnr . $maand[$maandnr]; return $uitkomst; } |
Ziet er veelbelovend uit.quote:Op woensdag 23 februari 2005 20:17 schreef Swetsenegger het volgende:
[..]
ik vind tegenwoordig php designer erg prettig.
Ehmz, ik heb hm nog nooit output zien geven. Soms geeft hij een hint.quote:Op woensdag 23 februari 2005 21:36 schreef SuperRembo het volgende:
[..]
Ziet er veelbelovend uit.
Maar ik ga 'm zelf toch niet gebruiken.
Veel wizards die output geven die je zelf sneller typt (voor een hyperlink) Wat heb ik aan een xhtml template met <body bgcolor="#FFFFFF" ... ?
De bebugfunctie klinkt leuk, maar erg veel nuttige info heb ik er zo snel niet uit kunnen halen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php function convert_date($date) { $datum = $date; $jaar = substr($datum, 0, 4); $maand = substr($datum, 5, 2); $maand = number_format($maand); $maand = $maand - 1; $maanden = array("Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"); $maand = $maanden[$maand]; $dag = substr($datum, 8, 2); $dag = number_format($dag); $uur = substr($datum, 11, 2); $minuut = substr($datum, 14, 2); $datum = $dag." ".$maand." ".$jaar." ".$uur.":".$minuut; echo $datum; } ?> |
Misschien is het handig om er commentaar bij te zetten met de input die je verwachtquote:Op donderdag 24 februari 2005 00:31 schreef markiemark het volgende:
heb ff een php functietje geschreven.. wat vinden jullie er van?
het is om een database datum uit een datetime veld om te vormen naar een leesbare datum:
[ code verwijderd ]
1 2 3 4 5 6 | // datum uit database omzetten naar timestamp $timestamp = strtotime($dbdate); // taal instellen setlocale (LC_TIME, 'dutch'); // of 'nl_NL' , afhankelijk van de server // datum en tijd printen in de standaard vorm van de ingestelde taal echo strftime("%c"); |
1 | SELECT UNIX_TIMESTAMP(MyDate) AS MyTimestamp FROM MyTable |
1 2 3 4 5 6 7 | form.php <input class="configs" type="text" name="serv_model"> input.php $serv_model=$_POST['serv_model'] INSERT (kolomnaam) VALUES ('$serv_model') |
Als het echt een groot formulier zou worden zou je al je velden in een array kunnen gooien. Dan kun je dynamisch je formulier en query's opbouwen.quote:Op donderdag 24 februari 2005 11:28 schreef dnzl het volgende:
Ik ga binnekort beginnen aan een vrij groot project (voor mijn doen).
Via een formulier moet er data (tekst, getallen, checkboxes, radiobuttons) in mySQL worden toegevoegt.
Wat ik me afvraag: wat is nou de juiste manier om geposte data in mySQL toe te voegen.
Ik deed het zelf altijd zo (bij kleinere)
[ code verwijderd ]
Ik zie er tegen op om op deze manier grotere formulieren te maken, dus graag tips over hoe dit op de beste, stabielste manier moet lukken
![]()
1 2 3 4 5 6 7 8 | <?php $velden = array(); $velden[] = array('input type','input naam'); foreach($velden as $veld) { echo '<input type="'.$veld[0].'" name="'.$veld[1].'" />'; } ?> |
1 | ORDER BY Prijs DESC |
Is het werkelijk zo simpel. Ik dacht dit al (de tabel bestaat nog niet) maar twijfeldequote:Op zaterdag 26 februari 2005 00:14 schreef SuperRembo het volgende:
[ code verwijderd ]
Of snap ik de vraag niet?
Was er niet ook een MySql voor dummies?
Zorg wel dat het veld van je prijzen numerie(Int, Float, etc) is, anders sorteerst ie ze op 'alfabetische' volgorde.quote:Op zaterdag 26 februari 2005 10:35 schreef Swetsenegger het volgende:
[..]
Is het werkelijk zo simpel. Ik dacht dit al (de tabel bestaat nog niet) maar twijfelde
Voor prijzen/bedragen is het type DECIMAL erg geschikt. Je hebt dan een vast aantal decimalen, dan blijft de precisie behouden.quote:Op zaterdag 26 februari 2005 18:32 schreef DutchBlood het volgende:
[..]
Zorg wel dat het veld van je prijzen numerie(Int, Float, etc) is, anders sorteerst ie ze op 'alfabetische' volgorde.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |