SO。私はこのWordpressサイトで働いています。それは私を信じているので、とても迷惑です。 PHPとHTMLのコンボです。フォームが提出されるまで、すべてがうまく表示されます。ページがリフレッシュされると、同じページ(同じ正確なURLを持つ)にロードされますが、404エラーが発生します。404に送信するHTML/PHPフォーム
<center>
<code>
[insert_php]
// Info to connect to the Wishlist database
$servername = "eggcavity.com";
$dbusername = "******";
$password = "*******";
$dbname = "EggcavityTravelIndex";
try {
// To connect to the database please
$conn = new mysqli($servername, $dbusername, $password, $dbname);
if ($conn->connect_error) {
die('Connect Error (' . $conn->connect_errno . ') ' . $conn->connect_error);
}
// Get current user's username
$current_user = wp_get_current_user();
$username = $current_user->user_login;
$allowed_roles = array('moderator', 'administrator');
if ($username == "") {
// If person is not logged in
echo "Please login to see if you have moderator privileges.";
} else if (array_intersect($allowed_roles, $current_user->roles)) {
// If person is logged in and has moderator privileges, show the page
$page = 1;
if($_SERVER['QUERY_STRING'] != ""){
$page = $_SERVER['QUERY_STRING'];
}
if(isset($_POST['submit'])){
$ids = $_POST['ids'];
$theCount = 0;
// Prepare and bind the udpate statement
$sql2 = "UPDATE Travels SET Name = ?, Picture = ?, Price = ?, " .
"Description = ?, Rarity = ?, Status = ? WHERE ID = ?";
$stmt2 = $conn->prepare($sql2);
$stmt2->bind_param('ssssssi', $name, $picture, $price, $description, $rarity, $status, $id);
foreach($ids as $id){
$namecode = $id . "name";
$picturecode = $id . "picture";
$pricecode = $id . "price";
$raritycode = $id . "rarity";
$descriptioncode = $id . "description";
$statuscode = $id . "status";
$name = $_POST[$namecode];
$picture = $_POST[$picturecode];
$price = $_POST[$pricecode];
$rarity = $_POST[$raritycode];
$description = $_POST[$descriptioncode];
$status = $_POST[$statuscode];
$stmt2->execute();
}
if(isset($_POST['delete'])) {
$delete=!empty($_POST['delete']) ? $_POST['delete'] : false;
if($delete && !is_array($delete)){
$delete=explode(',',$delete);
}
foreach($delete as $id){
$sql = "DELETE FROM Travels WHERE ID = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();
$theCount++;
}
}
echo "<font size='3'>The travel database has been updated, and " . $theCount .
" travels(s) has/have been removed.";
} else {
// Just display the form
$start = 0;
$stop = 100;
if ($page == "2") {
$start = 100;
$stop = 100;
} else if ($page == "3") {
$start = 200;
$stop = 100;
} else if ($page == "4") {
$start = 300;
$stop = 100;
} else if ($page == "5") {
$start = 400;
$stop = 100;
} else if ($page == "6") {
$start = 500;
$stop = 100;
} else if ($page == "7") {
$start = 600;
$stop = 100;
} else if ($page == "8") {
$start = 700;
$stop = 100;
} else if ($page == "9") {
$start = 800;
$stop = 100;
} else if ($page == "10") {
$start = 900;
$stop = 100;
} else if ($page == "11") {
$start = 1000;
$stop = 100;
} else if ($page == "12") {
$start = 1100;
$stop = 100;
} else if ($page == "13") {
$start = 1200;
$stop = 100;
} else if ($page == "14") {
$start = 1300;
$stop = 100;
} else if ($page == "15") {
$start = 1400;
$stop = 100;
}
$sql = 'SELECT * FROM Travels LIMIT ' . $start . ',' . $stop;
$result = mysqli_query($conn, $sql);
$sql11 = 'SELECT * FROM Travels';
$result11 = mysqli_query($conn, $sql11);
$numtravels = mysqli_num_rows($result11);
if ($numtravels > 0) {
$numpages = ceil($numtravels/100);
$cnt = 1;
echo 'Pages: ';
while ($cnt <= $numpages){
echo '<a style="border-style:solid;border-radius:5px;border-width:1px;padding:2px;" href="?' . $cnt . '">'
. $cnt . '</a> ';
$cnt++;
}
echo '<br><br>';
$begin = $start + 1;
$end = $begin + 99;
echo '<form method="POST"><table style="border-collapse: collapse";>' .
'Travels ' . $begin . ' to ' . $end;
while($row = $result->fetch_assoc()) {
$name = $row["Name"];
$id = $row["ID"];
$picture = $row["Picture"];
$price = $row["Price"];
$rarity= $row["Rarity"];
$description = $row["Description"];
$status= $row["Status"];
echo '<tr>';
echo '<td rowspan="2" style="border:1px solid gray;text-align:center;"><br><img src="' . $picture . '"></td>';
echo '<td style="border:1px solid gray;text-align:center;">' .
'<strong>Name: </strong><input type="text" name="' . $id . 'name" value="' . $name . '"></td>';
echo '<td style="border:1px solid gray;text-align:center;">' .
'<strong>Image URL: </strong><input type="text" name="' . $id . 'picture" value="' . $picture . '"></td>';
echo '<td style="border:1px solid gray;text-align:center;">' .
'<strong>Price: </strong><input type="text" name="' . $id . 'price" value="' . $price . '"></td>';
echo '<td style="border:1px solid gray;text-align:center;">' .
'<strong>Rarity: </strong><input type="text" name="' . $id . 'rarity" value="' . $rarity . '"></td>';
echo '</tr>';
echo '<td colspan="2" style="border:1px solid gray;text-align:center;">' .
'<strong>Description: </strong><br><input style="width:300px" type="text" name="' . $id . 'description" value="' . $description . '"></td>';
echo '<td style="border:1px solid gray;text-align:center;"><strong>Status: </strong><br><select name="' . $id . 'status">' .
'<option value ="' . $status . '" selected>' . $status . '</option>';
if ($status == "Available") {
echo '<option value ="Retired">Retired</option>';
} else if ($status == "Retired") {
echo '<option value ="Available">Available</option>';
} else if ($status == "") {
echo '<option value ="Retired">Retired</option>';
echo '<option value ="Available">Available</option>';
}
echo '</select></td>';
echo '<td style="border:1px solid gray;text-align:center;">' . '<strong>Delete</strong><br>' .
'<input type="checkbox" name="delete[]" value="' . $id . '"></td>';
echo '</tr>';
}
echo '</table><br><input name="submit" type="submit" id="submit" value="Update">' .
'</form><br><br>';
} else {
echo "<br>There are no travels in the database.";
}
}
} else {
// If person is logged in but does not have mod privileges
echo "Sorry, you're not a moderator!";
}
} catch (mysqli_sql_exception $e) {
throw $e;
}
// Close the connection to the database
$conn->close();
[/insert_php]
</code>
</center>
コードは、私が働いているページによく似ています。ここに示すように:
<center>
<code>
[insert_php]
// Info to connect to the Wishlist database
$servername = "eggcavity.com";
$dbusername = "********";
$password = "*******";
$dbname = "EggcavityTravelIndex";
try {
// To connect to the database please
$conn = new mysqli($servername, $dbusername, $password, $dbname);
if ($conn->connect_error) {
die('Connect Error (' . $conn->connect_errno . ') ' . $conn->connect_error);
}
// Get current user's username
$current_user = wp_get_current_user();
$username = $current_user->user_login;
if ($username == ""){
echo "Please login to use wishlist feature.";
} else {
echo "<font size ='3'><br>Please click <strong>" .
"<a href = 'http://eggcavity.com/add-wishlist'>here</a></strong>" .
" to add creatures to your wishlist.<br><br>Please click <strong>" .
"<a href='http://eggcavity.com/wishlists'>here</a></strong> to view your wishlist.<br>" .
"<br>At the moment when you enter notes you cannot view them on the edit page." .
"<br>Please go to the view wishlist page to see your notes.<br><br></font>";
$page = 1;
if($_SERVER['QUERY_STRING'] != ""){
$page = $_SERVER['QUERY_STRING'];
}
if(isset($_POST['submit'])){
$ids = $_POST['ids'];
$theCount = 0;
// Prepare and bind the udpate statement
$sql2 = "UPDATE Wishlists SET Picture = ?, Stage = ?, Gender = ?, " .
"Frozen = ?, Notes= ? WHERE ID = ?";
$stmt2 = $conn->prepare($sql2);
$stmt2->bind_param('sssssi', $picture, $stage, $gender, $frozen, $notes, $id);
foreach($ids as $id){
$stagecode = $id . "stage";
$gendercode = $id . "gender";
$frozencode = $id . "frozen";
$notescode = $id . "notes";
$namecode = $id . "creature";
$stage = $_POST[$stagecode];
$Stage = $stage;
$gender = $_POST[$gendercode];
$frozen = $_POST[$frozencode];
$notes = $_POST[$notescode];
$name = $_POST[$namecode];
$sql1 = 'SELECT * FROM Creatures WHERE Name = "' . $name . '"';
$result = mysqli_query($conn, $sql1);
$row = $result->fetch_assoc();
$picture = $row["$stage"];
$stmt2->execute();
}
if(isset($_POST['delete'])) {
$delete=!empty($_POST['delete']) ? $_POST['delete'] : false;
if($delete && !is_array($delete)){
$delete=explode(',',$delete);
}
foreach($delete as $id){
$sql = "DELETE FROM Wishlists WHERE ID = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();
$theCount++;
}
}
echo "<font size='3'>Your wishlist has been updated, and " . $theCount .
" creature(s) has/have been removed from your wishlist.<br><br>Please click <u>" .
"<strong><a href='http://eggcavity.com/edit-wishlist'>here</a></u></strong>" .
" to return to the edit page.</href><br><br>";
} else {
// Just display the form
$start = 0;
$stop = 100;
if ($page == "2") {
$start = 100;
$stop = 100;
} else if ($page == "3") {
$start = 200;
$stop = 100;
} else if ($page == "4") {
$start = 300;
$stop = 100;
} else if ($page == "5") {
$start = 400;
$stop = 100;
} else if ($page == "6") {
$start = 500;
$stop = 100;
} else if ($page == "7") {
$start = 600;
$stop = 100;
} else if ($page == "8") {
$start = 700;
$stop = 100;
} else if ($page == "9") {
$start = 800;
$stop = 100;
} else if ($page == "10") {
$start = 900;
$stop = 100;
} else if ($page == "11") {
$start = 1000;
$stop = 100;
} else if ($page == "12") {
$start = 1100;
$stop = 100;
} else if ($page == "13") {
$start = 1200;
$stop = 100;
} else if ($page == "14") {
$start = 1300;
$stop = 100;
} else if ($page == "15") {
$start = 1400;
$stop = 100;
}
$sql = 'SELECT * FROM Wishlists WHERE Username = "' . $username .
'" ORDER BY Creature LIMIT ' . $start . ',' . $stop;
$result = mysqli_query($conn, $sql);
$sql11 = 'SELECT * FROM Wishlists WHERE Username = "' . $username . '"';
$result11 = mysqli_query($conn, $sql11);
$numcreatures = mysqli_num_rows($result11);
if ($numcreatures > 0) {
$numpages = ceil($numcreatures/100);
$cnt = 1;
echo 'Pages: ';
while ($cnt <= $numpages){
echo '<a style="border-style:solid;border-radius:5px;border-width:1px;padding:2px;" href="?' . $cnt . '">'
. $cnt . '</a> ';
$cnt++;
}
echo '<br><br>';
$begin = $start + 1;
$end = $begin + 99;
echo '<form method="POST"><table style="border-collapse: collapse";><strong>' .
'Creatures ' . $begin . ' to ' . $end .
'<tr>' .
'<td>' . $numcreatures . ' creatures</td>' .
'<td style="border:1px solid gray;text-align:center;">Creature</td>' .
'<td style="border:1px solid gray;text-align:center;">Stage</td>' .
'<td style="border:1px solid gray;text-align:center;">Gender</td>' .
'<td style="border:1px solid gray;text-align:center;">Frozen</td>' .
'</tr></strong>';
while($row = $result->fetch_assoc()) {
$creature = $row["Creature"];
$id = $row["ID"];
$picture = $row["Picture"];
$stage = $row["Stage"];
$sql3 = 'SELECT * FROM Creatures WHERE Name = "' . $creature . '"';
$result2 = mysqli_query($conn, $sql3);
$row2 = $result2->fetch_assoc();
echo '<input name="ids[]" type="hidden" value="' . $id . '">' .
'<input name="' . $id . 'creature" type="hidden" value="' . $creature . '">' .
'<tr>' .
'<td rowspan="2" style="border:1px solid gray;text-align:center;"><img src="' .
$picture . '"></td>' .
'<td style="border:1px solid gray;text-align:center;">' . $creature . '</td>' .
'<td style"border:1px solid gray;text-align:center;"><select name="' . $id .
'stage">' .
'<option value ="' . $stage . '" selected>' . $stage . '</option>' .
'<option value = "Stage1">Stage1(Egg)</option>' .
'<option value = "Stage2">Stage2</option>';
if ($row2["Stage3"] != "") {
echo '<option value = "Stage3">Stage3</option>';
}
if ($row2["Stage4"] != "") {
echo '<option value = "Stage4">Stage4</option>';
}
echo '</select></td>' .
'<td style="border:1px solid gray;text-align:center;"><select name="' . $id .
'gender">' .
'<option value ="' . $row["Gender"]. '" selected>' . $row["Gender"] . '</option>' .
'<option value = "Unspecified">Unspecified</option>' .
'<option value = "Female">Female</option>' .
'<option value = "Male">Male</option>' .
'</select></td>' .
'<td style="border:1px solid gray;text-align:center;"><select name="' . $id .
'frozen">' .
'<option value ="' . $row["Frozen"] . '" selected>' . $row["Frozen"] . '</option>' .
'<option value="Unspecified">Unspecified</option>' .
'<option value="Yes">Yes</option>' .
'<option value="No">No</option>' .
'</select></td>' .
'</tr>' .
'<tr>' .
'<td style="border:1px solid gray;text-align:center;" colspan="3">Notes: ' .
'<input type="text" name="' . $id .
'notes" value="' . $row["Notes"] .'"></td>' .
'<td style="border:1px solid gray;text-align:center;">' . 'Delete<br>' .
'<input type="checkbox" name="delete[]"
value="' . $id . '"></td>' .
'</tr>';
}
echo '</table><br><input name="submit" type="submit" id="submit" value="Update">' .
'</form><br><br>';
} else {
echo "<br>You have no creatures in your wishlist.";
}
}
}
} catch (mysqli_sql_exception $e) {
throw $e;
}
// Close the connection to the database
$conn->close();
[/insert_php]
</code>
</center>
あなたが何か原因が考えられたら、助けてください!
dbユーザー名/パスワードを公開したので、変更してください。 – mkaatman
あなたはいくつかのトリッキーなことが起こっています。答えはApache、PHP、WordPressのエラーログを調べ始める。 – mkaatman
フォームはどのようにPOSTするかを知っていますか?ページをポストしたいので、PHP_SELFを指定するアクションがあることを確認してください。 – cosmoonot