2010-12-09 2 views
0

에 데이터 값을 올리기 :오류 나는 다음과 같은 오류 얻을 PHP에서 데이터 값을 게시하려고 할 때마다 PHP

<?php require_once('Connections/rent.php'); ?> 
<?php 

// post 

$id = $_GET['id']; 
$user = $_GET['user']; 
$week = $_GET['week']; 
$pRent = $_GET['pRent']; 
$status = $_GET['status']; 
$rentPaid = $_GET['rentPaid']; 
$result = $_GET['result']; 
$pDate = date("d/m/Y G:i A"); 
$lDate = new DateTime('this wednesday G:i A'); 
$cDate = new DateTime('next tuesday G:i A'); 

// update 

mysql_query("UPDATE rent SET dNo = '$dNo', pdate = '$pDate', pRent = '$result' WHERE rent.id = $id"); 


// if pRent = 0 then set status to clear, colour to #3C0 
if ($pRent == 0) { 
    mysql_query("UPDATE rent SET status = 'clear', colour = '#3C0' WHERE rent.id = $id"); 
} 

// if pRent =! 0 but just paid then set status to paid/not clear, colour to #FF0 
elseif ($pRent =! 0) { 
    mysql_query("UPDATE rent SET status = 'paid', colour = '#3C0' WHERE rent.id = $id"); 
} 

// if status = on holiday, then set status to clear, colour to #3C0 
elseif ($status == 'awaiting') { 
    mysql_query("UPDATE rent SET status = 'awaiting', colour = '#09F' WHERE rent.id = $id"); 
} 

// check all drivers who have/have not paid rent in the past week 
elseif ($lDate < $pDate && $cDate > $pDate) { 
    // date is within desired range 
    mysql_query("UPDATE rent SET status = 'paid', colour = '#3C0'"); 
} else { 
    // date is not within desired range 
    mysql_query("UPDATE rent SET status = 'awaiting', colour = '#09F' WHERE rent.status =! 'not working'"); 
} 
?> 

어떤 제안 : 여기

Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() [datetime.--construct]: Failed to parse time string (this wednesday G:i A) at position 16 (:): Unexpected character' in C:\xampp\htdocs\keypad\end.php:14 Stack trace: #0 C:\xampp\htdocs\keypad\end.php(14): DateTime->__construct('this wednesday ...') #1 {main} thrown in C:\xampp\htdocs\keypad\end.php on line 14

내가 사용하고 코드입니다 ?

+1

오류 메시지가 분명하다고 생각합니다. ''이 수요일 G : i A''는'DateTime()'이 이해하는 것이 아닙니다. – deceze

+0

나는 여러분의 코드가 SQL injection에 매우 취약하다는 표준 경고를 추가 할 것이다. 보다 안전한 SQL 실행 방법으로 PDO 준비 문 (http://au.php.net/manual/en/pdo.prepared-statements.php)을 확인하십시오. –

답변

3

14 호선에 문제가 있습니다. $lDate = new DateTime('this wednesday G:i A')이 유효하지 않습니다. 올바른 번호 목록은 Relative DateTime formats을 확인하십시오. 당신이해야 할 것은 :

$lDate = new DateTime('this wednesday') 
$lDate->format('G:i A'); 

그냥 제안, 처음 두 줄은

<?php 
    require_once 'Connections/rent.php'; 

하고 PDO 또는 다른 유사한 라이브러리를 사용하는 것이 좋습니다 또는 적어도 당신의 SQL 쿼리를 소독하십시오한다.

관련 문제