404 error na het toevoegen van een lus
kaspar - 15/05/2010 10:32
Nieuw lid
Hallo allemaal, ik gebruik de volgende code:
toevoegen.php
<html>
<head>
<title>Leonardo Da Vinci</title>
<link rel="stylesheet" href="basis.css" type="text/css">
</head>
<body>
<div id="great_div">
<img src="DaVinci.jpg" id="header">
<form method="GET" action="search.php">
<input type="text" name="search" id="search_text" style="text-align: center">
<input type="submit" value="ZOEK" id="search_submit" style="text-align: center">
</form>
<?php
$naam = $_POST["naam"];
$editor = $_POST["editor"];
$date = date('Y-m-d');
$time = date('H:i:s');
$post = $_POST["post"];
if file_exists($naam . '.html') == true && !isset($_POST["submitknopja"] && !isset($_POST["submitknopnee"])) {
?>
Wilt u het oude artikel overschrijven?<br><br>
<form action="toevoegen.php">
<input type="submit" name="submitknopja" value="ja">
<input type="submit" name="submitknopnee" value="nee">
<input type="hidden" name="naam" value="<?php echo $naam ?>">
<input type="hidden" name="editor" value="<?php echo $editor ?>">
<input type="hidden" name="post" value="<?php echo $post ?>">
</form>
<?php
} elseif file_exists($naam . '.html') == true && isset($_POST["submitknopnee"]) {
echo 'Ga terug naar de <a href="index.php">index</a>!';
} elseif file_exists($naam . '.html') == true && isset($_POST["submitknopja"]) {
write = 1;
} else {
write = 1;
}
if write==1 {
$Name = "Leonardo Da Vinci";
$email = "leonardodavinci@knome.nl";
$recipient = "xxx";
$mail_body = 'Er is een nieuwe post op http://knome.nl/leonardodavinci gezet met de titel ' . $naam . '.
Leonardo Da Vinci';
$subject = "Nieuwe post op knome.nl/leonardodavinci";
$header = "From: ". $Name . " <" . $email . ">\r\n";
mail($recipient, $subject, $mail_body, $header);
$Name = "Leonardo Da Vinci";
$email = "leonardodavinci@knome.nl";
$recipient = "xxx";
$mail_body = 'Er is een nieuwe post op http://knome.nl/leonardodavinci gezet met de titel ' . $naam . '.
Leonardo Da Vinci';
$subject = "Nieuwe post op knome.nl/leonardodavinci";
$header = "From: ". $Name . " <" . $email . ">\r\n";
mail($recipient, $subject, $mail_body, $header);
$bestandsnaam = $naam . ".html";
$filehandle = fopen($bestandsnaam, "w");
fwrite($filehandle, "<font color=\"#000000\"><b>$naam</b><br>\n\n<u>$editor</u><br><br>\n\n$post\n\n<br><br>$date $time");
fclose($filehandle);
$bestandsnaam = "links.html";
$filehandle = fopen($bestandsnaam, "a");
fwrite($filehandle, "<tr><td><a href=\"$naam.html\" target=\"_blank\"><b>$naam</b></a></td><td>$editor</td><td>$date $time</td></tr>\n");
fclose($filehandle);
?><br><br>Uw nieuwe post is toegevoegd! Ga terug naar de <a href="index.php">index</a> om hem te bekijken!
<?php
} else {
}
?>
</div>
</body>
</html>
<html>
<head>
<title>Leonardo Da Vinci</title>
<link rel="stylesheet" href="basis.css" type="text/css">
</head>
<body>
<div id="great_div">
<img src="DaVinci.jpg" id="header">
<form method="GET" action="search.php">
<input type="text" name="search" id="search_text" style="text-align: center">
<input type="submit" value="ZOEK" id="search_submit" style="text-align: center">
</form>
<?php
$naam = $_POST [ "naam" ] ;
$editor = $_POST [ "editor" ] ;
$post = $_POST [ "post" ] ;
if file_exists ( $naam . '.html' ) == true && ! isset ( $_POST [ "submitknopja" ] && ! isset ( $_POST [ "submitknopnee" ] ) ) {
?>
Wilt u het oude artikel overschrijven?<br><br>
<form action="toevoegen.php">
<input type="submit" name="submitknopja" value="ja">
<input type="submit" name="submitknopnee" value="nee">
<input type="hidden" name="naam" value="
<?php echo $naam ?> ">
<input type="hidden" name="editor" value="
<?php echo $editor ?> ">
<input type="hidden" name="post" value="
<?php echo $post ?> ">
</form>
<?php
} elseif file_exists ( $naam . '.html' ) == true && isset ( $_POST [ "submitknopnee" ] ) {
echo 'Ga terug naar de <a href="index.php">index</a>!' ;
} elseif file_exists ( $naam . '.html' ) == true && isset ( $_POST [ "submitknopja" ] ) {
write = 1 ;
} else {
write = 1 ;
}
if write== 1 {
$Name = "Leonardo Da Vinci" ;
$email = "leonardodavinci@knome.nl" ;
$recipient = "xxx" ;
$mail_body = 'Er is een nieuwe post op http://knome.nl/leonardodavinci gezet met de titel ' . $naam . '.
Leonardo Da Vinci' ;
$subject = "Nieuwe post op knome.nl/leonardodavinci" ;
$header = "From: " . $Name . " <" . $email . ">\r \n " ;
mail ( $recipient , $subject , $mail_body , $header ) ; $Name = "Leonardo Da Vinci" ;
$email = "leonardodavinci@knome.nl" ;
$recipient = "xxx" ;
$mail_body = 'Er is een nieuwe post op http://knome.nl/leonardodavinci gezet met de titel ' . $naam . '.
Leonardo Da Vinci' ;
$subject = "Nieuwe post op knome.nl/leonardodavinci" ;
$header = "From: " . $Name . " <" . $email . ">\r \n " ;
mail ( $recipient , $subject , $mail_body , $header ) ;
$bestandsnaam = $naam . ".html" ;
$filehandle = fopen ( $bestandsnaam , "w" ) ; fwrite ( $filehandle , "<font color=\" #000000\" ><b>$naam </b><br>\n \n <u>$editor </u><br><br>\n \n $post \n \n <br><br>$date $time " ) ;
$bestandsnaam = "links.html" ;
$filehandle = fopen ( $bestandsnaam , "a" ) ; fwrite ( $filehandle , "<tr><td><a href=\" $naam .html\" target=\" _blank\" ><b>$naam </b></a></td><td>$editor </td><td>$date $time </td></tr>\n " ) ;
?> <br><br>Uw nieuwe post is toegevoegd! Ga terug naar de <a href="index.php">index</a> om hem te bekijken!
<?php
} else {
}
?>
</div>
</body>
</html>
het zou zo moeten werken dat wanneer het bestand in $naam al bestaat, hij vraagt of je het wil overschrijven. Als je ja antwoord, gaat hij dat doen (dan staat write=1) en als je nee antwoord krijg je een standaardtekstje.
Als het bestand nog niet bestaat, staat write=1, en schrijft hij het bestand dus.
Het schrijven en de emails werken, maar ik heb de if-lus toegevoegd en nu geeft hij een 404-error!!??
7 antwoorden
Gesponsorde links
MiST - 15/05/2010 10:39
Lid
Waarom heeft de write variabele geen dollar sign? ($write)
Vind ik maar louche....
kaspar - 16/05/2010 13:50 (laatste wijziging 16/05/2010 13:52)
Nieuw lid
Oke, bedankt. Ik werk veel met JavaScript, dus vandaar. Ik heb het verandert, de code ziet er nu als volgt uit (ik heb ook nog wat andere dingen verandert):
<html>
<head>
<title>Leonardo Da Vinci</title>
<link rel="stylesheet" href="basis.css" type="text/css">
</head>
<body>
<div id="great_div">
<img src="DaVinci.jpg" id="header">
<form method="GET" action="search.php">
<input type="text" name="search" id="search_text" style="text-align: center">
<input type="submit" value="ZOEK" id="search_submit" style="text-align: center">
</form>
<!-- vanaf hier heb ik nieuw toegevoegd //-->
<?php
$naam = $_POST["naam"];
$editor = $_POST["editor"];
$date = date('Y-m-d');
$time = date('H:i:s');
$post = $_POST["post"];
if file_exists($naam . '.html') == true && !isset($_POST["submitknopja"] && !isset($_POST["submitknopnee"])) {
?>
Wilt u het oude artikel overschrijven?<br><br>
<form action="toevoegen.php">
<input type="submit" name="submitknopja" value="ja">
<input type="submit" name="submitknopnee" value="nee">
<?php
echo '<input type="hidden" name="naam" value="'.$naam.'">';
echo '<input type="hidden" name="editor" value="'.$editor.'">';
echo '<input type="hidden" name="post" value="'.$post.'">';
?></form>
<?php
} elseif file_exists($naam . '.html') == true && isset($_POST["submitknopnee"]) {
echo 'Ga terug naar de <a href="index.php">index</a>!';
} elseif file_exists($naam . '.html') == true && isset($_POST["submitknopja"]) {
$write = 1;
} else {
$write = 1;
}
if $write==1 {
/* Dit is het oude script */
$Name = "Leonardo Da Vinci";
$email = "leonardodavinci@knome.nl";
$recipient = "camil-226@hotmail.com";
$mail_body = 'Er is een nieuwe post op http://knome.nl/leonardodavinci gezet met de titel ' . $naam . '.
Leonardo Da Vinci';
$subject = "Nieuwe post op knome.nl/leonardodavinci";
$header = "From: ". $Name . " <" . $email . ">\r\n";
mail($recipient, $subject, $mail_body, $header);
$bestandsnaam = $naam . ".html";
$filehandle = fopen($bestandsnaam, "w");
fwrite($filehandle, "<font color=\"#000000\"><b>$naam</b><br>\n\n<u>$editor</u><br><br>\n\n$post\n\n<br><br>$date $time");
fclose($filehandle);
$bestandsnaam = "links.html";
$filehandle = fopen($bestandsnaam, "a");
fwrite($filehandle, "<tr><td><a href=\"$naam.html\" target=\"_blank\"><b>$naam</b></a></td><td>$editor</td><td>$date $time</td></tr>\n");
fclose($filehandle);
?><br><br>Uw nieuwe post is toegevoegd! Ga terug naar de <a href="index.php">index</a> om hem te bekijken!
<?php
} else {
/* nog die nieuwe if-lus afsluiten */
}
?>
</div>
</body>
</html>
<html>
<head>
<title>Leonardo Da Vinci</title>
<link rel="stylesheet" href="basis.css" type="text/css">
</head>
<body>
<div id="great_div">
<img src="DaVinci.jpg" id="header">
<form method="GET" action="search.php">
<input type="text" name="search" id="search_text" style="text-align: center">
<input type="submit" value="ZOEK" id="search_submit" style="text-align: center">
</form>
<!-- vanaf hier heb ik nieuw toegevoegd //-->
<?php
$naam = $_POST [ "naam" ] ;
$editor = $_POST [ "editor" ] ;
$post = $_POST [ "post" ] ;
if file_exists ( $naam . '.html' ) == true && ! isset ( $_POST [ "submitknopja" ] && ! isset ( $_POST [ "submitknopnee" ] ) ) {
?>
Wilt u het oude artikel overschrijven?<br><br>
<form action="toevoegen.php">
<input type="submit" name="submitknopja" value="ja">
<input type="submit" name="submitknopnee" value="nee">
<?php
echo '<input type="hidden" name="naam" value="' . $naam . '">' ; echo '<input type="hidden" name="editor" value="' . $editor . '">' ; echo '<input type="hidden" name="post" value="' . $post . '">' ; ?> </form>
<?php
} elseif file_exists ( $naam . '.html' ) == true && isset ( $_POST [ "submitknopnee" ] ) {
echo 'Ga terug naar de <a href="index.php">index</a>!' ;
} elseif file_exists ( $naam . '.html' ) == true && isset ( $_POST [ "submitknopja" ] ) {
$write = 1 ;
} else {
$write = 1 ;
}
if $write == 1 {
/* Dit is het oude script */
$Name = "Leonardo Da Vinci" ;
$email = "leonardodavinci@knome.nl" ;
$recipient = "camil-226@hotmail.com" ;
$mail_body = 'Er is een nieuwe post op http://knome.nl/leonardodavinci gezet met de titel ' . $naam . '.
Leonardo Da Vinci' ;
$subject = "Nieuwe post op knome.nl/leonardodavinci" ;
$header = "From: " . $Name . " <" . $email . ">\r \n " ;
mail ( $recipient , $subject , $mail_body , $header ) ;
$bestandsnaam = $naam . ".html" ;
$filehandle = fopen ( $bestandsnaam , "w" ) ; fwrite ( $filehandle , "<font color=\" #000000\" ><b>$naam </b><br>\n \n <u>$editor </u><br><br>\n \n $post \n \n <br><br>$date $time " ) ;
$bestandsnaam = "links.html" ;
$filehandle = fopen ( $bestandsnaam , "a" ) ; fwrite ( $filehandle , "<tr><td><a href=\" $naam .html\" target=\" _blank\" ><b>$naam </b></a></td><td>$editor </td><td>$date $time </td></tr>\n " ) ;
?> <br><br>Uw nieuwe post is toegevoegd! Ga terug naar de <a href="index.php">index</a> om hem te bekijken!
<?php
} else {
/* nog die nieuwe if-lus afsluiten */
}
?>
</div>
</body>
</html>
Het probleem met de 404 blijft bestaan.
Als je wilt kun je het zelf bekijken op www.knome.nl/leonardodavinci
Als je in het zoekbalkje "leodvin" intypt kun je een artikel toevoegen. Als je dan op "Voeg je nieuwe post toe!" klikt, kom je bij dit script.
Filip - 16/05/2010 15:35
IRC guru
Ik krijg gewoon een lege page.. Misschien handig om even je error reporting en display errors aan te zetten.. Dan zou je misschien wel eens de fout kunnen zien..
lolll - 16/05/2010 16:43
Lid
Ik krijg een 500 fout, bij meer informatie staat er :
Citaat:
Deze fout (HTTP-fout 500 - Interne serverfout) houdt in dat de bezochte website een serverprobleem heeft waardoor de webpagina niet goed kan worden weergegeven.
Ook staat er dat de website hoogst waarschijnlijk een programmeerfout bevat.
Zelf zie ik nu nog niet direct een foutje staan, ik zal de code nog eens verder uitpluizen.
kaspar - 19/05/2010 15:34
Nieuw lid
Oke... bedankt
Ik heb dit probleem namelijk al eerder gehad. Mijn server staat bij Domeinflits, ik weet niet of daar problemen bekend zijn??
Arphetic - 19/05/2010 21:33
Nieuw lid
Je moet zowel je accolades, als je haakjes even controleren want volgens mij zit het niet helemaal goed?!
BOONBE - 20/05/2010 09:38
Nieuw lid
Hallo,
Persoonlijk gebruik ik single quotes (') en double quotes (") omgekeerd.
Maw echo 'some text="value"' wordt bij mij echo "some text='value'", dit voorkomt dat ik \" dit soort combinaties niet hoef te gebruiken, verder vindt ik dat je nogal veel switcht tussen php en html. Persoonlijk schrijf ik alles in PHP ook hier voorkom je dat je ergens in de mist gaat.
In de volgende statement heb je een fout bij isset($_POST["submitknopja"] <== ) vergeten
if file_exists($naam . '.html') == true && !isset($_POST["submitknopja"] && !isset($_POST["submitknopnee"])) {
Verder is het ook een goed idee om alle if-statement te beginnen met ( en te eindigen met ) voor de {
Gesponsorde links
Dit onderwerp is gesloten .