表单提交到错误的URL PHP

时间:2014-07-14 13:01:22

标签: php .htaccess

这是我的form

<? if($showForm==true):?>
        <section class="release">
            <h1><?= $heading ?></h1>
        </section>
            <form action="#">
                <input type="hidden" name="fid" value="<?= $id ?>" />
                <div class="add">
                <label>First Name</label><input type="text" name="firstname" value="<?= $contact->getFirstname() ?>" />
                </div>
                <div class="add">
                    <label>Surname</label><input type="text" name="surname" value="<?= $contact->getSurname() ?>"/>
                </div>
                <div class="add">
                <label>Job</label><input type="text" name="job" value="<?= $contact->getJob() ?>"/>
                </div>
                <div class="add">
                <label>Company</label><input type="text" name="company" value="<?= $contact->getCompany() ?>"/>
                </div>
                <div class="add">
                <label>Address 1</label><input type="text" name="address1" value="<?= $contact->getAddress1() ?>"/>
                </div>
                <div class="add">
                <label>Address 2</label><input type="text" name="address2" value="<?= $contact->getAddress2() ?>"/>
                </div>
                <div class="add">
                <label>Address 3</label><input type="text" name="address3" value="<?= $contact->getAddress3() ?>"/>
                </div>
                <div class="add">
                <label>Address 4</label><input type="text" name="address4" value="<?= $contact->getAddress4() ?>"/>
                </div>
                <div class="add">
                <label>Address 5</label><input type="text" name="address5" value="<?= $contact->getAddress5() ?>"/>
                </div>
                <div class="add">
                <label>Telephone</label><input type="text" name="telephone" value="<?= $contact->getTelephone() ?>" />
                </div>
                <div class="add">
                    <label>Mobile</label><input type="text" name="mobile" value="<?= $contact->getMobile() ?>"/>
                </div>
                <div class="add">
                    <label>Fax</label><input type="text" name="fax" value="<?= $contact->getFax() ?>"/>
                </div>
                <div class="add">
                <label>Email</label><input type="text" name="email" value="<?= $contact->getEmail() ?>"/>
                </div>
                <div class="add">
                <label>Web</label><input type="text" name="web" value="<?= $contact->getWeb() ?>"/>
                </div>
                <div class="add">
                <label>Comment</label><input type="text" name="comment" value="<?= $contact->getComment() ?>"/>
                </div>
                <!-- TODO: Not working correctly -->
                <section>
                    <h1>Media Lists</h1>
                    <? $mediaListsIds = $contact->getMediaListIds(); ?>
                    <? if(!$mediaListsIds): $mediaListsIds = array(); endif; ?>
                    <? foreach($mediaLists as $mediaList): ?>
                                        <input type="checkbox" id="c5" name="medialist[]" value="<?= $mediaList->getId()?>"/>
                    <label for="c5"><span></span><?= $mediaList->getName() ?></label>
                    <? endforeach ?>
                    <p><button class="browse"><?= $btnText ?></button></p>
                </section>
                <input type="hidden" name="formprocess" value="1" />
            </form>
        <? endif; ?>
    <!-- End Add/Edit Contact Form -->

提交时,执行PHP

if($input->get('formprocess')){


    if ( $isContactLimitReached && $input->get('fid') == ''){
        header('Location: /dashboard/contacts.html');
        die();
    }

    $contact = new UsermadeContact($input->get('fid'));
    $contact->setFirstname($input->get('firstname'));
    $contact->setSurname($input->get('surname'));
    $contact->setJob($input->get('job'));
    $contact->setAddress1($input->get('address1'));
    $contact->setAddress2($input->get('address2'));
    $contact->setAddress3($input->get('address3'));
    $contact->setAddress4($input->get('address4'));
    $contact->setAddress5($input->get('address5'));
    $contact->setTelephone($input->get('telephone'));
    $contact->setMobile($input->get('mobile'));
    $contact->setFax($input->get('fax'));
    $contact->setEmail($input->get('email'));
    $contact->setWeb($input->get('web'));
    $contact->setEditDate(date('Y-m-d H:i:s'));
    $contact->setComment($input->get('comment'));
    $contact->setDirectoryCompany(new EmptyNode(null));
    $contact->setExpertSection(new EmptyNode(0));
    $contact->setValidated(0);
    $contact->setAuthor($user);
    $contact->setCompany($input->get('company'));

    $contact->save();

    //Gets to here but this value is Null....Explains why Contact isn't being added to list.
    //There is a problem getting the "medialist" field...

    $mediaListsParam = $input->get('medialist');

    if(!($mediaListsParam)) {
        $mediaListsParam = array();
    }

    foreach($mediaLists as $mediaList) {
        $mediaList = new DirectoryContactList($mediaList->getId());
            if(in_array($mediaList->getId(), $mediaListsParam)) {
                if(!$mediaList->containsContact($contact->getId())) {
                    $mediaList->addContact($contact);
                    $mediaList->saveContacts();
                }
            }
            else {
               $mediaList->removeContact($contact->getId());
            }
    }

    $mediaReleaseParams = $input->get('mediarelease');

    if(!($mediaReleaseParams)) {
        $mediaReleaseParams = array();
    }

    foreach($mediaReleases as $mediaRelease) {
        if(in_array($mediaRelease->getId(), $mediaReleaseParams)) {
            $mediaRelease->addContact($contact->getId());

        }
        else {
            $mediaRelease->removeContact($contact->getId());
        }
    }

    if($mediareleaseId != "") {
        header('location: /dashboard_press_releases-'.$mediareleaseId.'.html?showForm=true#form');

    }
    $isContactLimitReached = $package->isContactLimitReached($user);

        header('Location: /dashboard/contacts.html');
}

但是,当我点击submit按钮时,我会收到此URL,并显示一条消息,指出无法找到该页面....

http://xxx.tld/dashboard/xxx.tld?fid=137800&firstname=Jamesg&surname=May&job=Journalist&company=Test+Company+1&address1=address&address2=adress&address3=&address4=&address5=&telephone=0994838975&mobile=34535435&fax=34534543&email=bouncy1%40lightbox.ie&web=website&comment=&medialist%5B%5D=36305&formprocess=1#

我不知道为什么会发生这种情况,这可能是我htaccess档案中的内容吗?我只想在formsubmitted时重新加载页面。

1 个答案:

答案 0 :(得分:2)

为什么不在<form>标记中包含转发信息? 像这样:<form method="GET" action="xxx.php"> 如果操作位于同一页面上,则应使用<?php echo $_SERVER['PHP_SELF']; ?>之类的内容在同一页面上调用脚本。

相关问题