2016-04-22 4 views
0

私はこれを間違っていると私を許します。私はこのサイトを週5日利用していますが、実際に質問を投稿したのは初めてです。私は独学で、私はPHPサイトを維持するために投げ捨てられました。私は危険だが十分に知っているが、(まだ)正しい方法では不十分である。ですから、「WTFはこのひよこをやっているのですか? :)PHPフォームが断続的に変数を渡す

要旨:callaway.php & saveaddcallaway.php: は、私は2つのファイルを持っています。 callaway.phpはmysql dbに接続し、tblcallawayというテーブルにすでにレコードがあることを確認します(すでにログインしているユーザー)。彼らがしなければ、彼らは彼らのサイズ、スタイルと色のシャツオーダーを提出するために利用可能なフォームを持っています。送信時に、そのフォームアクションは変数をsaveaddcallaway.phpに渡し、saveaddcallaway.phpはユーザーの選択をエコーし​​ます。

本当に...送信すると、そのフォームアクションは変数をsaveaddcallaway.phpに渡します。この変数は、tblcallawayに注文を挿入し、ユーザーを「注文が送信されました」というメッセージとともにcallaway.phpにリダイレクトします。しかし、この問題の目的のために、我々は選択肢を表示することが私が必要とするものであるとふと思うつもりです。

問題: 時々動作するだけです。あなたは提出することができ、すべての作品は素晴らしいです。あなたや他の誰かが提出しようとすると、それはうまく動作しないかもしれません。うまくいかない場合は、「未定義のインデックス」エラーが表示されます。ただし、ウェブページの更新ボタンを数回クリックすると、選択内容が表示されます。 callaway.phpは必要なときにのみフォーム選択を処理します。それはうまく動作していないときに非常に散発的です。私はサイズ/色/スタイルの異なる組み合わせを試みました。サーバーを再起動しました。そしてそれはまだ時々だけ働いています...時には。 **ちょっとした注意*:tblcallawayに挿入するように設定されている場合、すべての空白値がレコードに挿入されます。私はコードをコメントアウトしましたが、問題はテーブルに入る前です(私は思っています)。私はそれをとにかく含めると思った!

<!--callaway.php--> 
<?php 
$query = "SELECT * FROM tblCallaway WHERE NetworkID = '$user'" or die("Error in the Select!.." . mysqli_error($link)); 
$result = mysqli_query($link, $query); 
?> 
<?php 
$count = mysqli_num_rows($result); 
    if ($count >= 1) { 
      $greeting = "<h3>Your shirt order has been submitted - THANKS!</h3><br><br>"; 
      $hidebtn = "hidden"; 
      } 
     else { 
      $greeting = "<h3>Submit your shirt order:</h3><br><br>"; 
      $hidebtn = "submit"; 
     }?> 
<form method="post" action="saveadd_callaway.php" enctype="multipart/form-data"> 
     <?php echo $greeting;?> 
    <div class="col-sm-3"><h1>STYLE:</h1><br> 
      <select name="cStyle" id="cStyle"> 
       <option value="Mens">Mens</option> 
       <option value="Ladies">Ladies</option> 
      </select> 
    </div> 
    <div class="col-sm-3"><h1>SIZE:</h1><br> 
      <select name="cSize" id="cSize"> 
       <option value="S">Small</option> 
       <option value="M">Medium</option> 
       <option value="L">Large</option> 
       <option value="XL">X-Large</option> 
       <option value="2X">XX-Large</option> 
       <option value="3X">XXX-Large</option> 
       <option value="4X">XXXX-Large (Mens Only)</option> 
      </select> 
    </div> 
    <div class="col-sm-3"><h1>COLOR:</h1><br> 
      <select name="cColorChoice" id="cColorChoice"> 
       <option value="Parakeet">Green</option> 
       <option value="Black">Black</option> 
       <option value="Griffen Grey">Gray</option> 
       <option value="Paradise Pink">Pink-Coral</option> 
       <option value="Bright White">White</option> 
       <option value="Paisley Purple">Purple</option> 
       <option value="Birds of Paradise Orange">Orange</option> 
       <option value="Blue Atoll">Bright Blue</option> 
       <option value="Riviera Blue">Riviera Blue</option> 
       <option value="Peacoat Navy">Navy Blue</option> 
      </select> 
    </div>   
    <br style="clear: left" /><br><br><br> 
    <input type="hidden" name="cNetworkID" value="<?php echo $user;?>"> 
    <input type="hidden" name="SubmittedOn" value="<?php echo date("Y-m-d h:i:sa");?>"> 
    <input type="<?php echo $hidebtn;?>" name="submit" value="submit"> 
    </form> 

そして、他の...

<!--saveaddcallaway.php--> 
<?php 
$cStyle = $_POST['cStyle']; 
$cSize = $_POST['cSize']; 
$cNetworkID = $_POST['cNetworkID']; 
$ColorChoice = $_POST['cColorChoice']; 
$SubmittedOn = $_POST['SubmittedOn']; 

echo ($cStyle . " - " . $cSize . " - " . $ColorChoice . " - " . $cNetworkID . " - " . $SubmittedOn); 

/* ********************************************************************* 
$sql1 = "INSERT INTO tblCallaway (NetworkID,Style,Size,ColorChoice,SubmittedOn) VALUES ('$cNetworkID','$cStyle','$cSize','$ColorChoice','$SubmittedOn')"; 
if(mysqli_query($link, $sql1)){ 
echo "Shirt Order Successfully Submitted!"; 
header("Location: callaway.php"; // Redirect browser  
} else{ 
echo "ERROR: Could not able to execute $sql1. " . mysqli_error($link); 
} 
********************************************************************* */ 

そして、それが動作するように望んでいないことを決定するとき...あなたはsaveaddcallaway.php上、提出した後、次の取得...

Notice: Undefined index: cStyle in E:\Inet\saveadd_callaway.php on line 10 
Notice: Undefined index: cSize in E:\Inet\saveadd_callaway.php on line 11 
Notice: Undefined index: cNetworkID in E:\Inet\saveadd_callaway.php on line 12 
Notice: Undefined index: cColorChoice in E:\Inet\saveadd_callaway.php on line 13 
Notice: Undefined index: SubmittedOn in E:\Inet\saveadd_callaway.php on line 14 
- - - - 

私がisset()を使用しても、通知の詳細(未定義のインデックス...)は表示されません。それでもエラーが表示されます。なぜそれは時々動作するのですが、他のものは動作しませんか?エラーが発生した場合でも、リフレッシュをクリックして動作させることができます。それはどうですか?任意のデータは、その後、あなたはあなたが言及して警告を取得します掲載されずに2ページを取得することが可能である場合

+0

をお試しください0) 'またはその行に沿って何かを表示して、表示する投稿データがあることを確認してください。 – Dale

+0

[PHP:" Notice:未定義変数 "と" Notice:未定義インデックス "](http://stackoverflow.com/questions/4261133)の可能な複製/ php-notice-undefined-variable-and-notice-undefined-index) – urfusion

+0

私が言ったように、私はまだ学んでいますが、dbのリンクを閉じることができますか?私は両方のページでmysqliに接続します。いずれにしてもリンクを閉じるわけではありません。私はクローズドなものの4つの組み合わせを2つのページ(両方とも、両方とも、1つではなく、1つではなく、そしてその逆)でリンクしようとしましたが、私は同じ断続的な成功を収めています。私は別のポストを学びました。そのページの終わりにdbリンクが閉じてしまったので、私はそれが重要であるとは確信していません...ちょうど私もこの情報を提供すると考えました! :)ありがとう! – Shleeenanigans

答えて

0

私は(数える場合($ _ POST)> `をチェックすることをお勧め..この

<!--saveadd_callaway.php--> 
<?php 
// checks if the request is by post method and $_POST array have some values 
if (($_SERVER['REQUEST_METHOD'] == 'POST') && (count($_POST)>0)){ 
    // get all post data 
    // insert into database 
}else{ 
    header("Location: callaway.php"); 
    exit; 
} 
+0

私は試しましたが、これは私が送信した後にフォームページ(リフレッシュ)に戻ってきます...(4回のうち1回の試行のようなエラー)。問題の内容と処理されなかった理由を修正/説明しません。 – Shleeenanigans

関連する問題