0

私は PHP の完全な初心者であり、mysql を使用しているので、HMTL と CSS の経験は豊富です。必要なのは、サイトのフォームがフォーム内の情報をデータベースにアップロードすることだけです。問題は、「送信」ボタンをクリックすると、.php ファイルのアドレスが入った空白のタブが開き、空白の白い画面が表示されることです。.php は以下です。

<?php
$hostname = "myHostName";
$username = "PreRegCustomers";
$dbname = "PreRegCustomers";
$password = "myPassword";
$usertable = "CustomerInfo";

mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
connect to database! Please try again later.");
mysql_select_db($dbname);

$sql = "INSERT INTO $usertable (firstName, lastName, streetAddress, city, state, zip, country, email, phone, badgeName) 

VALUES ('$firstName', '$lastName', '$streetAddress', '$city', '$state', '$zip', '$country', '$email', '$phone', '$badgeName')";

$sql="INSERT INTO $usertable (firstName, lastName, streetAddress, city, state, zip, country, email, phone, badgeName)

VALUES ('".$_POST[firstName]."', '".$_POST[lastName]."', '".$_POST[streetAddress]."', '".$_POST[city]."', '".$_POST[state]."', '".$_POST[zip]."', '".$_POST[country]."', '".$_POST[email]."', '".$_POST[phone]."', '".$_POST[badgeName]."')";
?>

私が読んだことから、これは通常、コード内の何らかのエラーが原因です。私は PHP をよく知らないし、ページ内のほとんどすべてが他の人のコードから取られたものなので、これは私にとって難しいことです。コードからのそのほとんどは、godaddy.com (サイトとデータベースがホストされている場所) からの助けになります。

PHP がサポートされ、有効になっていることを確認するためにテストしました。既に問題なく機能しているフォーム メーラーがあります。DNS をセットアップし、複数の異なる構文を試しました。技術サポートに電話して、それが何か問題があるかどうかを確認しました。サイトを Windows から Linux に移行しましたが、変更したすべての結果がまったく同じ空白の白になります。画面。結局のところ、愚かなほど簡単に修正できるか、露骨に明白なものになることは間違いありませんが、誰かが見て、私が見逃しているものを確認できる場合は、非常に感謝しています.

投稿された回答のいくつかを取り入れた後の私の新しいコード。まだ NOTICE が表示されますが、まだデータベースに何も挿入されていません。

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

$hostname = "myHostName";
$username = "PreRegCustomers";
$dbname = "PreRegCustomers";
$password = "myPassword";
$usertable = "CustomerInfo";

//connect to mysql
$link_id = mysql_connect($hostname, $username, $password);
if (!$link_id) {
    die("Unable to connect to database! Please try again later. error:".mysql_errno());
}
//make sure your DB exists
if (!mysql_select_db($dbname)) die ("Connected to mysql but could not connect to the DB. error:".mysql_errno());

//avoid sql_injection
$firstName = mysql_real_escape_string($_POST['firstName']);
$lastName = mysql_real_escape_string($_POST['lastName']);
$streetAddress = mysql_real_escape_string($_POST['streetAddress']);
$city = mysql_real_escape_string($_POST['city']);
$state = mysql_real_escape_string($_POST['state']);
$zip = mysql_real_escape_string($_POST['zip']);
$country = mysql_real_escape_string($_POST['country']);
$email = mysql_real_escape_string($_POST['email']);
$phone = mysql_real_escape_string($_POST['phone']);
$badgeName = mysql_real_escape_string($_POST['badgeName']);

//write the query
$sql = "INSERT INTO $usertable 
    (firstName, lastName, streetAddress, city, state, zip, country, email, phone, badgeName) 
    VALUES ('$firstName', '$lastName', '$streetAddress', '$city', '$state', '$zip', '$country', '$email', '$phone', '$badgeName')";

//then you'll need to execute the query :)
mysql_query($sql); 
?>
4

5 に答える 5

1

私が知る限り、このコードはデータベースに接続して変数 $sql を設定するだけです。実際にどこかでクエリを実行していますか? 画面に何かを印刷するために何かをしていますか?

于 2013-10-08T22:06:58.610 に答える
0

$_POST[firstName]べきである$_POST['firstName']など

mysql_query($sql) or die('MySQL Error: ', mysql_error());

echo 'Data inserted';

現在、mysql_ を使用しないでください。非推奨です。PDOでやる

于 2013-10-08T22:04:57.523 に答える
0

初めに

$_POST[firstname] should be $_POST['firstname']

三番

mysql_query($sql,$conn);

2番目

$conn=mysql_connect(your parameters);
于 2013-10-08T22:10:07.400 に答える