标签: php

未定义的索引错误PHP

我是PHP的新手,我收到了这个错误:

注意:未定义的索引:第32行的/var/www/test/modifyform.php中的productid

注意:未定义的索引:第33行的/var/www/test/modifyform.php中的名称

注意:未定义的索引:第34行/var/www/test/modifyform.php中的价格

注意:未定义的索引:第35行的/var/www/test/modifyform.php中的描述

我在网上找不到任何解决方案,所以也许有人可以帮助我.

这是代码:

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
   <input type="hidden" name="rowID" value="<?php echo $rowID;?>">

   <p>
      Product ID:<br />
      <input type="text" name="productid" size="8" maxlength="8" value="<?php echo $productid;?>" />
   </p>

   <p>
      Name:<br />
      <input type="text" name="name" size="25" maxlength="25" value="<?php echo $name;?>" />
   </p>

   <p>
      Price:<br />
      <input type="text" name="price" size="6" maxlength="6" value="<?php echo $price;?>" />
   </p>

   <p>
      Description:<br />
      <textarea name="description" rows="5" cols="30">
      <?php echo $description;?></textarea>
   </p>

   <p>
      <input type="submit" name="submit" value="Submit!" />
   </p>
   </form>
   <?php
   if (isset($_POST['submit'])) …
Run Code Online (Sandbox Code Playgroud)

php forms post undefined

19
推荐指数
2
解决办法
23万
查看次数

找不到类'Memcache'和PHP

我通过阅读Windows7上的这篇文章安装了memcached,但不幸的是我不断收到错误Fatal error: Class 'Memcache' not found in D:\xampp\htdocs\test\memcache\test.php on line 2

第2行: $memcache = new Memcache;

Win7 64,已安装Xampp.我net start "memcached Server"在命令行上使用,但它说服务已经启动.

其他一些可能有帮助的信息;

在php.ini文件中:

extension=php_memcache.dll

    [Memcache]  
    memcache.allow_failover = 1  
    memcache.max_failover_attempts=20  
    memcache.chunk_size =8192  
    memcache.default_port = 11211  
Run Code Online (Sandbox Code Playgroud)

更新:phpinfo(); show dll未加载.到目前为止尝试了几个不同的DLL文件,没有用.dll也是正确的.它似乎在正确的文件夹中.

(PS有些人可能认为这个主题可能有重复,但是只有一个人遵循相同的指示并且在SO中有相同的错误.自3月以来,这个问题没有答案或解决方案.)

php xampp memcached

19
推荐指数
4
解决办法
4万
查看次数

仅在特定时间每分钟运行一次cron作业?

你如何只在特定时间每分钟运行一次cron作业?像这样:

它仅在上午11点至中午12点,下午4点至下午5点以及晚上9点至晚上10点每分钟检查一次

这对我来说似乎很复杂,我不知道从哪里开始.

php cron centos

19
推荐指数
2
解决办法
3万
查看次数

PHP:默认情况下切换?

switch ($var) {
    case 0:
        // Do something...
        break;
    case 1:
        // Do something...
        break;
    default:
        // Do something...
        break;
}
Run Code Online (Sandbox Code Playgroud)

我见过有些人在默认情况下使用break.由于默认情况是触发时执行的最后一种情况,是否需要在那里休息?我猜它只是出于常规做法,还是有另一个原因?

php case break switch-statement

19
推荐指数
1
解决办法
9571
查看次数

在Codeigniter中重定向后会话丢失

我使用codeigniter作为框架.

首先,我使用localhost但是当我更改为我的IP地址时,登录功能不再起作用.我发现重定向到另一个控制器后会话丢失了.

这是结果 print_r($this->session->all_userdata());

[session_id] => 7b00fa0f8790f48d24446f9eb4e6aab2 
[ip_address] => 10.42.68.71 
[user_agent] => Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1
[last_activity] => 1285962398 
[user_data] =>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它没有传递任何数据,user_data但是在我测试时它是在重定向之前设置的.

我将控制器分成两个,第一个是用户 - >登录功能的处理程序,另一个是计划程序,我从用户控制器重定向的链接处理程序.

users.php (第一控制器):

$this->load->model('users_model');
$this->load->model('mymodel');
$this->load->database();

$email = $this->input->post('email');

$pass = $this->input->post('password');

$type = $this->input->post('type');

// Authenticate the user
$userdata = $this->users_model->auth_user($email,$pass,$type);

if($userdata)
{
    $data = array('FIRSTNAME' => $userdata->FIRSTNAME, 
                  'LASTNAME' => $userdata->LASTNAME, 
                  'EMAIL' => $userdata->EMAIL,
                  'LOGIN' =>TRUE, 'TYPE' => $type);
    $this->session->set_userdata($data);
    redirect('planner/view_system','refresh');
}
Run Code Online (Sandbox Code Playgroud)

planner.php (第二控制器):

function …
Run Code Online (Sandbox Code Playgroud)

php session redirect codeigniter

19
推荐指数
1
解决办法
5万
查看次数

PHP - 最轻量级的psr-0兼容自动加载器

我有一个小应用程序,我需要一个自动加载器.我可以很容易地使用symfony2类加载器,但它似乎有点矫枉过正.

那里有一个稳定的极轻量级psr-0自动加载器吗?

php autoload psr-0

19
推荐指数
3
解决办法
1万
查看次数

在列号中使用列值作为数组索引

我正在使用doctrine 2.1来创建settings表的模型:

id |  arg  |  value  |  category
1  |  name |  foo    |  general_settings 
2  |  desc |  bar    |  general_settings 
Run Code Online (Sandbox Code Playgroud)

假设我有很多不同类别的设置.为了获得特定类别的所有设置,我执行以下操作:

$q = Doctrine_Query::create()
    ->from('Setting p')
    ->where('p.category = ?', $category_name);
Run Code Online (Sandbox Code Playgroud)

此时一切正常.好吧.. $ 64,000的问题是:是否存在允许我读取结果的数据访问替代方案?

$resultSet = $q->execute(); 

//the magic here could be use the -arg- column as index
$requested_setting = $resulSet['name']  

//print the setting value
echo $requested_setting['value'];  //should prints "foo"

//another way
echo $resulSet['desc']['value']; //should prints "bar"
Run Code Online (Sandbox Code Playgroud)

php doctrine multidimensional-array doctrine-orm

19
推荐指数
2
解决办法
3万
查看次数

如何用PHP检测"浅色"颜色

我正在研究一个动态商店项目,我使用一个循环来打印产品的所有颜色选项作为颜色框,但是我真的需要为这些颜色添加"边框".我尝试了类似下面的东西,但它非常有限,它实际上仅限于白色,它不会捕捉像#ddd,#eea ......等

这是我的循环:

foreach($colors as $color) {
    $color = trim($color);
    if (!empty($color)) {
        if (in_array($color, array('white','White','#fff','#FFF','#FFFFFF','#ffffff'))) {
            $bordercolor = '#bbb';
        } else {
            $bordercolor = $color;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

颜色是来自后端的数组,如:White,#000,#cc0000等.在if/else条件中添加所有异常也是不实际的,任何快速的想法?

php

19
推荐指数
4
解决办法
7631
查看次数

不能为我的一个实体使用Doctrine PersistentCollection,另一个我可以

我有一对协会.它们是多对多的,我使用显式创建的实体来加入它们,因此我可以获得关于关系的元数据.虽然它们是相同的,但是一个有效,另一个没有.更糟糕的是,上周,他们都工作了,从那时起我就没有接触过他们.在MuSQL Workbench中,我可以选择正确的数据.

当我将数据提取到数组中时,生活是美好的.当我尝试另一个时,我得到:

调用setValue()非对象上的成员函数

当我尝试它时,我也得到它count(),访问它($blah[0])或迭代它(foreach).

当我执行:

echo get_class($inData)."<BR>";
echo get_class($inData->accountPurchaseNodes)."<BR>";
echo get_class($inData->accountPurchaseNodes[0])."<BR>";
echo "<HR>";

echo get_class($inData)." x<BR>";
echo get_class($inData->purchaseOrderNodes)."<BR>";
echo get_class($inData->purchaseOrderNodes[0])."<BR>";
echo "<HR>";
exit;
Run Code Online (Sandbox Code Playgroud)

我明白了:

GE\Entity\Purchase
Doctrine\ORM\PersistentCollection
GE\Entity\AccountPurchaseNode

GE\Entity\Purchase
Doctrine\ORM\PersistentCollection

( ! ) Fatal error: Call to a member function setValue() on a non-object in 
/Users/tqwhite/Documents/webdev/goodEarth/goodearth.com/library/
Doctrine/ORM/PersistentCollection.php on line 168
Run Code Online (Sandbox Code Playgroud)

下面,我包括实体定义的相关部分.我已经烧了几个小时尝试这个和那个.我非常感谢你的建议.

这一个工作:

//==Purchase  Entity=====================================

 /**
 * @param \Doctrine\Common\Collections\Collection $property
 * @OneToMany(targetEntity="AccountPurchaseNode", mappedBy="account", cascade={"persist", "remove"});
 */
private $accountPurchaseNodes;

//in __construct()
$this->accountPurchaseNodes = new …
Run Code Online (Sandbox Code Playgroud)

php doctrine-orm

19
推荐指数
1
解决办法
6330
查看次数

PHP:我是否将事件驱动编程与信号感知接口(信号和插槽/观察者模式)混合在一起?

我见过很多人说Symfony2,Zend Framework 2和其他人都是事件驱动的.

在桌面世界中,通过事件驱动编程,我了解应用程序将在其状态发生变化时通知其观察者.

由于PHP应用程序是无状态的,因此无法做到这一点.IE将观察者绑定到视图,观察用户使用界面时的更改.相反,它需要一个新的请求过程才能更新视图.所以,这不是一个事件,而是一个全新的要求.

另一方面,有一个类似的概念:事件驱动的架构.

在这里你可以阅读:

http://en.wikipedia.org/wiki/Event-driven_programming

http://en.wikipedia.org/wiki/Event-driven_architecture

另一个是:

http://en.wikipedia.org/wiki/Signal_programming

信号是向进程发出事件发生的通知.信号有时被描述为软件中断.信号类似于硬件中断,因为它们中断了程序的正常执行流程; 在大多数情况下,无法准确预测信号何时到达.

  • Stackoverflow [singals]标签描述

而且,我以前称之为事件驱动的东西似乎与Qt引入的信号和插槽模式更相关(观察者模式实现)

举个例子,Prado框架声称是事件驱动的:

http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Applications(应用程序生命周期部分)

http://www.pradosoft.com/docs/manual/System/TApplication.html#methodonEndRequest

IIRC,这不是一个事件驱动的应用程序,而是只是实现该类的类所使用的插件钩子(信号和插槽)observable Interface.我的意思是,考虑桌面应用程序使用事件的方式以及无状态应用程序使用事件的方式(作为插件):第一个使用整个应用程序的事件,包括视图,最后一个仅用于服务器端操作.

一个与面向方面的编程(带信号和插槽)更相关,另一个与横切关注点/AOP 没有特别的关系.换句话说,它与应用程序状态更相关.

那么,实际上这些术语之间的关系以及它们之间的区别是什么?

  1. 事件驱动的编程
  2. 事件驱动的架构
  3. 信号和插槽模式

这些术语只是通用模式吗?因此,实现观察者模式的所有内容都可以被视为事件驱动的?

UPDATE

Zend框架2

我上面链接的关于AOP的文章(http://mwop.net/blog/251-Aspects,-Filters,-and-Signals,-Oh,-My!.html)由Matthew Weier O'Phinney撰写( ZF领袖).IIRC,它没有提到"事件驱动",只提到信号和插槽.

Symfony 2

Symfony2 EventDispatcher组件描述没有提及"事件驱动"应用程序:http: //symfony.com/doc/current/components/event_dispatcher/introduction.html 它只包含对"事件"的引用(确实,由信号和插槽处理).

两个框架似乎都使用信号和插槽中的拦截过滤器模式,以便在请求过程中处理同步事件.

php oop design-patterns signals event-driven

19
推荐指数
2
解决办法
4963
查看次数