2015-10-22 48 views
1

我是Ania,我是新的論壇,很高興找到這樣的地方!我剛剛開始編程,希望從現在開始,它只會變得越來越好^^。未定義的索引php,檢查日期,多語言選項

所以我工作的一個任務,

<form method="post" action="date_multilangue.php"> 

<input type="text" length="10" name="date" > <br> <br> 


    <select name="lang" > 
     <option value="fr" selected> Français </option> 
     <option value="en"> Anglais </option> 
    </select> 

    <br> <br> 

    <input type="submit" value="Soumettre"> 

現在我的PHP文件:

<html> 
<head> 
    <title>Untitled Document</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 
<body bgcolor="#FFFFFF" text="#000000"> 
<?php 

$date = $_POST['date']; 


$langue = $_POST['lang']; 

$date_explose = implode("-",explode("/", $date)); 

global $ts; 

$ts = strtotime($date_explose); 

function verif_date($date_saisie) { 

    $date = explode("/",$date_saisie); // On récupère la date saisie 

    // var_dump($date); 

    // Pré contrôle des saisies de l'utilisateur avant vérification date 
    if((count($date)==3) && (is_numeric($date[0])) && (is_numeric($date[1])) && (is_numeric($date[2]))) 
    { 
     // Vérification simple 
     $jour = $date[0]; 
     $mois = $date[1]; 
     $annee = $date[2]; 

     if (checkdate($mois, $jour, $annee)) 
     { // La date est valide 
      return true; 
     } 
     else 
     { 
      return false; 
     } 

    } 
    else 
    { 
     return false; 
    } 
} // Fin de la fonction 



function ladate($lang, $ts) { 

    $jour_semaine = date("w", $ts); 
    $jour_mois = date("j",$ts); 
    $mois_numerique = date("n",$ts); 
    $annee = date("Y",$ts); 

     $jour['fr'] = array("Dimanche","Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); 

     $mois['fr'] = array(1 => "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"); 

     $jour['us'] = array("Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); 

     $mois['us'] = array(1 => "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

    $intro = ""; 
    if ($langue == 'fr') { 
      $intro .= "La date est le"; 
     } elseif ($langue == ' en') { 
      $intro .= "The date is"; 
     } 
     echo " $intro" . " {$jour[$lang][$jour_semaine]} $jour_mois {$mois[$lang][$mois_numerique]} $annee"; 

     echo "<br/>"; 
} 

if(verif_date($date)) { 
    ladate($langue, $ts); 
} 

當我提交表單我得到的錯誤:

Notice: Undefined index: en in C:\wamp\www\php_imapp\exo_seance11\date_multilangue.php on line 74 
Call Stack 
# Time Memory Function Location 
1 0.0004 257304 {main}() ..\date_multilangue.php:0 
2 0.0005 258272 ladate() ..\date_multilangue.php:80 

我會重新非常感謝,如果你能給我任何建議如何解決這個問題。

在此先感謝!

線74:

echo " $intro" . " {$jour[$lang][$jour_semaine]} $jour_mois {$mois[$lang][$mois_numerique]} $annee"; 
+0

'如果($索緒爾= 'FR'){'應該是'如果($索緒爾==' fr'){'。 'elseif($ langue ='en')'應該是'elseif($ langue =='en')' – Maximus2012

+0

您可能還想發佈任何附加代碼,並指出哪一行是第74行。 – Maximus2012

+0

嘿,非常感謝你的幫助!也即時對不起,我不小心複製了我試圖調試的代碼,只是將其更改爲原始版本並突出顯示了第74行! – Ankus

回答

0

這是爲PHP正確的代碼:

<?php 


$date = $_POST['date']; 

$lang = $_POST['lang']; 


    $date_explose = implode("-",explode("/", $date)); 

    global $ts; 

    $ts = strtotime($date_explose); 

    function verif_date($date_saisie) { 

     $date = explode("/",$date_saisie); // On récupère la date saisie 

     // var_dump($date); 

     // Pré contrôle des saisies de l'utilisateur avant vérification date 
     if((count($date)==3) && (is_numeric($date[0])) && (is_numeric($date[1])) && (is_numeric($date[2]))) 
     { 
      // Vérification simple 
      $jour = $date[0]; 
      $mois = $date[1]; 
      $annee = $date[2]; 

      if (checkdate($mois, $jour, $annee)) 
      { // La date est valide 
       return true; 
      } 
      else 
      { 
       return false; 
      } 

     } 
     else 
     { 
      return false; 
     } 
    } // Fin de la fonction 



    function ladate($lang, $ts) { 

     $langue = $_POST['lang']; 

     $jour_semaine = date("w", $ts); 
     $jour_mois = date("j",$ts); 
     $mois_numerique = date("n",$ts); 
     $annee = date("Y",$ts); 

     $jour['fr'] = array("Dimanche","Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); 

     $mois['fr'] = array(1 => "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"); 

     $jour['en'] = array("Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); 

     $mois['en'] = array(1 => "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

     $intro = ""; 
     if ($lang == 'fr') { 
      $intro = "La date est le"; 
     } elseif ($lang == 'en') { 
      $intro = "The date is"; 
     } 
     echo " $intro" . " {$jour[$lang][$jour_semaine]} $jour_mois {$mois[$lang][$mois_numerique]} $annee"; 

     echo "<br/>"; 
    } 


    if(verif_date($date)) { 
     ladate($lang, $ts); 
    } 
?> 
+1

你改變了哪一行?請提供此問題的所有者出錯的地方? – hakiko