Tanımsız PHP değişken ama HTML sayfasında tanımladığınız

2 Cevap php

Ben bir geri bildirim formu oluşturmak için PHP öğreniyorum. Ben bir öğretici takip formu ve isteği yürütmek ve veritabanına kaydetmek için bir php dosyası ile bir html sayfası oluşturduk. Gariptir ki, ben iki sorun var.

  1. And after I pressed the submit, I've got the following error: Undefined variable: user in /Users/wj/Sites/all_sanbox/VTC-PHP/07/send_feedback.php on line 8

  2. Ben bazı verilerle formu dolduran, ancak girilen veriler yoktu sanki php dosyası çalıştırılır.

Ben aşağıdaki gibi kullanılan kod şunlardır:


feedback.html

<HTML>
<HEAD>
<TITLE>Vinyl Dealers: feedback </TITLE>
</HEAD>

<BODY>
<H2>Feedback</H2>
<BR />
<FORM ACTION="send_feedback.php" METHOD="POST">
Your name:
<INPUT TYPE=TEXT NAME="user" MAXLENGTH=40 SIZE=40 />
<BR />
Your email:
 <INPUT TYPE=TEXT NAME="email" MAXLENGTH=40 SIZE=40 />
 <BR /><BR />
Can we keep you updated with news about our site?
<INPUT NAME="spam" TYPE=RADIO VALUE="1" CHECKED />Yes
<INPUT NAME="spam" TYPE=RADIO VALUE="0" />No
<BR /><BR />
Comments:
<BR />
 <TEXTAREA COLS=60 ROWS=10 NAME="comments"></TEXTAREA>
 <BR />
<INPUT TYPE=SUBMIT VALUE="submit" />
</FORM>
</BODY>
</HTML>


sendfeedback.php

  <html>
  <head>
      <title>Vinyl Dealers: we appreciate your feedback</title>
  </head>

  <body>  
      <?php 
      if (!$user || !$email || !$comments){ ?>

      <h2>Whoops</h2>
      <br>Please fill in all fields<br>
      <a href="feedback.html">Click here to go back to the feedback page.</a>

      <?php 
      exit; 
      }

      $user = addslashes($user);
      $email = addslashes($email);
      $comments = addslashes($comments);
      $db = mysql_connect("localhost","root","admin");
      mysql_select_db("vinyldealers",$db);
      $addfeedback = "INSERT INTO feedback (user, email, spam, comments)
                      VALUES(" . '$user' . "," . $email . "," . $comments .")";
      $result = mysql_query($addfeedback);

      ?>
  <H2>Thank you</H2>
  <BR>
  We have added your comments to our database.    
  </body>
  </html>

2 Cevap

I guess you are running PHP without register_globals option which is safe. That's why you need to access the submitted values using $_POST['user'] and similar...

Peki ekleme:

 $user = $_POST['user']
 $email = $_POST['email'] 
 // etc...

Hiç PHP POST değişkenin dışında kullanıcının değerini alamadım. Eğer bir form değişkenleri geçirdiğinizde, çıkan isteği kullanmadan önce PHP ayıklamak gerekir istek POST, vücutta kendi değerlerini içerir.

Senin durumunda, sizin gibi bazı kod eklemek istiyorum:

$user = $_POST['user'];

Bu HTTP isteği dışında ve bir PHP değişkeni değerini alacak. En son PHP sürümlerinde, POST değişkenler $_POST ilişkisel dizi boyunca erişilebilir, ve benzer $_GET ile değişkenleri GET. PHP çok daha eski sürümlerinde, sırasıyla, $HTTP_VARS_POST ve $HTTP_VARS_GET istiyorum.