Daarmee voorkom je SQL injections tot op zekere hoogtequote:Op maandag 20 augustus 2007 13:36 schreef markiemark het volgende:
[..]
is dat alles? is het daarmee veilig?
Beste keuzequote:Op donderdag 23 augustus 2007 08:11 schreef WyriHaximus het volgende:
[..]
3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder worden.
Het voordeel is ook dat je exact kunt zien wie er op welk tijdstip een bepaalde stap deed. Klinkt control-freakish, maar zelf plak ik aan elke nuttige tabel een DateAdded en DateUpdated veld.quote:Op donderdag 23 augustus 2007 08:11 schreef WyriHaximus het volgende:
[..]
3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder worden.
De derde optie is helemaal niet zo'n slecht idee iddquote:Op donderdag 23 augustus 2007 09:23 schreef Geqxon het volgende:
Het voordeel is ook dat je exact kunt zien wie er op welk tijdstip een bepaalde stap deed. Klinkt control-freakish, maar zelf plak ik aan elke nuttige tabel een DateAdded en DateUpdated veld.
1 2 3 4 5 6 | if ($zoek_klantnummer != "") { $query = "SELECT * FROM reservering WHERE Klantnummer = '$zoek_klantnummer'"; $result = mysql_query($query) or die ("Kan opdracht niet uitvoeren"); ?> |
Dan doe je iets fout met het fetchen van je queryquote:Op vrijdag 24 augustus 2007 14:59 schreef Xtr3mE het volgende:
een snel vraagje:
waarom kan ik met deze SQL query niet meer dan 1 resultaat uitlezen uit de tabel:
[ code verwijderd ]
Er zijn nu 2 records in de tabel (in de toekomst komen hier wel meer bij) die hetzelfde klantnummer hebben.
Als uitvoer krijg ik altijd maar 1 te zien en terwijl ik die in de SQL van bijv. phpMyAdmin doe dan krijg ik ze wel alle 2...
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 | echo "<table width="80%" cellpadding="0" cellspacing="2">"; echo "<tr><td colspan='200'></td></tr>"; echo "<tr> <td><strong>Reserveringsnummer</strong></td> <td><strong>Klantnummer</strong></td> <td><strong>Klantnaam</strong></td> <td><strong>Huurdatum</strong></td> <td><strong>tot</strong></td> <tr><td colspan='40'><hr></td></tr>"; while (@$row = mysql_fetch_array($result)) { extract($row); ... echo "<tr> <td><a href='wijzigen.php?reserveringsnummer=" . urlencode($Reserveringsnummer) ."'>$Reserveringsnummer</a></td> <td>$Klantnummer</td> <td>$Klantnaam</td> <td>$Datum_begin</td> <td>$Datum_eind</td> <td>$Postcode</td> <td>$Plaats</td> </tr>n"; } echo "</table>n"; $gevonden = ""; if ($Klantnummer == "") { $gevonden = "Geen reserveringen gevonden die aan de zoekcriteria voldoen"; } } ?> |
Probeer dit eensquote:Op vrijdag 24 augustus 2007 15:03 schreef Xtr3mE het volgende:
oke hier dan de rest van de code:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | echo "<table width="80%" cellpadding="0" cellspacing="2">"; echo "<tr><td colspan='200'></td></tr>"; echo "<tr> <td><strong>Reserveringsnummer</strong></td> <td><strong>Klantnummer</strong></td> <td><strong>Klantnaam</strong></td> <td><strong>Huurdatum</strong></td> <td><strong>tot</strong></td> <tr><td colspan='40'><hr></td></tr>"; while ($row = mysql_fetch_assoc($result)) { extract($row); ... echo "<tr> <td><a href='wijzigen.php?reserveringsnummer=" . urlencode($row['Reserveringsnummer']) ."'>$row['Reserveringsnummer']</a></td> <td>$row['Klantnummer']</td> <td>$row['Klantnaam']</td> <td>$row['Datum_begin']</td> <td>$row['Datum_eind']</td> <td>$row['Postcode']</td> <td>$row['Plaats']</td> </tr>n"; } echo "</table>n"; $gevonden = ""; if ($Klantnummer == "") { $gevonden = "Geen reserveringen gevonden die aan de zoekcriteria voldoen"; } } ?> |
1 2 3 4 5 6 7 | //klantnaam uit andere tabel halen $query = "SELECT Klantnaam FROM klant WHERE Klantnummer = '$Klantnummer'"; $result = mysql_query($query) or die ("Kan opdracht niet uitvoeren"); $Klantnaam = mysql_result($result, 0, "Klantnaam"); ?> |
Dat werkt, dank je wel.quote:Op vrijdag 24 augustus 2007 21:01 schreef Farenji het volgende:
select * from artikelen a inner join tags t on a.ID = t.artikelID where a.ID = ? and t.tag = ?
oid
joins;quote:Op vrijdag 24 augustus 2007 22:48 schreef -Orion- het volgende:
Ik ben bezig met een forum, en heb een tabel 'topics' met de volgende velden:
"topic_id, topic_titel, forum_id, user_id, topic_views, topic_status, topic_type, last_post"
last_post geeft het id weer van de laatste post, waarvan hij dan weer het userid en tijd ophaalt. Maar ik heb dan 2x een user_id, van de topicstarter, en van de last_post.
Hoe kan ik het oplossen dat ik beide kan krijgen met 1 query!?![]()
MySQL heeft ook een en enorm handige ON DUPLICATE functionaliteit, misschien biedt dat wat je nodig hebtquote:Op zondag 26 augustus 2007 16:42 schreef qu63 het volgende:
ah hier!
Hoi!
meteen een vraagje,
je kan met MySQL ook met IF/ELSE/WHEN enzo werken, dus ik ga dat leuk proberen, alleen nu werkt het dus niet...
Ik heb 3 rijen, 1) ID 2) mms_ID 3) IP
nu is het de bedoeling dat ik controleer of het IP-adres al in de database staat, en zo niet, deze toevoegd.
Ik kan dat wel doen dmv php en mysql (dus uit de database halen, controleren, en dan er weer in), maar dit leek me sneller. Iemand tips over hoe ik het moet doen
1 2 3 | header("HTTP/1.0 404 Not Found"); ?> |
je bedoelt dus:quote:Op zondag 26 augustus 2007 16:49 schreef Xcalibur het volgende:
kan je dat niet gewoon met een REPLACE doen, ipv INSERT?
Komt het wel op neer jaquote:
Moet je alleen je IP-adres uniek maken, maar dat is net het punt volgens mijquote:REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.
1 2 3 4 5 6 | header ("content-type: image/jpeg"); $signature = imagecreatefromjpeg ( "np_1.jpg" ); imagejpeg ( $signature, "", 100 ); imagedestroy ( $signature ); ?> |
1 2 | RewriteRule index/([^/]*)/(.*)$ /index.php?page=$1&wat=$2 |
quote:Op maandag 27 augustus 2007 12:37 schreef Swetsenegger het volgende:
Hoe kan ik mssql fouten onderdrukken in php?
1 |
Idd je moet wel goed opletten als je het gebruikt aangezien o.a. IE (met JS vooral) debiel is en veel bots ook (die snappen de tag helamaal niet) (let wel op dat de bots waar hem om gaat (google, yahoo, MS etc) geen problemen hebben, het gaat vooral om hack/spam etc bots).quote:Op zondag 26 augustus 2007 23:30 schreef wobbel het volgende:
je kan een base tag gebruiken
<base href="http://forum.fok.nl/" />
bijv.... alleen dat werkt niet altijd lekker (ik gebruik zelf ook index.php/nieuws/35) dus ik heb overal en altijd het volledig pad staan (dmv een #variable aangezien ik een template parser gebruik)
Ja dat word lastig. Kan je geen test database regelen dan?quote:Op maandag 27 augustus 2007 12:51 schreef Swetsenegger het volgende:
[..]
ik weet niet of dat werktKan helaas lastig testen in een live MSSQL database.
Niet op korte termijn.quote:Op maandag 27 augustus 2007 12:53 schreef WyriHaximus het volgende:
[..]
Ja dat word lastig. Kan je geen test database regelen dan?
probeer dit eens....quote:Op zondag 26 augustus 2007 20:06 schreef ralfie het volgende:
ben een beetje aan het experimenteren met htaccess en mod_rewrite, maar kom even ergens niet uit
ik heb de volgende url
http://localhost/index.php?page=news&wat=anders
dit wil ik omzetten naar
http://localhost/index/news/anders
lukt me op zich wel met:
[ code verwijderd ]
Maar wanneer ik dat doe werken alle relatieve links op die pagina (plaatjes, css, etc) niet meer. (gaat om links als 'css/base.css' en 'img/test.jpg' op die pagina) Kan dit in htaccess gefixed worden zonder al die relatieve links te moeten aanpassen? Zie ik iets doms over het hoofd?
1 2 | RewriteBase / |
Een @-teken voor een functie onderdrukt alle foutmeldingen tot en met het niveau van een warning; daarboven (zoals fatal errors) komen er gewoon door. Het is verder niet zo dat het @-teken de functionaliteit van je script aanpast, dus je kunt het gewoon proberen (alhoewel het dus in een liveomgeving niet echt wenselijk is).quote:Op maandag 27 augustus 2007 12:51 schreef Swetsenegger het volgende:
[..]
ik weet niet of dat werktKan helaas lastig testen in een live MSSQL database.
Ik heb met 100 als kwaliteit ook wel eens rare problemen gehad. Vervangen door 99 deed de trick.quote:Op zondag 26 augustus 2007 17:50 schreef wobbel het volgende:
Waarom levert het voglende script een plaatje op met kut brakke kwaliteit?
[ code verwijderd ]
Ik ga het gewoon proberen. Het is toch een database die alleen ikzelf gebruikquote:Op maandag 27 augustus 2007 13:31 schreef JeRa het volgende:
[..]
Een @-teken voor een functie onderdrukt alle foutmeldingen tot en met het niveau van een warning; daarboven (zoals fatal errors) komen er gewoon door. Het is verder niet zo dat het @-teken de functionaliteit van je script aanpast, dus je kunt het gewoon proberen (alhoewel het dus in een liveomgeving niet echt wenselijk is).
Je kunt het beter anders benaderen; je kunt de result set van je eerste query cachen (opslaan in een array bijvoorbeeld) en die bij het verwerken van de result set van je tweede query benaderenquote:Op dinsdag 28 augustus 2007 11:54 schreef Swetsenegger het volgende:
[..]
Andere vraag. Kan ik in een whilelus van mijn query results eenvoudig kijken wat de resultaten zijn in de volgende loop?
Nee, het gat niet om een 2e query.quote:Op dinsdag 28 augustus 2007 17:11 schreef JeRa het volgende:
[..]
Je kunt het beter anders benaderen; je kunt de result set van je eerste query cachen (opslaan in een array bijvoorbeeld) en die bij het verwerken van de result set van je tweede query benaderen
Misschien denk ik iets te simpel, maar toch een poging:quote:Op dinsdag 28 augustus 2007 18:09 schreef Swetsenegger het volgende:
[..]
Nee, het gat niet om een 2e query.
De resultaten van een query worden in een while lus uitgelezen, record voor record.
En als die whilelus nu bij record 11 is, wil eigenlijk weten wat er in record 12 staat.
Dit ivm presentatie.
Mjah, zou kunnen werken inderdaad, maar ik vind 'm niet chiquequote:Op dinsdag 28 augustus 2007 18:24 schreef Geqxon het volgende:
[..]
Misschien denk ik iets te simpel, maar toch een poging:
-Alles in een numeric array
-Met een "for ( $i = 0, $i < sizeof($array), $i ++) " alles uitlezen
-$array[$i + 1] voor de volgende rij.
?
1 2 3 4 5 6 7 8 9 10 | while (var $ref = mysql_fetch_assoc($result)) { var $veld1 = $ref["veld1"] // etc if ($counter == 11) { var $ref2 = mysql_fetchrow($result); var $veld1 = $ref2["veld1"] // etc } } |
Goed idee om alles in één keer mee te nemen. Werkt zoiets als het volgende voor je?quote:Op dinsdag 28 augustus 2007 18:09 schreef Swetsenegger het volgende:
[..]
Nee, het gat niet om een 2e query.
De resultaten van een query worden in een while lus uitgelezen, record voor record.
En als die whilelus nu bij record 11 is, wil eigenlijk weten wat er in record 12 staat.
Dit ivm presentatie.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $resultSet = ... // definieer de eerste rij $row = mysql_fetch_assoc($resultSet); // zolang de meest recent gelezen rij geldig is while($row) { // haal de volgende rij op $nextRow = mysql_fetch_assoc($resultSet); // als $nextRow niet false is, is $row niet de laatste rij if($nextRow) { // vergelijk $row tegen $nextRow } else { // doe eventueel iets leuks met $row als laatste rij } // zet de huidige rij op de volgende rij om de loop compleet te maken $row = $nextRow; } |
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 | $ii = 0; while($row = mysql_fetch_array($result)){ $url() = split("/", $row("referer")); $site = $url(1) . $url(2) . $url(3) . $url(4); $i = 1 ; $getelt = 0 ; while($i<=&ii){ if ($siteteller($i,0) = $site){ $siteteller($i,1) = $siteteller($i,1) + 1;} $getelt = 1; $i = $i + 1; } if ($getelt = 0){ $ii = $ii + 1; $siteteller($ii,0) = $site; $siteteller($ii,1) = 1; } } $i = 1 while ($i <= $ii){ echo $siteteller($i,0); echo $siteteller($i,1); } |
line 25 denk ik.... geen puntkomma op line 24quote:Op donderdag 30 augustus 2007 13:14 schreef BunnyHunter het volgende:
[ code verwijderd ]
de foutcode:
Parse error: syntax error, unexpected T_WHILE in /home/sites/site3850/web/bestanden/sites.php on line 35
in dit geval line 3
wat moet de code doen::
Ik split een url string, die ik weer aan elkaar koppel tot ik aleen een domein string over hou, daarna controleer ik of de string al eens eerder is voorgekomen en als dat niet zo is maak ik een nieuwe teller aan.
ik ben gewend om ASP of VB te programeren, en ik word een beetje gek van PHP om eerlijk te zijn![]()
Voor zover ik kan zien staan de accolades goed, alleen een beetje onoverzichtelijkquote:Op donderdag 30 augustus 2007 13:30 schreef unox_worst het volgende:
Regel 24 mis je een punt-komma, voor de rest zie ik in dit stukje code geen fouten.
Edit:
Je mist helemaal onderaan idd een accolade.
Daar moet == staan ipv =quote:Op donderdag 30 augustus 2007 13:36 schreef unox_worst het volgende:
Die if statement of regel 12 klopt volgens mij ook niet helemaal, zal straks is kijken wat ook alweer precies de bedoeling was enzo.
Bevestigd, vijf openingsaccolades en vijf sluitingsaccolades.quote:Op donderdag 30 augustus 2007 13:36 schreef Dreammaster het volgende:
[..]
Voor zover ik kan zien staan de accolades goed, alleen een beetje onoverzichtelijk
Ik heb hier een groot deel van de kvk-database geïmporteerd, dat waren 780.000 records ongeveer.quote:Op donderdag 30 augustus 2007 15:47 schreef markiemark het volgende:
Even een heel simpel vraagje... Hoeveel rijen kan een MySQL tabel maximaal aan, wat is aan te raden om als maximum te houden?
Of is het afhankelijk van de grootte van de schijf in de server en de prestaties die deze kan leveren?
http://dev.mysql.com/doc/refman/5.0/en/features.htmlquote:Op donderdag 30 augustus 2007 15:47 schreef markiemark het volgende:
Even een heel simpel vraagje... Hoeveel rijen kan een MySQL tabel maximaal aan, wat is aan te raden om als maximum te houden?
Of is het afhankelijk van de grootte van de schijf in de server en de prestaties die deze kan leveren?
quote:Handles large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 60,000 tables and about 5,000,000,000 rows.
Ja klopt maar dat zijn foutjes waar ik achterkom met testen normaal.quote:Op donderdag 30 augustus 2007 13:41 schreef Dreammaster het volgende:
en de laatste while loop is infinite
met 60.000 tabellen moet je je database echt eens op orde brengenquote:Op donderdag 30 augustus 2007 15:49 schreef Geqxon het volgende:
[..]
http://dev.mysql.com/doc/refman/5.0/en/features.html
[..]
Hetzelfde met 3500 kolommen op een tabel.quote:Op donderdag 30 augustus 2007 16:00 schreef Catch22- het volgende:
[..]
met 60.000 tabellen moet je je database echt eens op orde brengen
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 | $ii = 0; while($row = mysql_fetch_array($result)){ $url = split("/", $row("referer")); $site = $url(1) . $url(2) . $url(3) . $url(4); $i = 1 ; $getelt = 0 ; while($i<=$ii){ if ($siteteller($i,0) == $site){ $siteteller($i,1) = $siteteller($i,1) + 1; $getelt = 1; } $i = $i + 1; } if ($getelt = 0){ $ii = $ii + 1; $siteteller($ii,0) = $site; $siteteller($ii,1) = 1; } } $i = 1; while ($i <= $ii){ echo $siteteller($i,0); echo $siteteller($i,1); $i = $i + 1; } |
Ik denk dat dat meer problemen geeft dan het oplost omdat die data dan niet meer toegankelijk is. Ik werk met databases waar soms tabellen met miljoenen records in zitten, en dat is goed te doen. Alleen doorzoeken kan lang duren, afhankelijk wat je zoekt; tabellen met miljoenen rows met elkaar joinen, daar staat ie meestal wel even op te stampen. Je kan de tijd verkorten door goed db ontwerp en slim van mysql indices gebruik te maken maar voor de applicaties waar ik mee werk is dat nog niet genoeg. De oplossing die gebruikt wordt is het maken van een aparte index tabel, een zgn datamart, waar je de data bijelkaar zet die je snel boven water wil toveren. Die moet je dan wel bijv elke dag opnieuw genereren.quote:Op donderdag 30 augustus 2007 15:52 schreef markiemark het volgende:
In principe kan ik er dus echt wel best wat in kwijt.. hehe
Het gaat mij om de opslag van tijden met daarbij behorende info, een soort logboek. Er komen waarschijnlijk best wel grote aantallen records in de tabel 'log' te staan. Is het verstandig om na bijv. 1 miljoen (ik noem maar een aantal..) records de data te kopieren naar een andere tabel? Of naar een andere database eventueel?
Dit ziet er uit als een slechte poging om een asp scriptje om te zetten naar php.quote:Op donderdag 30 augustus 2007 16:40 schreef BunnyHunter het volgende:
Ik heb dus alle fouten die aangegeven waren eruit gehaalt maar hij geeft me dus nu de foutmelding
Parse error: syntax error, unexpected '=' in /home/sites/site3850/web/bestanden/sites.php on line 45
dat is bij dit stukje code op 14 in dit bericht
$siteteller($i,1) = $siteteller($i,1) + 1;
ik denk zelf dat hij het niet ziet als een integer, ik kan het aleen niet testen omdat ik zo snel geen convert functie vind daarvoor.
[ code verwijderd ]
daar ben ik dus mee bezig.. dus als je me vertelt wat ik fout doequote:Op donderdag 30 augustus 2007 18:34 schreef SuperRembo het volgende:
[..]
Dit ziet er uit als een slechte poging om een asp scriptje om te zetten naar php.
Of leer php òf zoek een andere hobby.
Begin eens bij w3schools.com. De fouten die hier in zitten zijn echt te basic om uit te leggen.quote:Op donderdag 30 augustus 2007 18:43 schreef BunnyHunter het volgende:
daar ben ik dus mee bezig.. dus als je me vertelt wat ik fout doeanders
![]()
ik zoek alles op op w3schools maargoed ik kloot wel wat verder aanquote:Op donderdag 30 augustus 2007 19:17 schreef SuperRembo het volgende:
[..]
Begin eens bij w3schools.com. De fouten die hier in zitten zijn echt te basic om uit te leggen.
ja kijk daar had ik het net dus over met iemand in de kantine.. ik dacht dus dat die array's gewoon net zo werkte als in asp en etc. maar hij werkt dus zoals de session array variabalen werken bij asp.quote:Op donderdag 30 augustus 2007 21:19 schreef SuperRembo het volgende:
Het grootste probleem is dat $siteteller een array van array's zou moeten zijn. Voor php ziet $siteteller($i,1) er uit als functie aanroep, niet als element in een array. En daar kan je geen waarde aan toe kennen met $siteteller($i,1) = 1, vandaar de syntax error "unexpected '=' ".
alleen het begin van het bestand dus... Hoe kan ik dit verhelpen?quote:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="en-us" lang="en-us" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="pics-label" content="(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://www.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stb.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stc.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stj.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.msn.com" r (n 0 s 0 v 0 l 0)gen true for "http://msn.com" r (n 0 s 0 v 0 l 0)gen true for "http://stb.msn.com" r (n 0 s 0 v 0 l 0) gen true for "http://stc.msn.com" r (n 0 s 0 v 0 l 0) gen true for "http://stj.msn.com" r (n 0 s 0 v 0 l 0))" /><link rel="SHORTCUT ICON" href="http://hp.msn.com/global/c/hpv10/favicon.ico" type="image/x-icon" /><meta name="ROBOTS" content="NOODP" /><link rel="search" type="application/opensearchdescription+xml" title="Live Search" href="http://www.live.com/live/search/search.xml" /><meta name="description" content="MSN's all-in-one Internet portal, the home of Hotmail, MSN Messenger, MSNBC News, Fox Sports, Slate Magazine and more information you care about" /><title>MSN.com</title><style type="text/css">@import url("http://stc.msn.com/br/hp/en-us/css/31/ushpw.css");@import url("http://stc.msn.com/br/hp/en-us/css/31/ovrN.css");</style><!--[if IE]><style type="text/css">@import url("http://stc.msn.com/br/
de 8192 veranderen zeker...quote:Op vrijdag 31 augustus 2007 13:27 schreef PiRANiA het volgende:
$handle = fopen ($row['href'], "r"); #Open pagina
$datavar="ERROR";
$datavar = fread ($handle, 8192);
if($datavar=="ERROR"){ #Er is niks opgehaald: break
mysql_query("DELETE FROM `ahref` WHERE `href`='".$row['href']."' ");
break;
}
1 2 3 4 5 6 7 8 9 | // http://php.net/fread $handle = fopen("http://www.example.com/", "rb"); $contents = ''; while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); ?> |
Alleen is de filesize een beetje lastig bij een webpaginaquote:Op vrijdag 31 augustus 2007 20:24 schreef Farenji het volgende:
uit de php documentatie:
[ code verwijderd ]
Allicht de "Content-length" uit de HTTP-headers halen?quote:Op vrijdag 31 augustus 2007 20:34 schreef SuperRembo het volgende:
[..]
Alleen is de filesize een beetje lastig bij een webpagina
1 2 3 4 5 6 7 8 9 10 11 12 | // sessies vernietigen session_start(); session_destroy(); session_unset(); // cookies verwijderen setcookie("email", "", 0); setcookie("password", "", 0); header("Location: ../index.php"); ?> |
Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...quote:Op zondag 2 september 2007 13:19 schreef Chivu het volgende:
Ik wil via een formulier meerdere files (1 tot in de praktijk 10) uploaden. Met kleine bestanden gaat dit prima. Met een 10-tal 'grote' bestanden (foto's uit een digitale camera, 1 a 2mb per stuk) duurt dit waarschijnlijk te lang en krijg ik na een (beperkt aantal? 15-20) seconden de originele uploadpagina weer te zien. De $_POST wordt dus niet meegegeven, anders kreeg ik de resultatenpagina te zien.
Nu heb ik me rot gezocht op GoT of het mogelijk is om tussen elke uploadactie de pagina te refreshen.
1. Upload formulier met 10 input type=file elementen
2. Upload $_FILES[0]
3. Refresh
4. Upload $_FILES[1]
5. Refresh
6. Upload $_FILES[2]
7. Refresh
8. Upload $_FILES[3]
9. etc. etc.
10. Klaar, toon de resultatenpagina
Hiervoor moeten de $_POST en $_FILES variabelen dus keer op keer doorgegeven worden bij de refresh, inclusief een teller-variabele om telkens de volgende $_FILES[$teller] af te lopen.
Is dit mogelijk en hoe doe ik dit precies? Ik wil liever niet afhankelijk zijn van php.ini settings, zodat onafhankelijk van de server de website gewoon werkt met de standaard PHP instellingen.
je kunt ook gewoon de max_execution_time omhoog gooienquote:Op zondag 2 september 2007 13:19 schreef Chivu het volgende:
Ik wil via een formulier meerdere files (1 tot in de praktijk 10) uploaden. Met kleine bestanden gaat dit prima. Met een 10-tal 'grote' bestanden (foto's uit een digitale camera, 1 a 2mb per stuk) duurt dit waarschijnlijk te lang en krijg ik na een (beperkt aantal? 15-20) seconden de originele uploadpagina weer te zien. De $_POST wordt dus niet meegegeven, anders kreeg ik de resultatenpagina te zien.
Nu heb ik me rot gezocht op GoT of het mogelijk is om tussen elke uploadactie de pagina te refreshen.
1. Upload formulier met 10 input type=file elementen
2. Upload $_FILES[0]
3. Refresh
4. Upload $_FILES[1]
5. Refresh
6. Upload $_FILES[2]
7. Refresh
8. Upload $_FILES[3]
9. etc. etc.
10. Klaar, toon de resultatenpagina
Hiervoor moeten de $_POST en $_FILES variabelen dus keer op keer doorgegeven worden bij de refresh, inclusief een teller-variabele om telkens de volgende $_FILES[$teller] af te lopen.
Is dit mogelijk en hoe doe ik dit precies? Ik wil liever niet afhankelijk zijn van php.ini settings, zodat onafhankelijk van de server de website gewoon werkt met de standaard PHP instellingen.
1 2 3 | ini_set('max_execution_time', 120); ?> |
dat is echt een instelling in je php zelfquote:htaccess (hypertext access) is the default name of Apache's directory-level configuration file. It provides the ability to customize configuration for requests to the particular directory.
.htaccess files are commonly used for:
* Authorization, authentication: .htaccess files are often used to specify the security restrictions for the particular directory, hence the filename "access". The .htaccess file is often accompanied by an .htpasswd file which stores valid usernames and their passwords.
* Customized error responses: Changing the page that is shown when a server-side error occurs, for example HTTP 404 Not Found.
* Rewriting URLs: Various server-side PHP scripts use .htaccess to rewrite "ugly" URLs to shorter and prettier ones.
Dat dacht ik al. Ik hou het maar gewoon op een check dat bestanden van meer dan 2mb niet geupload mogen worden. Ik gebruik liever niet iets als JUpload vanwege overige bewerkingen die daarna nog met de plaatjes uitgevoerd moeten worden, dus dan wordt het maar gewoon maximaal 3-5 plaatjes uploaden. Daar moet wel genoeg tijd voor zijn, en dan maar met die ini-setquote:Op maandag 3 september 2007 14:40 schreef Catch22- het volgende:
Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...
wellicht handig om het via ajax te doen om te voorkomen dat de gebruiker de pagina gaat refreshen omdat het hem te lang duurtquote:Op maandag 3 september 2007 15:36 schreef Chivu het volgende:
[..]
Dat dacht ik al. Ik hou het maar gewoon op een check dat bestanden van meer dan 2mb niet geupload mogen worden. Ik gebruik liever niet iets als JUpload vanwege overige bewerkingen die daarna nog met de plaatjes uitgevoerd moeten worden, dus dan wordt het maar gewoon maximaal 3-5 plaatjes uploaden. Daar moet wel genoeg tijd voor zijn, en dan maar met die ini-setBedankt.
AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.quote:Op maandag 3 september 2007 16:06 schreef Chivu het volgende:
Ik vind Ajax heel lief, maar ik heb me nog niet in AJAX verdiept. Bovendien moet een gedisabled uploadknopje en een animatie+melding genoeg zijn om mensen te laten wachten.
kun je het binnen 5 min typen leren? zo ja, dan zou ik zeggen.. succes!quote:Op maandag 3 september 2007 16:49 schreef Dreammaster het volgende:
[..]
AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.
De timeout geldt niet voor file uploads. Zolang er nog een upload loopt naar de server, telt de max_execution_time van PHP nog niet af.quote:Op maandag 3 september 2007 14:40 schreef Catch22- het volgende:
je moet het absoluten pad in je header location zetten. Firefox doet blijkbaar wat lastiger als hij geen base_href meekrijgt
[..]
Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...
Als er toch een time-out op treedt, is dat waarschijnlijk een time-out vanuit de webserver en niet vanuit PHP.quote:The maximum execution time is not affected by system calls, stream operations etc. Please see the set_time_limit() function for more details.
You can not change this setting with ini_set() when running in safe mode. The only workaround is to turn off safe mode or by changing the time limit in the php.ini.
Your web server can have other timeouts. E.g. Apache has Timeout directive, IIS has CGI timeout function, both default to 300 seconds. See the web server documentation for meaning of it.
Ah, je hebt er verstand van, dat zie ik alquote:Op maandag 3 september 2007 16:49 schreef Dreammaster het volgende:
[..]
AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |