Was ff aan het werk vandaag, vandaar de late reactie.quote:Op vrijdag 18 november 2005 13:57 schreef JeRa het volgende:
[..]
Heb je het nu over allow_url_fopen? Dat heeft verder weinig te maken met de SMTP-instelling in php.ini of hoe PHP die afhandelt, dus dat lijkt me onwaarschijnlijk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $email_from = "Info" ; $returnpath_mail = "test@home.nl"; $email1 = "test@zonnet.nl"; $onderwerp = "Onderwerp"; $msg = "<html>\n"; $msg.= "<head>\n"; $msg.= "<META http-equiv=Content-Type content='html; charset=iso-8859-1'>\n"; $msg.= "</head>\n\n"; $msg .= "Hallo\n"; $msg .= "</body></html>"; $header = "From: $email_from<$returnpath_mail>\nReturn-path: $returnpath_mail\nContent-Type: text/html; charset=iso-8859-1"; mail($email1,$onderwerp,$msg, $header); ?> |
Maar mail() wordt afgehandeld door PHP zelf, en het lijkt me sterk dat PHP tegen z'n eigen beveiligingen aanlooptquote:Op vrijdag 18 november 2005 14:10 schreef cyberstalker het volgende:
[..]
Ik weet het nie precies, maar als je die instelling uit hebt staan, kun je heel veel dingen niet. Sockets openen lukt bijvoorbeeld ook niet.
Wat hij zegtquote:Op vrijdag 18 november 2005 16:35 schreef cyberstalker het volgende:
En als je er mail.mars.home.nl van maakt?
Heb je geupgrade naar de laatste versie van phpBB? Heb je beheer over die MySQL server of heb je 'm op een server staan die niet van jou is? De foutmelding slaat meestal op een pakket dat naar MySQL is verzonden en groter is dan de limiet die ingesteld is in MySQL. Dit duidt dus op een defecte zoekquery (phpBB) of een veel te lage limiet (MySQL).quote:Op vrijdag 18 november 2005 15:14 schreef Jojo_ut_Grun het volgende:
ik kreeg laat op mij eigen forumje (phpbb plus mysql)
...
SQL Error : 1153 Got a packet bigger than 'max_allowed_packet'
...
die foutmelding kreeg ik dan als ik gebruik wou maken van de zoek functie
Ik blijf het knap vinden dat Outlook Express kan connecten met mail.home.nl:25 en jij met telnet niet. Als we er nou eens achter konden komen waaróm nietquote:Op vrijdag 18 november 2005 17:45 schreef mooya het volgende:
werkt ook niet..
had ik ook al geprobeerd,
en outlook is normaal ingesteld zonder authenticatie
Ik snap er ook niks vanquote:Op vrijdag 18 november 2005 17:47 schreef JeRa het volgende:
[..]
Ik blijf het knap vinden dat Outlook Express kan connecten met mail.home.nl:25 en jij met telnet niet. Als we er nou eens achter konden komen waaróm nietOutlook Express gaat niet via een proxy?
ik heb de laatste versie van phpbbquote:Op vrijdag 18 november 2005 17:46 schreef JeRa het volgende:
[..]
Heb je geupgrade naar de laatste versie van phpBB? Heb je beheer over die MySQL server of heb je 'm op een server staan die niet van jou is? De foutmelding slaat meestal op een pakket dat naar MySQL is verzonden en groter is dan de limiet die ingesteld is in MySQL. Dit duidt dus op een defecte zoekquery (phpBB) of een veel te lage limiet (MySQL).
edit: een waarschijnlijke fout zou een te grote INSERT kunnen zijn voor de zoekresultaten. Het is namelijk mogelijk om in één query vele waarden tegelijk toe te voegen, dus misschien ligt het daaraan.
Even kort door de bocht (aangezien ik niet het fijne van phpBB weet). Ik weet dat phpBB de zoekresultaten tijdelijk opslaat in een tabel om vervolgens te tonen aan de gebruiker (zodat die de resultaten kan sorteren zonder dat alles opnieuw afgezocht moet worden). Als je nu een query uitvoert waarbij een hoop resultaten zijn, genereert phpBB een veel langere INSERT-query en dan krijg je die foutmeldingquote:Op vrijdag 18 november 2005 21:59 schreef Jojo_ut_Grun het volgende:
[..]
ik heb de laatste versie van phpbb
de mysql database staat op de server van mijn hosting bedrijf
het probleem lijkt dus opgelost door de mysql , het hosting bedrijf heeft de
my.cnf geedit.
maar mijn vraag is meer.. ho ehet kan dat een forum heel lang zonder problemen loopt
en dan plots de zoekfunctie niet meer wil, je die foutmelding krijgt
zou de database te groot worden
1 2 | WHERE id IN (1,3,9,4,25) |
Top, dan moet ik alleen weer kijken hoe ik de values bij de juiste ID krijg, maar dat moet lukkenquote:Op zaterdag 19 november 2005 12:36 schreef Light het volgende:
Met een query als
[ code verwijderd ]
kun je verschillende ID's gelijktijdig opgeven. Je zult alleen met implode je array met id's moeten omzetten naar zo'n komma-gescheiden string.
1 2 3 4 5 6 7 8 9 10 11 | $sqlArray=array(); foreach ($winkelwagen as $productId => $productAantal) { array_push($sqlArray, $productId); } $productQuery=implode(' OR product_id=', $sqlArray); $query="SELECT whatever FROM products WHERE (product_id={$productQuery});" ?> |
Slim, met een array_push een nieuwe array maken.quote:Op zaterdag 19 november 2005 12:38 schreef cyberstalker het volgende:
Je kunt dan toch gewoon gebruik maken van een sql-statement met een OR erin?
[ code verwijderd ]
Untested, uiteraard, je begrijpt het idee wel waarschijnlijk.
1 2 3 4 5 6 7 8 | $sqlArray=array(); foreach ($winkelwagen as $productId => $productAantal) { $sqlArray[] = $productId; } ?> |
Wat is daarvan precies het voordeel? Voor zover mij bekend is een array_push sneller dan toewijzen zonder key.quote:Op zaterdag 19 november 2005 12:54 schreef Light het volgende:
[ code verwijderd ]
Zelfde resultaat, en je gebruikt geen functies.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | session_start(); $sqlArray=array(); foreach($_SESSION['cart'] as $productId => $number){ array_push($sqlArray, $productId); $total=$total+$number; } $productQuery=implode(' || product_id=', $sqlArray); $query="SELECT * FROM produkten WHERE product_id=".$productQuery; $result=mysql_query($query); while($row=mysql_fetch_assoc($result)){ echo $row['articelcode'].' '.$row['name'].' aantal: '.$_SESSION['cart'][$row['product_id']].'<br />'; } ?> |
Ik was de juiste operator even kwijtquote:Op zaterdag 19 november 2005 13:23 schreef cyberstalker het volgende:
Twee dingetjes:Die regel met $total kun je ook schrijven als $total+=$number; .
Scheelt natuurlijk een implode. Even rommelen.quote:De IN operator werkt inderdaad ook prima, en is hier eigenlijk logischer.
1 2 3 4 5 6 7 8 9 10 | session_start(); $total = array_sum($_SESSION['cart']); $productIDs = array_keys($_SESSION['cart']); $query = "SELECT * FROM produkten WHERE product_id IN (" . implode(', ', $productIDs) . ")"; $result = mysql_query($query); while($row = mysql_fetch_assoc($result)){ echo $row['articelcode'].' '.$row['name'].' aantal: '.$_SESSION['cart'][$row['product_id']].'<br />'; } ?> |
ALTIJD is jouw code mooier dan wat ik verzinquote:Op zaterdag 19 november 2005 13:25 schreef SuperRembo het volgende:
Array_sum en array_keys kan je ook gebruiken. En idd IN zoals cyberstalker zegt, dat is sneller dan een serie OR's.
[ code verwijderd ]
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |