3

我为客户端创建了一个 Yii 应用程序,它在本地和在测试期间使用的服务器上都运行良好,没有问题。客户端已将应用程序移动到他们的服务器,这是它将被托管的地方,当输入一个表单上的一个变量(只有这个表单和一个登录表单)时,php 不会记录 $_POST。该字段是可选字段。

有没有人知道是什么导致了这种情况发生?

表单视图如下

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
       'id'=>'clothing-knowledge-hub-form',
       'htmlOptions' => array('enctype' => 'multipart/form-data'),
       'enableAjaxValidation'=>false,
)); ?>

<p class="note">Fields with <span class="required">*</span> are required.</p>

<?php echo $form->errorSummary($model); ?>

<div class="row">
    <?php echo $form->labelEx($model,'headerText'); ?>
    <?php echo $form->textField($model,'headerText',array('size'=>60,'maxlength'=>255)); ?>
    <?php echo $form->error($model,'headerText'); ?><br/><br/>
</div>

<div class="row">
            <br/>
    <?php echo $form->labelEx($model,'videoPath'); ?>
            Only enter a valid video embed path here. <br/>(This will overide the detail page image - image541x491 for this page)<br/>
    <?php echo $form->textField($model,'videoPath',array('size'=>60,'maxlength'=>255)); ?>
    <?php echo $form->error($model,'videoPath'); ?><br/><br/>
</div>


<div class="row">
    <?php echo $form->labelEx($model,'bodyText'); ?>
    <?php echo $form->textArea($model,'bodyText',array('rows'=>6, 'cols'=>50)); ?>

    <?php echo $form->error($model,'bodyText'); ?><br/>
</div>



<div class="row">
            <br/>
    <?php echo $form->labelEx($model,'findOutMore'); ?>
            This will enable the 'Find Out More' button on the detail page.<br/> To enable it, please enter a valid url <?php //(include http:// or https://)?>
    <?php echo $form->textField($model,'findOutMore',array('size'=>60,'maxlength'=>510)); ?>
    <?php echo $form->error($model,'findOutMore'); ?>
            <br/><br/>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'referencesText'); ?>
    <?php echo $form->textArea($model,'referencesText',array('rows'=>4, 'cols'=>100)); ?>

    <?php echo $form->error($model,'referencesText'); ?>
</div>


<div class="row">
            <br/>
    <?php echo $form->labelEx($model,'image300x226'); ?>Please ensure all images are optimised, (max file size 1mb) and are either jpg, jpeg, pngs or gif.<br/>
    <?php echo $form->fileField($model,'image300x226',array('size'=>60,'maxlength'=>510)); ?><br/>
    <?php echo $form->error($model,'image300x226'); ?>
            <?php echo 'Existing image file name: '.$model['image300x226'];?><br/>
            <img src="<?php echo Yii::app()->request->baseUrl; ?>/images/<?php echo $model['image300x226'];?>"><br/><br/>
</div>

<div class="row">
            <br/>
    <?php echo $form->labelEx($model,'image300x473');?>Please ensure all images are optimised, (max file size 1mb) and are either jpg, jpeg, pngs or gif.<br/>
    <?php echo $form->fileField($model,'image300x473',array('size'=>60,'maxlength'=>510)); ?><br/>
    <?php echo $form->error($model,'image300x473'); ?>
            <?php echo 'Existing image file name: '.$model['image300x473'];?><br/>
            <img src="<?php echo Yii::app()->request->baseUrl; ?>/images/<?php echo $model['image300x473'];?>"><br/><br/>
</div>

<div class="row">
            <br/>
    <?php echo $form->labelEx($model,'image541x491').' Detail Page Image'; ?><br/>Please ensure all images are optimised, (max file size 1mb) and are either jpg, jpeg, pngs or gif. 
    <?php echo $form->fileField($model,'image541x491',array('size'=>60,'maxlength'=>510)); ?><br/>
    <?php echo $form->error($model,'image541x491'); ?>
            <?php echo 'Existing image file name: '.$model['image541x491'];?><br/>
            <img src="<?php echo Yii::app()->request->baseUrl; ?>/images/<?php echo $model['image541x491'];?>"><br/><br/>
</div>

<div class="row">
            <br/>
    <?php echo $form->labelEx($model,'imageCredit'); ?>
            Html hyper links must include http:// or will result in a broken link<br/>
    <?php echo $form->textArea($model,'imageCredit',array('rows'=>6, 'cols'=>50)); ?>

    <?php echo $form->error($model,'imageCredit'); ?><br/>
</div>

<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
 <?php $this->endWidget(); ?>
 </div><!-- form -->

控制器动作如下

public function actionUpdate($id)
{
    $model=$this->loadModel($id);

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);
    echo Yii::trace(CVarDumper::dumpAsString($_POST), 'vardump');
    if(isset($_POST['ClothingKnowledgeHub']))
    {
        $model->setAttributes($_POST['ClothingKnowledgeHub']);

                    $file1 = CUploadedFile::getInstance($model, 'image300x226');
                    if($file1 != null){
                        $uniqueId = uniqid();
                        //$extra = Yii::app()->fileName->fileName();
                        $model->image300x226 = $uniqueId.'-'.$file1->name;
                    }

                    $file2 = CUploadedFile::getInstance($model, 'image300x473');
                    if($file2 != null){
                        $uniqueId = uniqid();
                        $model->image300x473 = $uniqueId.'-'.$file2->name;
                    }

                    $file3 = CUploadedFile::getInstance($model, 'image541x491');
                    if($file3 != null){
                        $uniqueId = uniqid();
                        $model->image541x491 = $uniqueId.'-'.$file3->name;
                    }

                    if(strpos($model->findOutMore, 'http') === false){
                        $model->findOutMore = 'http://'.$model->findOutMore;
                    }
        if($model->save()){
                        if($file1 != null){
                            $file1->saveAs(dirname(__FILE__)."/../../images/".$model->image300x226);

                        }
                        if($file2 != null){
                            $file2->saveAs(dirname(__FILE__)."/../../images/".$model->image300x473);

                        }
                        if($file3 != null){   
                            $file3->saveAs(dirname(__FILE__)."/../../images/".$model->image541x491);

                        }
                        echo Yii::trace(CVarDumper::dumpAsString($_POST['ClothingKnowledgeHub']), 'var_dump');
            $this->redirect(array('view','id'=>$model->id));
                    }
                    else {
                    ?><script type="text/javascript"> window.alert("There has been a problem saving your changes, please try again.")</script>
                    <?php  
                    }

    }

    $this->render('update',array(
        'model'=>$model,
    ));
}

谢谢您的帮助

4

1 回答 1

0

尝试将此添加到 cactiveform 小部件

'method'=>'Post',

这也可能有所帮助。 http://www.yiiframework.com/doc/api/1.1/CActiveForm

于 2013-10-16T20:08:24.407 回答