Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法让PHP脚本工作,它显示为一个空白页_Php_Mysql_Web - Fatal编程技术网

Can';无法让PHP脚本工作,它显示为一个空白页

Can';无法让PHP脚本工作,它显示为一个空白页,php,mysql,web,Php,Mysql,Web,以下代码创建了一个简单的用户配置文件,其中包含帖子列表: <html> <head> <title>Welcome ! </title> </head> <body> <?php $dbcon = mysql_connect('localhost','user','password'); if(!$dbcon) { die('<p>'.'Unable to connect to database serv

以下代码创建了一个简单的用户配置文件,其中包含帖子列表:

<html>
<head>
<title>Welcome ! </title>
</head>
<body>

<?php
$dbcon = mysql_connect('localhost','user','password');
if(!$dbcon)
{
die('<p>'.'Unable to connect to database server'.mysql_error().'</p>');
}
?>

<?php
//select the database
mysql_select_db("rough_site",$dbcon);
//add the user 
$user_name = mysql_real_escape_string($_POST['user_name'];
$user_password =mysql_real_escape_string($_POST['user_password'];
$user_mail=mysql_real_escape_string($_POST['user_mail'];
$adduser= "INSERT INTO user (user_name, user_password, user_mail) VALUES ($user_name, 
$user_password, $user_mail)";
$confirmUser = mysql_query($adduser);
if(!$confirmUser) 
{
die("Sorry , but you could not be added as a member of this site . ");
}
?>


<p align="center" ><h2><em>Latest posts by you </em></h2></p><br/>
<?php
// show the latest posts by this user 
$user_name = $_POST['user_name'];
$latestposts = "SELECT post_id , post_title  from posts ,users where  
posts.user_name=users.$user_name " ;
$showlatestposts= mysql_query($latestposts);

?>

<blockquote>
<?php
while($row=mysql_fetch_array($showlatestposts) )
{
echo '<p>'. '<a href = "showpost.php?post_id='. $row['post_id'].'">'.         
    $row['post_title'].'</a></p><br/>' ;
}
?>
</blockquote>


</body>
</html>

欢迎

将此项放在文件的顶部:

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


我猜有一个错误没有告诉您,这将启用错误报告。

您检查了日志文件吗?打开错误报告(E_ALL)或可能添加骰子(mysql_error());在你的询问中。。。这可能有助于了解问题所在

如果你插入到

应该是

在用户中插入值(..)且不设置


SET用于更新

插入查询的语法不正确,然后调用die()函数,这将导致一个空白页

修正了这个问题,你应该会很好

更新和问题的原因: 你有:

$user_name = mysql_real_escape_string($_POST['user_name'];
$user_password =mysql_real_escape_string($_POST['user_password'];
$user_mail=mysql_real_escape_string($_POST['user_mail'];
应该是:

$user_name = mysql_real_escape_string($_POST['user_name']);
$user_password =mysql_real_escape_string($_POST['user_password']);
$user_mail=mysql_real_escape_string($_POST['user_mail']);

您没有用括号来关闭函数,要从带有命名键的数组中插入值到字符串,并使用
'
标记,必须将其括在
{}
-(复杂(卷曲)语法)中 那么比如说,

$adduser= "INSERT INTO users set 
user_name=$_POST['user_name'],
user_password=$_POST['user_password'],
user_mail =$_POST['user_mail']";
一定是

$adduser= "INSERT INTO users set 
user_name=\"{$_POST['user_name']}\",
user_password=\"{$_POST['user_password']}\",
user_mail =\"{$_POST['user_mail']}\"";
在浏览器中,如果您转到“查看源代码”,您可能会看到错误文本,它可能由于无效的html而从正常视图中隐藏

可能是这里的单引号导致了语法错误

$adduser= "INSERT INTO users set 
user_name=$_POST['user_name'],
user_password=$_POST['user_password'],
user_mail =$_POST['user_mail']";
请改为尝试此操作(请参阅[]中的单引号已删除,因为整个字符串已被引号括起,因此不需要引号)

$adduser= "INSERT INTO users set 
user_name='$_POST[user_name]',
user_password='$_POST[user_password]',
user_mail = '$_POST[user_mail]'";
正如其他人建议的那样,您应该清理sql PARM 像这样的

$user_name = mysql_escape_string($_POST['user_name']);
$user_password = mysql_escape_string($_POST['user_password']);
$user_mail = mysql_escape_string($_POST['user_mail']);

$adduser= "INSERT INTO users set 
user_name='$user_name',
user_password='$user_password',
user_mail = '$user_mail'";


读取错误日志和/或激活错误报告。是否打开了调试?空白页意味着有一个错误,我认为它来自您使用的多行字符串,这不是PHPNOT的工作原理,这是您没有看到任何原因的原因,但您是否试图插入新记录或更新现有记录?“插入用户集…”查询?[Sun Aug 07 10:49:24 2011][error][client 127.0.0.1]PHP解析错误:语法错误,意外的T_封装的_和_空格,在第20行的/home/expander/ADBMS/htdocs/profile.PHP中需要T_字符串或T_变量或T_NUM_字符串,referer:I'T undertsnad.@kinakuta mysql支持插入集格式,没有问题。die函数应该显示他传递的字符串,而不是空白的p年龄。我修复了查询,但仍然是空白页面。但是其他php文件工作正常:?有关插入集语法,请参阅此链接。该页面是您的浏览器的空白页面还是根本不输出html?请检查源代码code@Joey,hi有一个语法错误,他在上面的评论中写道-你确定吗?
SET
不仅仅用于更新!有关详细信息,请参阅此链接插入集语法。哇,我还没有想到该集也是用于插入的…不管怎样…谁是这样编码的?我在正文中添加了该语法,高于所有其他php,但我得到了一个空白页。apache正在工作,因为我可以看到其他php文件:?我收到“抱歉,无法添加”的死亡消息如果我将查询更改为您给定的。那么,您现在在SQL查询中有一个错误:)请尝试
echo mysql_error()或者只是将数据括在另一个
\“\”
括号中(
{}
),但仍然会出现以下错误:警告:mysql\u fetch\u array()希望参数1是resource,布尔值在第55行的/home/expander/ADBMS/htdocs/profile.php中给出。我尚未在数据库中添加任何帖子。请尝试将
{}
括号和
\“\”
添加到您的
SELECT
语句中,以-可能未正确解析,无法识别
中的
$user\u name
。所以
$latestposts=“从帖子中选择帖子id、帖子标题、帖子所在的用户。user\u name=用户。$user\u name”
变成
$latestposts=“从帖子中选择帖子id、帖子标题、帖子所在的用户。user\u name=\“{$user\u name}\”