0

2ページ作りました

update.php
edit.php

edit.php から開始するので、ここに edit.php のスクリプトを示します。

<?php
session_start();
$id = $_SESSION["id"];
$username = $_POST["username"];
$fname = $_POST["fname"];
$password = $_POST["password"];
$email = $_POST["email"];

mysql_connect('mysql13.000webhost.com', 'a2670376_Users', 'Password') or     die(mysql_error());
echo "MySQL Connection Established! <br>";

mysql_select_db("a2670376_Pass") or die(mysql_error());
echo "Database Found! <br>";

$query = "UPDATE members SET username = '$username', fname = '$fname', 
password = '$password' WHERE id = '$id'";

$res = mysql_query($query);

if ($res)
echo "<p>Record Updated<p>";
else
echo "Problem updating record. MySQL Error: " . mysql_error();
?>

<form action="update.php" method="post">
<input type="hidden" name="id" value="<?=$id;?>">
ScreenName:<br> <input type='text' name='username' id='username' maxlength='25'   style='width:247px' name="username" value="<?=$username;?>"/><br>
FullName:<br> <input type='text' name='fname' id='fname' maxlength='20' style='width:248px'     name="ud_img" value="<?=$fname;?>"/><br>
Email:<br> <input type='text' name='email' id='email' maxlength='50' style='width:250px'    name="ud_img" value="<?=$email;?>"/><br>
Password:<br> <input type='text' name='password' id='password' maxlength='25'     style='width:251px' value="<?=$password;?>"/><br>
<input type="Submit">
</form>

今ここに私が大きな問題を抱えているupdate.phpページがあります

<?php
session_start();
mysql_connect('mysql13.000webhost.com', 'a2670376_Users', 'Password') or   die(mysql_error());
mysql_select_db("a2670376_Pass") or die(mysql_error());

$id = (int)$_SESSION["id"];

$username = mysql_real_escape_string($_POST["username"]);
$fname = mysql_real_escape_string($_POST["fname"]);
$email = mysql_real_escape_string($_POST["email"]);
$password = mysql_real_escape_string($_POST["password"]);


$query="UPDATE members
SET username = '$username', fname = '$fname', email = '$email', password = '$password'
WHERE id='$id'";


mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=1){
echo "<p>($id) Record Updated<p>";
}else{
echo "<p>($id) Not Updated<p>";
}
?> 

edit.php でアカウント「test」を編集するためのフォームに入力します。フォームに入力したら、フォームに入力したら [送信] ボタンをクリックすると、update.php に移動し、これが返されます。

(0) Not Updated  

(0) <= id of user logged in

Not Updated <= MySql Error from  


mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=1){

ログインしているユーザーを更新したいのですが、このスクリプトで間違っていなければ、

  $id = (int)$_SESSION["id"];

ログインしている人のIDでユーザーを更新します

しかし、更新されていません。テーブルは影響を受けていないと言っています

これが私のMySQLデータベースの写真です。ここをクリックしてください http://i50.tinypic.com/21juqfq.png

これが解決策を見つけるのに役立つ可能性がある場合、さらに2つのファイルdelete.phpとdelete_ac.phpがあり、SQLデータベースからユーザーを削除でき、ユーザーIDが表示され、機能します。このスクリプトにはバグはまったくありません以下のスクリプトについて提案しないでください 最初に delete.php

    <?php

$host="mysql13.000webhost.com"; // Host name 
$username="a2670376_Users"; // Mysql username 
$password="PASSWORD"; // Mysql password 
$db_name="a2670376_Pass"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// select record from mysql 
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>

<table border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td colspan="8" style="bgcolor: #FFFFFF"><strong><img src="http://i47.tinypic.com/u6ihk.png" height="30" widht="30">Delete data in mysql</strong> </td>
</tr>

<tr>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>UserName</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>FullName</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Password</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Date</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Ip</strong></td>
<td align="center" bgcolor="#FFFFFF">&nbsp;</td>
</tr>

<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['fname']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['password']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['date']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['ip']; ?></td>
<td bgcolor="#FFFFFF"><a href="delete_ac.php?id=<? echo $rows['id']; ?>">delete</a></td>
</tr>

<?php
// close while loop 
}
?>

</table>

<?php
// close connection; 
sql_close();
?>

そして今delete_ac.php

<table width="500" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td colspan="8" bgcolor="#FFFFFF"><strong><img src="http://t2.gstatic.com/images?           q=tbn:ANd9GcS_kwpNSSt3UuBHxq5zhkJQAlPnaXyePaw07R652f4StmvIQAAf6g" height="30"     widht="30">Removal Of Account</strong> </td>
</tr>

<tr>
<td align="center" bgcolor="#FFFFFF">
<?php

$host="mysql13.000webhost.com"; // Host name 
$username="a2670376_Users"; // Mysql username 
$password="javascript00"; // Mysql password 
$db_name="a2670376_Pass"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar 
$id=$_GET['id'];

// Delete data in mysql from row that has this id 
$sql="DELETE FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);

// if successfully deleted
if($result){
echo "Deleted Successfully";
echo "<BR>";
echo "<a href='delete.php'>Back to main page</a>";
}

else {
echo "ERROR";
}
?> 

<?php
// close connection 
mysql_close();
?>
</td>
</tr>
</table>
4

4 に答える 4

1

以下のクエリを試して、ここに出力を投稿してください。また、phpmyadmin で同じエコー クエリを実行して、何が起こったかを確認します。

echo $query="UPDATE members
SET username = '$username', fname = '$fname', email = '$email', password = '$password'
WHERE id=$id";

あなたのリンクから、誰でも編集ページに直接アクセスできるようですが、それは間違っています。

ユーザーがログインしている場合、そのユーザーのみが自分のプロファイルを更新できるという条件を追加する必要があります。

于 2012-11-21T04:48:44.660 に答える
0

$sqlshow =@ mysqli_query($con,"SELECT `id`, `Registration_No`, `First_Name`, `Middle_Name`, `Sir_Name`, `Sex`, `Birth_Day`, `Email`, `Address`, `Phone` FROM `cdtistudent` WHERE id=40"); while($row = @mysqli_fetch_object($sqlshow)) {

update.php page

if(isset($_POST["update"])){
	
	$Registration = $_POST['Registration'];
	$First_Name = $_POST['First'];
	$Middle_Name = $_POST['Middle'];
	$Sir_Name = $_POST['Sir'];
	$Sex = $_POST['Sex'];
	$Birth_Day = $_POST['Birth'];
	$Email = $_POST['Email'];
	$Address = $_POST['Address'];
	$Phone=$_POST['Phone'];
	$id=$_POST['id'];
	
	
	$sqlupdate =mysqli_query($con,"UPDATE  cdtistudent
	SET 
	Registration_No='$Registration',
	First_Name='$First_Name',
	Middle_Name='$Middle_Name',
	Sir_Name='$Sir_Name',
	Sex='$Sex',
	Birth_Day='$Birth_Day',
	Email='$Email',
	Address='$Address',
	Phone='$Phone'
	WHERE id='$id'");
	
	if($sqlupdate  === false){
			
			die("".mysqli_error($con));

	
}}

UPDATE
SET =[ cdtistudentvalue id-1]、Registration_No=[value-2]
First_Name=[value-3]、Middle_Name=[value-4]、Sir_Name=[value-5]、
Sex=[value-6]、Birth_Day=[value -7]、Email=[値-8]、Address=[値-9]、Phone=[値-10] WHERE id=?;

そしてedit.phpページ

$sqlshow =@ mysqli_query($con,"SELECT `id`, `Registration_No`, `First_Name`, `Middle_Name`, `Sir_Name`, `Sex`, `Birth_Day`, `Email`, `Address`, `Phone` FROM `cdtistudent`
                WHERE id=40");
	
	while($row = @mysqli_fetch_object($sqlshow))
	{

于 2016-11-14T22:42:09.193 に答える
0

現在、あなたの $id は null です。(int)$id は 0 です。したがって、WHERE id=$id を更新しようとすると、基本的に WHERE id=0 と言っています。id が自動インクリメント整数の場合、id=0 はなく、何も更新されません。 . 何かを入れて $_SESSION['id'] を作成する必要があります。$_SESSION['id'] = XXXX;

于 2012-11-21T04:36:23.990 に答える
0

$id が実際に空ではなく何らかの値に設定されているかどうかを edit.php で確認できますか? IDがセッションに保存されていない可能性があります

于 2012-11-21T04:35:42.870 に答える