[php] apache doet rare dingen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Beetje twijfel geval of ik hier in het goede forum zit, maar aangezien ik m'n probleem met een stukje php code wil illustreren en hier toch ook wel redelijk wat kennis over servers is doe ik het toch maar hier

Er doen zich 2 rare dingen voor:
1. ik heb een online inschrijfformulier gemaakt die uit meerdere pagina's bestaat. Om alle data op te slaan voordat het wordt ingevoerd gebruik ik sessies. Op het moment dat de data moet worden bewaard trek ik het daar weer uit en stop ik het in de database. Dat gaat eigenlijk zonder problemen, maar zo heel af en toe zit er iemand tussen waarbij alle informatie uit de 1e twee pagina's weg is. En dit gebeurt compleet willekeurig. Ben echt al heel lang bezig geweest met debuggen, etc. maar er gaat gewoon niets fout.

Oké, ik snap dat jullie skeptisch zijn, misschien doe ik wel iets fout, maar dan het tweede rare geval wat zich voordoet
2. ik heb een functie geschreven die fouten naar mij toe moet melen (dingen die foutgaan met het doen van queries). Omdat ik nog steeds veel aan het veranderen ben heb ik echter een uitzondering in die functie geschreven, die er voor zorgt dat als ik zelf de fout veroorzaak, dat ie dan gewoon op het scherm komt, ipv dat ie het naar me mailt:
PHP:
1
2
3
4
5
6
7
8
9
10
 // stukje uit de functie met de uitzondering
if ($_SESSION['login']['id'] != 1)
    mail(
        'mijn@email.nl',
        'Error in de Database',
        $body."\n".$getvalues."\n".$postvalues."\n\n".$computer,
        "From: Admin <mijn@email.nl>\nReply-To: mijn@email.nl"
        );
else
    echo nl2br($body."\n".$getvalues."\n".$postvalues."\n");
($body, $getvalues, etc vertelt me welke pagina, waar ze vandaan kwamen, wie het is die de fout veroorzaakt, waardes in de url, etc - dat wordt allemaal eerder al bepaald, maar hoe doet er verder niet toe)

Soms (ca. 1x per dag) krijg ik echter een email waar alleen maar onzin in staat. Dat dit geen fout in m'n code is ben ik vrij zeker van. Zoals je in de mail-functie kunt zien moet het onderwerp van de email 'Error in de Database' zijn. Echter, bij die onzin emails staat daar ook wat anders. En dat is volgens mij onmogelijk...
Wat hierbij opvalt is dat dit pas is opgetreden sinds ik die uitzondering voor mezelf heb geschreven (voorheen liet ik m'n eigen fouten ook naar mezelf melen uit luiigheid) en - dat dit alleen gebeurd als ik zelf ook ingelogd ben. Ik ben net terug van 10 dagen vakantie en heb in al die tijd niet 1 zo'n meel meer gehad (dit geldt overigens niet voor de online inschrijving - die fouten zijn ook tijdens m'n afwezigheid opgetreden). Maar nu ik overdag gewoon weer sta ingelogd krijg ik die emails weer.

Ik vermoed dus dat de server gewoon gaar is.....maar hoe kan ik dit nagaan??
Het is php versie 4.3.0 en heb al in het bugsysteem van php.net zitten zoeken, maar kan niets vergelijkbaars vinden. De server is niet van mijzelf, maar van een vriend, die daar meerdere dingen op host.

[ Voor 4% gewijzigd door marty op 12-03-2003 18:09 . Reden: op een linux-bak! ]


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:13

pietje63

RTFM

2e gval >> eeeh, ik denk niet dat het aan de server ligt, deze gaat echt niet uit zichzelf mail sturen hoor

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
pietje63 schreef op 12 March 2003 @ 19:13:
2e gval >> eeeh, ik denk niet dat het aan de server ligt, deze gaat echt niet uit zichzelf mail sturen hoor
Hoe bedoel je dat?

Ik denk ook niet dat ie zomaar spontaan gaat melen - het zal gerust door een actie van een gebruiker komen, maar de manier waarop klopt natuurlijk niets van. Dat de inhoud van die mail niet klopt zou nog aan m'n code kunnen liggen, maar aan het subject van de mail is niets variabel, dus die zou gewoon moeten zijn wat ik opgeef - en zelfs die wijkt af. Daar klopt natuurlijk niets van.

Acties:
  • 0 Henk 'm!

  • ThaDaNo
  • Registratie: Mei 2002
  • Laatst online: 05-04-2023
Er schijnen toch nog wel wat bugs in versie 4.3.0 te zitten, misschien heb je er een gevangen die niemand nog kende. 4.3.1 was iig al uit las ik laatst, misschien kun je vragen of hij em kan updaten?

Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Hoe weet je zeker dat die email dan ook gestuurd is door het script als subject enz allemaal onzin is ?

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
beetle71 schreef op 12 March 2003 @ 19:41:
Hoe weet je zeker dat die email dan ook gestuurd is door het script als subject enz allemaal onzin is ?
Omdat de onzin een mengelmoes is van wat er in hoort te staan. Allemaal fragmenten van tekst. Ik heb bijvoorbeeld ergens staan
$computers = "computer ips: ".$REMOTE_ADDR;
en dan krijg ik 'computer ips:' als subject van m'n email + dat het nog eens een stuk of 5 keer in de body voorkomt

Acties:
  • 0 Henk 'm!

Verwijderd

Het feit dat je geen IP adres te zien krijgt kan met de REGISTER_GLOBALS te maken hebben (gebruik in plaats daarvan gewoon de nieuwe standaard $_SERVER['REMOTE_ADDR']), maar het feit dat je dit als subject krijgt moet toch echt aan je code liggen! Kun je anders zo'n mailtje posten? Dan kunnen we zien hoe het eruit ziet, en die hele functie zou ook wel helpen, want alleen dit stukje zegt natuurlijk niet alles...

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
komt ie:
PHP:
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
function mysqlerror($query)
{
    $body  = "query: $query\nerror: ".mysql_error()."\n\n".
        "pagina: ".$_SERVER['PHP_SELF']."\nvan pagina: ".$_SERVER['HTTP_REFERER']."\n\n".
        "gebruiker: ".$_SESSION['login']['name'];
    foreach ($_GET AS $key => $value)
    {
        $getvalues .= "$key = $value\n";
    }
    foreach ($_POST AS $key => $value)
    {
        if (is_array($value))
        {
            $temp .= "Array :\n";
            foreach ($value AS $k => $v)
            {
                $temp .= "&nbsp;&nbsp;&nbsp;$k = $v\n";
            }
            $value = $temp;
        }
        $postvalues .= "$key = $value\n";
    }
    $getvalues  = !$getvalues  ? "geen waardes in de url\n"  : "waardes in de  url:\n".$getvalues;
    $postvalues = !$postvalues ? "geen waardes in de post\n" : "waardes in de post:\n".$postvalues;
    $computer   = "computer ips:\n".$_SERVER['REMOTE_ADDR']."\n".$_SERVER['HTTP_X_FORWARDED_FOR'];
    if ($_SESSION['login']['id'] != 1)
        mail(
        'mijn@email.nl',
        'Error in de Database',
        $body."\n".$getvalues."\n".$postvalues."\n\n".$computer,
        "From: Admin <mijn@email.nl>\nReply-To: mijn@email.nl");
    else
        echo nl2br($body."\n".$getvalues."\n".$postvalues."\n".$computer."\n");
    echo "<center><table width=\"80%\">\n<tr>\n <td align=\"left\">\n";
    echo "\tEr heeft zich helaas een probleem voorgedaan met de database.".
    " De Admin is bij deze op de hoogte gesteld".
    " en zal het probleem zo spoedig mogelijk oplossen.<br>\n".
    "<br>\nProbeert het zo meteen nog eens\n";
    echo " </td>\n</tr>\n</table>\n</center>\n";
    exit();
}
ik weet dat die exit(); lelijk is, maar het is nog steeds in ontwikkelingsfase en ik wil dat ie er gelijk mee nokt als er iets fout gaat - aangezien ik nog dagelijks met de code bezig ben. Wil niet dat er ineens data mist of verkeerd gewijzigd wordt

en een voorbeeld van een email:
code:
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
waardes in de post:
waardes in de  url:
selectieselectie = selectie
waardes in de post:
waardes in de  url:
selectieselectie = selectie
mijn@email.nl
computer ips:
waardes in de post:
waardes in de  url:
selectieselectie = selectie
waardes in de post:
waardes in de  url:
selectieselectie = selectie
computer ips:
waardes in de post:
waardes in de  url:
selectieselectie = selectie
waardes in de post:
waardes in de  url:
selectieselectie = selectie
computer ips:
waardes in de post:
waardes in de  url:
selectieselectie = selectie
waardes in de post:
waardes in de  url:
selectieselectie = selectie
computer ips:
waardes in de post:
waardes in de  url:
selectieselectie = selectie
waardes in de post:
waardes in de  url:
selectieselectie = selectie

[ Voor 13% gewijzigd door marty op 13-03-2003 14:39 . Reden: ff lelijke scrollbalk onderaan weghalen ]

Pagina: 1