Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

PHP script foutmelding

None
22 antwoorden
  • Hallo

    Na een script te hebben gedownload en aangepast met mijn eigen gevens dan probeer ik te doen wat in de uitleg bij het script zat en dan geeft hij deze foumelding:

    Er is een fout opgetreden bij het verwijderen van eventuele oude gebruikers-tabellen. Controleer de MySQL-instellingen in config.php

    Bijbehorend bij deze code:
    // MySQL
    $db_user = ""; // vijverbergtuine
    $db_pass = ""; // ******
    $db_host = "";// localhost
    $db_db = ""; // vijverbergtuine

    // Als je al ergens anders een database connectie hebt gemaakt,
    // maak dan van de volgende twee regels commentaar (# of // ervoor zetten)<br>
    $db=mysql_connect("localhost", "vijverbergtuine", "*****");
    mysql_select_db("vijverbergtuine", $db);
    mysql_close();
    maar na lkang zoeken dan ik geen fout vinden, weten jullie mischien hoe ik dit op moet lossen.

    ps ik ben een beginner met php dus niet te moeilijk uitleggen
  • Heb je ergens anders in je script al verbinding gemaakt met de database? Het lijkt erop alsof er al verbinding is met de database.

    Zet voor de zekerheid eens mysql_close(); aan het begin van dit script. Dan weet je zeker dat er geen verbinding is.
  • bedankt het script werkt nu zoals hij zo moeten werken
  • Graag gedaan Driekusdirk,

    maar dit was eigenlijk alleen om het probleem op te sporen.

    Je hebt dus al een verbinding met de database. Nu zal je op zoek moeten gaan naar een manier waarmee je die verbinding maar 1 keer legt en 1 keer afsluit.

    nu doe je dat dus waarschijnlijk 2x
  • hallo

    het probleem is niet helemaal opgelost hij komt nu niet op de pagina die ik had aangeven waar hij naar toe moet gaan. Hier onder het vervolg van de code.

    // Instellingen
    $loginpage = ""; // http://www.vijverbergtuinen.nl/TheMagazineFlower/beveiligde pagina
    $forgoturl = ""; // http://www.vijverbergtuinen.nl/TheMagazineFlower/inloggen.php
    $sitenaam = ""; // The Magazine Flower
    $sitemail = ""; // Dirk Vijverberg
  • Zou je wat meer code kunnen plaatsen? hieruit kan ik niet zo heel veel opmaken..
  • <?
    // Groot Inlogsysteem versie 2
    // Copyright Jorik Berkepas
    // Support by helpdesk90@gmail.com (MSN|Email)
    // Pagina: config.php: Instellingen voor inlogsysteem

    // Start je zelf ergens anders je sessies/cookies? Maak van de volgende twee regels dan commentaar (# of //)
    session_start();
    ob_start();

    // Error reporting zetten we uit, het is niet echt netjes je bezoekers errors voor te schotelen
    ERROR_REPORTING(0);

    // MySQL
    $db_user = ""; // ***********
    $db_pass = ""; // *******
    $db_host = "localhost"; // localhost
    $db_db = ""; // *************

    Dit is de hele config.php

    // Als je al ergens anders een database connectie hebt gemaakt,
    // maak dan van de volgende twee regels commentaar (# of // ervoor zetten)
    mysql_connect($db_localhost,$db_********,$db_*****);
    mysql_select_db($db_db);

    // Instellingen
    $loginpage = ""; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd
    $forgoturl = ""; // http://www.vijverbergtuinen.nl/TheMagazineFlower/inloggen.php, voor activeren van wachtwoord vergeten, / aan einde
    $sitenaam = ""; // Naam van je site; deze word oa. gebruikt bij het verzenden van mail
    $sitemail = ""; // Naam
    ?>
    Mijn web provider is B-one
  • Je mysql username zou ik ook weghalen..

    Hoe vul je deze?
    [code:1:f58f53cb94]
    $loginpage = ""; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd
    [/code:1:f58f53cb94]


    $loginpage="ingelogd.php"; ?

    waar komt de bezoeker trouwens WEL terecht bij het inloggen?
  • nergens hij is wel iets aan het laden maar doet dan niets meer
  • het lijkt wel alsof hij dan in een soort loop terecht komt.

    zet ook even het inlogformulier en het script wat deze gegevens opvangt.

    had je mijn andere vraag ook gezien?
  • Nee jou vraag niet gelezen dus beantwoord ik hem nu. Het is de bedoeling dat je dan alleen het laatste deel in vult van de domein. dus alleen inloggen.php.

    Inlog script:
    <?
    // Groot Inlogsysteem versie 2
    // Copyright
    // Support by (MSN|Email)
    // Pagina: inloggen.php: Inloggen
    include("config.php");
    include("htmltop.php");

    if(isset($_SESSION['user_id'])) {
    ?>
    Je bent reeds ingelogd.
    <script language="Javascript" type="text/javascript">
    location.href='<?= $loginpage ?>';
    </script>
    <?
    }else{
    if(isset($_COOKIE['user_id'])) {
    // Cookie uitlezen, sessie aanmaken
    $sql = "SELECT id,status,wachtwoord,actief FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
    $query = mysql_query($sql);
    $rij = mysql_fetch_object($query);
    $id = htmlspecialchars($rij->id);
    $status = htmlspecialchars($rij->status);
    $dbpass = htmlspecialchars($rij->wachtwoord);
    $actief = htmlspecialchars($rij->actief);
    if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
    $_SESSION['user_id'] = $id;
    $_SESSION['user_status'] = $status;
    ?>
    Er is weer een sessie aangemaakt. Je wordt doorverwezen.
    <script language="Javascript" type="text/javascript">
    location.href='<?= $loginpage ?>';
    </script>
    <?
    }else{
    echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />
    Je oude cookies zijn verwijderd.";
    setcookie("user_id", "", time() - 3600);
    setcookie("user_password", "", time() - 3600);
    }
    }else{
    if(isset($_POST['submit'])) {
    // Inloggen
    $sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
    $query = mysql_query($sql);
    $rij = mysql_fetch_object($query);
    $dbpass = htmlspecialchars($rij->wachtwoord);
    $userpass = md5($_POST['pass']);
    $userid = htmlspecialchars($rij->id);
    $userstatus = htmlspecialchars($rij->status);
    $useractief = htmlspecialchars($rij->actief);
    if($dbpass == $userpass) {
    if($useractief == 1) {
    $_SESSION['user_id'] = $userid;
    $_SESSION['user_status'] = $userstatus;
    if($_POST['cookie'] == "do") {
    setcookie("user_id", $userid, time() + 365 * 86400);
    setcookie("user_password", $dbpass, time() + 365 * 86400);
    }
    ?>
    Je bent succesvol ingelogd.<br />
    Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.

    <script language="Javascript" type="text/javascript">
    location.href='<?= $loginpage ?>';
    </script>
    <?
    }else{
    echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />
    <a href="javascript:history.back()">&laquo; Ga terug</a>";
    }
    }else{
    echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />
    <a href="javascript:history.back()">&laquo; Ga terug</a>";
    }
    }else{
    // Inlogform
    ?>
    <form method="post" action="inloggen.php">
    <table>
    <tr>
    <td>Gebruikersnaam:</td><td><input type="text" name="user" /></td>
    </tr>
    <tr>
    <td>Wachtwoord:</td><td><input type="password" name="pass" /></td>
    </tr>
    <tr>
    <td align="right"><input type="checkbox" name="cookie" value="do" style="border: 0px;" /></td><td><small>Ingelogd blijven (cookie)</small></td>
    </tr>
    <tr>
    <td></td><td><input type="submit" name="submit" value="Inloggen" /></td>
    </tr>
    </table>
    <small><a href="forgotpass.php" title="Wachtwoord vergeten">Wachtwoord vergeten</a></small>
    </form>
    <?
    }
    }
    }
    include("htmlbottom.php");
    ?>

    Volgens mij licht het hier niet aan want dat is allemaal in orde (volgens mij).
  • [code:1:2af41de7fd]
    Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.

    [/code:1:2af41de7fd]

    Hoort dit niet te zijn

    [code:1:2af41de7fd]
    Je wordt doorgestuurd, indien er niets gebeurd <a href="<? echo $loginpage ?>">klik dan hier</a>.

    [/code:1:2af41de7fd]

    Ik zie ook geen header actie met deze var. [i:2af41de7fd]$loginpage [/i:2af41de7fd]om de gebruiker door te sturen naar de pagina als hij succesvol ingelogd is.
    EDIT: sorry,ik lees hier overheen:
    [code:1:2af41de7fd]
    location.href='<?= $loginpage ?>';
    [/code:1:2af41de7fd]

    Probeer de variable $loginpage eens weer te geven (echoen) in dit stuk, wat geeft hij weer? Ik weet eigenlijk wel zeker dat hij leeg is.

    [code:1:2af41de7fd]
    Je bent succesvol ingelogd.<br />
    Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.
    [/code:1:2af41de7fd]
  • Deze moet je wel vullen..
    [code:1:656a47e2c6]
    $loginpage = ""; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd
    [/code:1:656a47e2c6]

    Deze variabele heb je nu niet gevuld. dus location.href kan de gebruiker niet doorsturen omdat hij simpelweg niet weet waar naar toe.
  • Ik zag trouwens nog een lek in je beveiliging:

    [code:1:4c03248c7c]
    echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />
    <a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
    [/code:1:4c03248c7c]

    Als je dit zo weer geeft, geeft de browser alles weer wat de bezoeker invult. Op deze manier kan hij makkelijk aan gegevens komen over jouw sessies en dergelijke.

    Filter die $_POST['user'] eerst met bv htmlspecialchars voordat je hem weer weergeeft.
  • Zo krijg ik het script te zien. Dit is dus nog leeg

    <?
    // Groot Inlogsysteem versie 2
    // Copyright
    // Support by
    // Pagina: config.php: Instellingen voor inlogsysteem

    // Start je zelf ergens anders je sessies/cookies? Maak van de volgende twee regels dan commentaar (# of //)
    session_start();
    ob_start();

    // Error reporting zetten we uit, het is niet echt netjes je bezoekers errors voor te schotelen
    ERROR_REPORTING(0);

    // MySQL
    $db_user = ""; // Gebruiker voor MySQL
    $db_pass = ""; // Wachtwoord voor MySQL
    $db_host = "localhost"; // Host voor MySQL; standaard localhost
    $db_db = ""; // Database

    // Als je al ergens anders een database connectie hebt gemaakt,
    // maak dan van de volgende twee regels commentaar (# of // ervoor zetten)
    mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db($db_db);

    // Instellingen
    $loginpage = ""; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd
    $forgoturl = ""; // Volledige URL naar inlogsysteem, voor activeren van wachtwoord vergeten, / aan einde
    $sitenaam = ""; // Naam van je site; deze word oa. gebruikt bij het verzenden van mail
    $sitemail = ""; // Afzender van verzonden mail
    ?>
  • Deze moet je veranderen:
    $loginpage = ""; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd


    Stel dat "ingelogd.php" de pagina is waar de bezoeker naar toe moet NA dat hij succesvol ingelogd is, dat moet je deze veranderen:

    $loginpage = "";[/color:da1d9468c2]

    in dit:

    $loginpage = "ingelogd.php";[/color:da1d9468c2]

    Probeer maar!
  • Mijn domein provider geeft het volgende aan

    Hoe ziet de verbindingsstring van PHP naar mijn MySQL database eruit?
    $db=mysql_connect("localhost", "user name", "password"); mysql_select_db("user name", $db);

    // Example of an inquiry
    mysql_query("INSERT INTO news (title, news, author) VALUES ('$title', '$news', '$author')");

    mysql_close();

    Vervang de "user name" en het "password" met de gebruikersnaam en wachtwoord zoals vermeld in uw codebrief.

    Moet ik dit plaatsen en zo Ja waar dan?
  • Nee, dit hoef je niet te plaatsen, dit heb je al gedaan.

    [code:1:a6cae074f3]
    // MySQL
    $db_user = ""; // vijverbergtuine
    $db_pass = ""; // ******
    $db_host = "localhost"; // localhost
    $db_db = ""; // vijverbergtuine
    [/code:1:a6cae074f3]

    Zie mijn vorige bericht DAT moet je aanpassen.
  • hij doet het nog steeds niet, de code die nu geplaatst is

    <?
    // Groot Inlogsysteem versie 2
    // Copyright
    // Support by
    // Pagina: config.php: Instellingen voor inlogsysteem

    // Start je zelf ergens anders je sessies/cookies? Maak van de volgende twee regels dan commentaar (# of //)
    session_start();
    ob_start();

    // Error reporting zetten we uit, het is niet echt netjes je bezoekers errors voor te schotelen
    ERROR_REPORTING(0);

    // MySQL
    $db_user = ""; // ***********
    $db_pass = ""; // *******
    $db_host = ""; // localhost
    $db_db = ""; // *********

    // Als je al ergens anders een database connectie hebt gemaakt,
    // maak dan van de volgende twee regels commentaar (# of // ervoor zetten)

    // Instellingen
    $loginpage = "ingelogd.php";
    $forgoturl = ""; // http://www.vijverbergtuinen.nl/TheMagazineFlower/inloggen.php, voor activeren van wachtwoord vergeten, / aan einde
    $sitenaam = ""; // Naam van je site; deze word oa. gebruikt bij het verzenden van mail
    $sitemail = ""; // **********
    ?>
    dan geeft hij dit weer: Er is een fout opgetreden bij het verwijderen van eventuele oude gebruikers-tabellen. Controleer de MySQL-instellingen in config.php
  • Even voor de zekerheid:

    // MySQL
    $db_user = ""; // ***********
    $db_pass = ""; // *******
    $db_host = ""; // localhost
    $db_db = ""; // *********


    Dit bovenstaande heb je toch wel aangepast aan jouw gegevens?

    $db_user = "sander16v"
    $db_pass = "ditiseenstomwachtwoord";
    $db_host = "localhost";
    $db_db = "denaamvanmijdatabase";

    de gegevens staan dus tussen de ""

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.