MySQL/PHP fout met toevoegen nieuw bericht van gastenboek.

Status
Niet open voor verdere reacties.

Remi1995

Gebruiker
Lid geworden
31 jul 2009
Berichten
291
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
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>&lt;" . $emailadres . "&gt;";
        }
        $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 . "&nbsp;woorden. ";
                $melding .= "Kort de tekst in tot maximaal " . MAXIMUMAANTAL_WOORDEN . "&nbsp;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>&nbsp;</td>
      <td align="right" nowrap>
        <input class="knop" name="submit" type="submit" value="Toevoegen"> &nbsp;
        <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:
mysql_connect.inc.php bestaat niet (op die locatie).
 
Warning: require_once(mysql_connect.inc.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\gastenboek\index.php on line 14
 
Warning: require_once(mysql_connect.inc.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\gastenboek\index.php on line 14

Ok, dank u.




Vriendelijke groeten, Remi1995
 
Warning: require_once(mysql_connect.inc.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\gastenboek\index.php on line 14

Ik heb geen mysql_connect.inc.php bestand in de map XAMPP en ook niet in de map MySQL.

Moet ik dan een ander bestand gebruiken?




Vriendelijke groeten, Remi1995
 
:confused:

Je kunt in ieder geval geen bestanden includen die je niet hebt..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan