[PHP] Posten spoort niet

Pagina: 1
Acties:

  • me1299
  • Registratie: Maart 2000
  • Nu online

me1299

$ondertitel

Topicstarter
Sorry voor de grote meuk met code, maar omdat het probleem mij totaal ontgaat weet ik niet welke code misschien relevant kan zijn of niet.

Ik heb een formulier dat verzonden kan worden.
PHP:
1
<?include ("includes/logincheck.inc.php");include ("../includes/config.inc.php");$query = "SELECT * FROM ritten WHERE RitID = '$HTTP_GET_VARS[id]'";$result = mysql_query($query); $auto_query = "SELECT * FROM autos WHERE GebruikerID = '$loggedin'";$auto_result = mysql_query($auto_query);$num_result = mysql_num_rows($auto_result);$relaties_query = "SELECT relatiecode, naam FROM crm.relaties GROUP BY naam ORDER BY naam";$relaties_result = mysql_query($relaties_query);if($num_result < 1) {    print ("<script language='javascript'>document.location='../index.php?goto=error&amp;errorlevel=19&amp;back=2'; </script>");    die();}while ($mysql_fetch = mysql_fetch_array($result)) {    $van_relatiecode_check = "";    $naar_relatiecode_check = "";    if (ereg("^[0-9]*$", $mysql_fetch['Van'])){        $van_relatiecode_check = "True";    }    if (ereg("^[0-9]*$", $mysql_fetch['Naar'])){        $naar_relatiecode_check = "True";    }    ?>    <table border='0' width='700' cellspacing='1' cellpadding='2' bgcolor='#000000' align='center'>        <tr>            <td width='100%' valign='top' align='left' bgcolor='#004080' colspan='2'>Rit wijzigen</td>        </tr>    </table><br>    <table border='0' width='700' cellspacing='1' cellpadding='3' bgcolor='#000000' align='center'>        <form method='post' action='index.php' name='frmritten'>            <tr>                <td width='100%' valign='top' align='center' bgcolor='#004080' colspan='2'>                    <table border='0' width='100%' cellspacing='0' cellpadding='0' bgcolor='#000000' align='center'>        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Datum:</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'><input type='text' name='txtdate1' class='text20' maxlength='2' value='<?= date("d"); ?>'>-<input type='text' name='txtdate2' class='text20' maxlength='2' value='<?= date("m"); ?>'>-<input type='text' name='txtdate3' class='text35' maxlength='4' value='<?= date("Y"); ?>'></td>                        </tr>                        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Auto</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'>                                <select name='auto_id' class='text380'>                                <?php                                while ($auto_fetch = mysql_fetch_array($auto_result)) {                                    print "<option value='$auto_fetch[AutoID]'>$auto_fetch[Kenteken]</option>";                                }                                ?>                                </select>                            </td>                        </tr>                        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Van</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'>                                <select name='startpunt' class='text380'>                                <option value='anders' SELECTED>Anders</option>                                <?php                                while ($relaties_fetch = mysql_fetch_array($relaties_result)) {                                    if ($mysql_fetch['Van'] == $relaties_fetch['relatiecode']) {                                                                print "<option value='$mysql_fetch[relatiecode]' SELECTED>$relaties_fetch[naam]</option>";                                        } else {                                        print "<option value='$mysql_fetch[relatiecode]'>$relaties_fetch[naam]</option>";                                    }                                }                                mysql_data_seek($relaties_result, 0);                                ?>                                </select>                            </td>                        </tr>                        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Naar</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'>                                                            <select name='eindpunt' class='text380'>                                <option value='anders'>Anders</option>                                <?php                                while ($relaties_fetch = mysql_fetch_array($relaties_result)) {                                    if ($mysql_fetch['Naar'] == $relaties_fetch['relatiecode']) {                                                                print "<option value='$mysql_fetch[relatiecode]' SELECTED>$relaties_fetch[naam]</option>";                                        } else {                                        print "<option value='$mysql_fetch[relatiecode]'>$relaties_fetch[naam]</option>";                                    }                                }                                ?>                                </select>                            </td>                        </tr>                        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Startpunt</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'><input type='text' name='txtstartpunt' class='text380' maxlength='255' value='<?php                                                                if($van_relatiecode_check != "True") {                                    $mysql_fetch['Van'];                                } else {                                    print ("");                                }                                                         ?>'></td>                                                        </tr>                        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Bezoekadres</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'><input type='text' name='txtbezoekadres' class='text380' maxlength='255' value='<?php                                                                if($naar_relatiecode_check != "True") {                                    $mysql_fetch['Naar'];                                } else {                                    print ("");                                }                                                         ?>'></td>                        </tr>                        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Afstand</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'><input type='text' name='txtafstand' class='text90' maxlength='10' value='<?= $mysql_fetch['Afstand'] ?>'>&amp;nbsp;Retour&amp;nbsp;<input type='checkbox' name='chkretour' <?php                                                                if($mysql_fetch['Retour'] == 1) {                                    print("CHECKED");                                }                                                         ?>></td>                        </tr>                        <tr>                            <td width='14%' valign='middle' align='left' bgcolor='#004080'>Commentaar:</td>                            <td width='86%' valign='top' align='left' bgcolor='#004080'><textarea name='txtcommentaar' rows='6' cols='60' class='text360'><?= $mysql_fetch['Commentaar'] ?></textarea></td>                        </tr>                        <tr>                            <td width='100%' valign='middle' align='left' bgcolor='#004080' colspan='2'>&amp;nbsp;</td>                        </tr>                        <tr>                            <td width='100%' valign='middle' align='left' bgcolor='#004080' colspan='2'><input type='submit' class='text90' value='Wijzigen' name='cmdbutton'>&amp;nbsp;<input type='submit' class='text90' value='Annuleren' name='cmdbutton'>&amp;nbsp;<input type='submit' class='text90' value='Afstand' name='cmdbutton'></td>                        </tr>                    </table>                </td>            </tr>            <input type='hidden' name='action' value='ritten_edit_submit'>            <input type='hidden' name='id' value='<?= $HTTP_GET_VARS['id'] ?>'>        </form>    </table>    <?php    }    while ($mysql_fetch = mysql_fetch_array($result));?>

Nu post dit formulier naar index.php

Als ik nu bovenin index.php het volgende zet:
PHP:
1
<?die($HTTP_POST_VARS['eindpunt']);?>

Krijg ik de volgende error:
Notice: Undefined index: relatiecode in /usr/www/sites/traffic.interexperts.net/htdocs/cms/includes/ritten.edit.inc.php on line 98
Maar dat slaat toch nergens op. Ik krijg een fout dat de pagina waar hij vandaan kwam niet goed is. Terwijl het daar helemaal niet hoort te komen.

Ik heb 2 uur zitten zoeken waarom hij misschien terug zou gaan. Maar dat heb ik niet uit kunnen vinden.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:04
Ehh, kun je echt die source niet inkorten? Je moet toch wel een idee hebben waar het probleem zich ongeveer bevind. Dit is niet echt uitnodigend te noemen.

https://fgheysels.github.io/


Verwijderd

wat is lijn 98?

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-09 18:58
Die foutmelding is dat de array die in die regel staat geen element met de naam 'relatiecode' heeft.

Wat zijn de regels rondom regel 98 in ritten.edit.inc.php? Misschien een beter idee dan 200 regels aan code neer te plempen.

Ow, en waarschijnlijk denk jij dat ie de foutmelding van de vorige pagina post, omdat ie nog op de vorige pagina is, want er gaat heus niks gepost worden als op de betreffende pagina een error komt.

Vanaf PHP 4.1.0 is het trouwens $_POST[] ipv $HTTP_POST_VARS[].

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Op maandag 03 juni 2002 15:42 schreef Ericston het volgende:
Die foutmelding is dat de array die in die regel staat geen element met de naam 'relatiecode' heeft.
Mwah, volgens mij niet helemaal. Het betekend meer dat het niet bekend is of dit element wel in het script is geset. Je kunt het ook krijgen waneer je elementen uit bv $HTTP_POST_VARS opvraagt die wel bestaan, maar niet zijn geset in het script zelf. Het is af te vangen door er eerst een isset() voor te zetten.

Op zich is het ook logisch, want er hoeven helemaal geen postvars meegegeven te worden. De notice is dus helemaal terecht.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • me1299
  • Registratie: Maart 2000
  • Nu online

me1299

$ondertitel

Topicstarter
Op maandag 03 juni 2002 15:42 schreef Ericston het volgende:
Die foutmelding is dat de array die in die regel staat geen element met de naam 'relatiecode' heeft.

Wat zijn de regels rondom regel 98 in ritten.edit.inc.php? Misschien een beter idee dan 200 regels aan code neer te plempen.

Ow, en waarschijnlijk denk jij dat ie de foutmelding van de vorige pagina post, omdat ie nog op de vorige pagina is, want er gaat heus niks gepost worden als op de betreffende pagina een error komt.

Vanaf PHP 4.1.0 is het trouwens $_POST[] ipv $HTTP_POST_VARS[].
De pagina opzich is goed. Ik heb namelijk all error checking aanstaan. En voor het posten werkt alles naar behoren.

Er wordt wel degelijk gepost. Want als ik in de volgende index.php bovenaan:
PHP:
1
<?die("Hello world zet :D");?>

zet, dan krijg ik dat wel gewoon te zien. Alleen gaat het fout bij het opvragen van relatiecode in het volgende scherm, terwijl dat formelement wel degelijk bestaat.

Hier nog ff de code waar het waarschijnlijk fout mee gaat:
PHP:
1
<?                                <?php                                while ($relaties_fetch = mysql_fetch_array($relaties_result)) {                                    if ($mysql_fetch['Van'] == $relaties_fetch['relatiecode']) {                                                                print "<option value='$mysql_fetch[relatiecode]' SELECTED>$relaties_fetch[naam]</option>";                                        } else {                                        print "<option value='$mysql_fetch[relatiecode]'>$relaties_fetch[naam]</option>";                                    }                                }                                mysql_data_seek($relaties_result, 0);                                ?>

Ik heb ook nog geprobeerd om @ voor die lijn te zetten, maar dan krijg ik nog steeds dezelfde error.

Erg vreemd iig. Als die pagina fout is zou ik namelijk eerst een error moeten krijgen. Niet na he posten.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen

Pagina: 1