Hallo.
Ik ben sinds kort begonnen met PHP en Mysql.
Maar als ik de dingen die ik heb gemaakt in de htdocs map zet en ze probeer te openen in mijn browser(http://localhost/scriptje.php) dan krijg ik de helft van de code op mijn scherm, en niet wat het script zou moeten doen.
Ik gebruik XAMPP (Apache Friends Edition).
Dit is de code van een gastenboek die ik op internet heb gevonden.
hij staat online op: http://94.214.190.183/gastenboek/index.php
Index.php
Nieuw.php (nieuw bericht, deze pagina geeft problemen, omdat die aangeeft dat er iets mis is met MySQL als er op Toevoegen wordt geklikt).
MySQL (ik gebruik phpMyAdmin eb ik heb een nieuwe database gemaakt genaamd: gastenboek en de volgende code erin gezet):
[sql]CREATE TABLE `gastenboek` (
`bericht_id` INT NOT NULL AUTO_INCREMENT ,
`datum` DATE NOT NULL ,
`tijd` TIME NOT NULL ,
`tekst` TEXT NOT NULL ,
`naam` VARCHAR( 255 ) ,
`email` VARCHAR( 255 ) ,
`website` VARCHAR( 255 ) ,
PRIMARY KEY ( `bericht_id` ) ,[/sql]
I hoop dat jullie mij kunnen helpen
Vriendelijke groeten, Remi1995
Ik ben sinds kort begonnen met PHP en Mysql.
Maar als ik de dingen die ik heb gemaakt in de htdocs map zet en ze probeer te openen in mijn browser(http://localhost/scriptje.php) dan krijg ik de helft van de code op mijn scherm, en niet wat het script zou moeten doen.
Ik gebruik XAMPP (Apache Friends Edition).
Dit is de code van een gastenboek die ik op internet heb gevonden.
hij staat online op: http://94.214.190.183/gastenboek/index.php
Index.php
PHP:
<?php
echo "<h1>Gastenboek</h1>\n";
echo "<p><a href=\"nieuw.php\">Schrijf ook iets in het gastenboek</a></p>\n";
// MySQL-selectiequery opstellen:
$sql = 'SELECT * '; // Selecteer alle gegevens
$sql .= 'FROM `gastenboek` '; // uit de tabel 'gastenboek'
$sql .= 'ORDER BY `bericht_id` DESC '; // en sorteer ze aflopend.
// Aflopend sorteren op de datum en tijd:
// $sql .= 'ORDER BY `datum` DESC , `tijd` DESC ';
// Constanten voor mysql_connect() insluiten:
require_once('mysql_connect.inc.php');
// Databaseverbinding openen met mysql_connect():
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
// Database 'test' selecteren:
mysql_select_db("test") or die(mysql_error());
// Query uitvoeren en een resultaatset opslaan:
$resultaat = mysql_query($sql) or die(mysql_error());
// Alle records weergeven:
while ($rij = mysql_fetch_assoc($resultaat)) {
// Alinea met de datum, tijd en tekst:
echo '<p style="border-top: dotted 2px gray;">';
echo '<span style="color: gray;">[';
$datum = $rij["datum"];
// Datum eventueel converteren van YYYY-MM-DD naar DD-MM-YYYY:
if (ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $datum, $substring)) {
echo "$substring[3]-$substring[2]-$substring[1]";
} else {
echo $datum;
}
echo ' om ';
echo $rij["tijd"];
echo "]</span> ";
echo nl2br($rij["tekst"]);
echo "</p>\n";
// Alinea met de ondertekening:
echo '<p style="margin-left: 25%">';
$naam = $rij["naam"];
if ((is_null($naam)) or (strlen($naam) < 1)) {
echo "Anoniem";
} else {
echo $naam;
$emailadres = $rij["email"];
if (strlen($emailadres) >= 7) {
$emailadres = geenSpam($emailadres);
echo "<br><" . $emailadres . ">";
}
$website = $rij["website"];
if (strlen($website) >= 5) {
echo '<br><a href="http://' . $website . '">';
echo $website;
echo '</a>';
}
}
echo "</p>\n";
}
// Resultaatset vrijgeven:
mysql_free_result($resultaat);
// Databaseverbinding sluiten:
mysql_close($verbinding);
function geenSpam($string, $nadruk = FALSE)
{
if ($nadruk) {
$string = str_replace("@", " <strong>apenstaartje</strong> ", $string);
$string = str_replace(".", " <strong>punt</strong> ", $string);
} else {
$string = str_replace("@", " apenstaartje ", $string);
$string = str_replace(".", " punt ", $string);
}
return $string;
}
?>
Nieuw.php (nieuw bericht, deze pagina geeft problemen, omdat die aangeeft dat er iets mis is met MySQL als er op Toevoegen wordt geklikt).
PHP:
<?php
$melding = ""; // Variabele voor foutmeldingen
$tekst = "";
$naam = "";
$emailadres = "";
$website = "";
// Formulier alleen verwerken als op de knop met de naam 'submit'
// EN de waarde 'Toevoegen' is geklikt:
if (isset($_POST['submit'])) {
if ($_POST['submit'] == "Toevoegen") {
$datum = date("Y-m-d");
$tijd = date("H:i:s");
$tekst = $_POST['t'];
$naam = $_POST['n'];
$emailadres = $_POST['e'];
$website = $_POST['w'];
// HTML-tags verwijderen uit de tekst met strip_tags() en
// pas DAARNA de tekst omzetten in HTML met htmlentities():
$tekst = strip_tags($tekst);
$tekst = htmlentities($tekst);
// Het voorvoegsel "http://" verwijderen uit de URL van de website:
$website = eregi_replace("^http://", "", $website);
// Overige invoer omzetten in HTML-tekens, vooral voor
// de naam, want voor een e-mailadres of URL hoeft dat niet:
$naam = htmlentities($naam);
$emailadres = htmlentities($emailadres);
$website = htmlentities($website);
// Alleen een tekst van minimaal 4 tekens
// en maximaal 500 woorden toevoegen:
define("MINIMUMAANTAL_TEKENS", 4);
define("MAXIMUMAANTAL_WOORDEN", 500);
$aantal_tekens = strlen($tekst);
$aantal_woorden = str_word_count($tekst);
if (($aantal_tekens >= MINIMUMAANTAL_TEKENS) and ($aantal_woorden <= MAXIMUMAANTAL_WOORDEN)) {
// MySQL-toevoegquery opstellen:
$sql = "INSERT INTO `gastenboek` ";
$sql .= "(`bericht_id`, `datum`, `tijd`, `tekst`, `naam`, `email`, `website`) ";
$sql .= "VALUES ";
$sql .= "('', '$datum', '$tijd', '$tekst', '$naam', '$emailadres', '$website') ";
$sql .= "; ";
// Databaseverbinding openen en query uitvoeren:
require_once('mysql_connect.inc.php');
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$toegevoegd = mysql_query($sql) or die(mysql_error());
mysql_close($verbinding);
// Browser omleiden naar het gastenboek
// als de bijdrage is toegevoegd:
if ($toegevoegd) {
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/gastenboek.php");
exit;
}
} else {
// Foutmelding weergeven:
if (!($aantal_tekens >= MINIMUMAANTAL_TEKENS)) {
$melding .= "De tekst is te kort.";
}
if (!($aantal_woorden <= MAXIMUMAANTAL_WOORDEN)) {
$melding .= "Uw tekst telt " . $aantal_woorden . " woorden. ";
$melding .= "Kort de tekst in tot maximaal " . MAXIMUMAANTAL_WOORDEN . " woorden. ";
}
}
}
}
// Een eventuele foutmelding opmaken als een alinea:
if (strlen(trim($melding)) > 1) {
$melding = '<p class="w">' . $melding . "</p>\n";
}
?>
<h1>Schrijf in het gastenboek</h1>
<?php echo $melding; ?>
<p>Voer uw tekst voor het <a href="gastenboek.php" title="Gastenboek">gastenboek</a> in en klik op Toevoegen. <br>
U hoeft geen naam, e-mailadres of website op te geven.</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td colspan="2" valign="top"><label for="t"><span style="text-decoration: underline">B</span>ericht:</label></td>
</tr>
<tr>
<td colspan="2"><textarea accesskey="t" cols="50" id="t" name="t" rows="10"><?php echo htmlentities($tekst); ?></textarea></td>
</tr>
<tr>
<td><label for="n"><span style="text-decoration: underline">N</span>aam:</label></td>
<td><input accesskey="n" id="n" name="n" type="text" size="47" value="<?php echo htmlentities($naam); ?>"></td>
</tr>
<tr>
<td><label for="e"><span style="text-decoration: underline">E</span>-mailadres:</label></td>
<td><input accesskey="e" id="e" name="e" type="text" size="47" value="<?php echo $emailadres; ?>"></td>
</tr>
<tr>
<td nowrap><label for="w">Uw <span style="text-decoration: underline">w</span>ebsite:<FONT size="-3">Als u er een heeft.</FONT></label></td>
<td><input accesskey="w" id="w" name="w" type="text" size="47" value="<?php echo $website; ?>"></td>
</tr>
<tr>
<td> </td>
<td align="right" nowrap>
<input class="knop" name="submit" type="submit" value="Toevoegen">
<input class="knop" name="submit" type="submit" value="Wissen">
<script type="text/javascript">
<!--
document.write("<input class=knop onclick=\"window.location.href = 'gastenboek.php'\" type=button value=Annuleren>");
-->
</script>
</td>
</tr>
</table>
</form>
MySQL (ik gebruik phpMyAdmin eb ik heb een nieuwe database gemaakt genaamd: gastenboek en de volgende code erin gezet):
[sql]CREATE TABLE `gastenboek` (
`bericht_id` INT NOT NULL AUTO_INCREMENT ,
`datum` DATE NOT NULL ,
`tijd` TIME NOT NULL ,
`tekst` TEXT NOT NULL ,
`naam` VARCHAR( 255 ) ,
`email` VARCHAR( 255 ) ,
`website` VARCHAR( 255 ) ,
PRIMARY KEY ( `bericht_id` ) ,[/sql]
I hoop dat jullie mij kunnen helpen
Vriendelijke groeten, Remi1995
Laatst bewerkt door een moderator: