对于PHP和其他开发人员来说,我是一个菜鸟。无论如何,自从过去两天以来,我一直试图找到解决方案。我几乎到处搜索。所以,我试图使用XAMPP将设计集成到GPT脚本中,但每次尝试转到文件所在的localhost / gpt时,我都会看到一堆错误。页面顶部显示: -
"; }}}} if(isset($_SESSION['username']) && isset($_SESSION['password'])){ header("Location: members.php"); } ?>
Notice: Undefined index: username in C:\xampp\htdocs\gpt\includes.php on line 3
Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\gpt\includes.php on line 3
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\gpt\includes.php on line 3
Notice: Trying to get property of non-object in C:\xampp\htdocs\gpt\includes.php on line 9
Notice: Trying to get property of non-object in C:\xampp\htdocs\gpt\includes.php on line 14
Notice: Trying to get property of non-object in C:\xampp\htdocs\gpt\includes.php on line 15
Notice: Trying to get property of non-object in C:\xampp\htdocs\gpt\includes.php on line 16
我尝试将error_reporting (E_ALL ^ E_NOTICE);
添加到config.php和includes.php的顶部,然后将错误减少到: -
"; }}}} if(isset($_SESSION['username']) && isset($_SESSION['password'])){ header("Location: members.php"); } ?>
Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\gpt\includes.php on line 4
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\gpt\includes.php on line 4
我也尝试在每个页面添加session_start();
。
无论如何,这些是涉及的页面: -
的config.php
<?
session_start();ob_start();
$hostname = "localhost"; //your hostname (normally localhost)
$data_username = "root"; //database username
$data_password = ""; //database password
$data_basename = "gpt"; //database name
$conn = mysql_connect("".$hostname."","".$data_username."","".$data_password."");
mysql_select_db("".$data_basename."") or die(mysql_error());
$bonuspoints=10; //bonus points awarded for new users
$mainpointsneeded=200; //max number of points needed before user can request voucher
?>
includes.php
<?php
error_reporting (E_ALL ^ E_NOTICE);
session_start();
$fetch_users_data = mysql_fetch_object(mysql_query("SELECT * FROM `members` WHERE username='".$_SESSION['username']."'"));
$title= "My Voucher Geek"; //your site title
$yourdomain="http://localhost/gpt"; //your domain name where script is installed - do not use trailing slash
$tweetmsg="Get Amazon and ASOS gift vouchers for free at http://www.myvouchergeek.com"; //set text for tweet this button on homepage
$bonuspoints= 10; //amount of bonus points to give to users
$refer_points=2; //amount of points a user receives if one of their referred users completes any survey
$ref_id=$fetch_users_data->id;
if(isset($_GET['join'])){
$referral_ID = $_GET['join'];
$referral_string= "?join=".$referral_ID;
}
$membername= $fetch_users_data->username; //don't change
$memberpoints=$fetch_users_data->points; //don't change
$membersurveys=$fetch_users_data->completed_surveys; //don't change
$earnedpoints = $memberpoints - $bonuspoints;//if you want to display how many points user has earned (as opposed to bonus points)
$mainpointsneeded = 200; //total points needed before user can request a voucher
$pointsneeded= $mainpointsneeded - $memberpoints; //points left before they can request voucher
$contactemail = "YOUR_EMAIL_ADDRESS"; //contact form messages will be sent here
$requestemail = "THE_SAME_OR_ANOTHER_EMAIL_ADDRESS"; //request a voucher messages will be sent here
?>
的index.php
<?
session_start();
include_once"config.php";
if(isset($_POST['login'])){
$username= trim($_POST['username']);
$password = trim($_POST['password']);
if($username == NULL OR $password == NULL){
$final_report.="Please complete both fields";
}else{
$check_user_data = mysql_query("SELECT * FROM `members` WHERE `username` = '$username'") or die(mysql_error());
if(mysql_num_rows($check_user_data) == 0){
$final_report.="This username does not exist";
}else{
$get_user_data = mysql_fetch_array($check_user_data);
if($get_user_data['password'] == $password){
$start_idsess = $_SESSION['username'] = "".$get_user_data['username']."";
$start_passsess = $_SESSION['password'] = "".$get_user_data['password']."";
$final_report.="<meta http-equiv='Refresh' content='0; URL=members.php'/>";
}}}}
if(isset($_SESSION['username']) && isset($_SESSION['password'])){
header("Location: members.php");
}
?>
<?php include("includes.php");?>
<HTML>HTML_CONTENT</HTML>
答案 0 :(得分:0)
这些警告说所有mysql_*
函数都已弃用,您不应再使用它们了。如果您不希望显示警告,则需要在使用这些功能之前移动错误报告设置。现在你在error_reporting (E_ALL ^ E_NOTICE);
的顶部有includes.php
,这是被调用的最后一件事。您应将其移至config.php
的顶部。此外,您现在使用错误设置显示除通知之外的所有错误,因此仍会显示警告。如果要隐藏警告和/或弃用的错误条目,则需要将其更改为:
error_reporting(E_ERROR);
另外你应该改变这些行,你不需要引号:
//$conn = mysql_connect("".$hostname."","".$data_username."","".$data_password."");
//mysql_select_db("".$data_basename."") or die(mysql_error());
$conn = mysql_connect($hostname,$data_username,$data_password);
mysql_select_db($data_basename) or die(mysql_error());
此时您的脚本也非常不安全。 $username
在发送到数据库之前不会被过滤。
你还有其他地方$variable1 = "".$variable2.""
这些双引号你没有价值。你可以说$variable = $variable2;