Login doet het niet

Status
Niet open voor verdere reacties.

XxStefkuHxX

Gebruiker
Lid geworden
22 jul 2003
Berichten
445
Hallo jongens, ik heb een login, alleen hij zegt dattie geen verbinding kan maken met Mysql, wie weet waar de fout zit ?

PHP:
Tabellen
CREATE TABLE leden ( 
userid int(10) unsigned not null auto_increment primary key, 
username varchar(200), 
password varchar(32), 
email varchar(200), 
ip varchar(20), 
aanmelddatum int(10), 
hash int( 8 ), 
actief tinyint(1) 
);

PHP:
configuratie.php
<?php 


// Vul hier je MySQL database gegevens in 
$db['host'] = 'localhost';         // MySQL host, 99% van de gevallen: localhost 
$db['user'] = 'user';            // MySQL gebruikersnaam 
$db['pass'] = 'pass';            // Wachtwoord voor bovenstaande gebruiker 
$db['name'] = 'dbnaam';            // Database naam 

// Hieronder hoef je niets te wijzigen 

// Sessie starten 
session_start(); 

// MySQL verbinding maken 
if  (!@mysql_connect($db['host'],$db['user'],$db['pass
'])) 
{ 
    exit("Geen MySQL verbinding, controleer de gegevens."); 
} 

// MySQL database selecteren 
if (!@mysql_select_db($db['name'])) 
{ 
    exit("Kan database niet selecteren."); 
} 

// Inlog functie 
// Retourneerd TRUE als user is ingelogd 
function is_logged_in() 
{ 
    global $HTTP_SESSION_VARS; 

        if (!IsSet($HTTP_SESSION_VARS['userid'])) 
        { 
            return (0); 
        } 

    return (1); 
} 
?>

PHP:
aanmelden.php
<?php 


// Als je script werkt met deze regel bovenaan 
// is het een goed script 
error_reporting(E_ALL); 

// Config includen om met de MySQL databeest verbinding 
// te maken 
include("configuratie.php"); 

// Eerst kijken we of er iets verstuurd is 
// De submit button geven we de naam 'submit' en bevind 
// zich tussen de geposte variabelen 
if (IsSet($HTTP_POST_VARS['submit'])) 
{ 

    // Nu gaan we alle variabelen langs 
    // en kijken of er een variabele is leeggelaten, zoja 
    // breken we het script af 
    foreach ($HTTP_POST_VARS as $variabele => $waarde) 
    { 
        if (!trim($HTTP_POST_VARS[$variabele])) 
        { 
            // Spaties zijn weggehaald uit de variabele 
            // en hij heeft nu geen waarde, afbreken dus 
            exit("Niet alle velden zijn ingevuld, ga terug en probeer het opnieuw."); 
        } 
    } 

    // Nu kijken of het email adres of de username al niet voorkomt 
    // in de database 
    $VoorkomQ = @mysql_query("SELECT COUNT(*) 
                                FROM leden 
                             WHERE username = '".addslashes($HTTP_POST_VARS['username'])."' 
                               OR email = '".addslashes($HTTP_POST_VARS['email'])."' 
                             "); 

    $ResultsVoorkomQ = mysql_result($VoorkomQ,0); 

    if (!$VoorkomQ) 
    { 
        exit("Kan niets uit tabel selecteren, tabel wel aangemaakt?"); 
    } 

            // Meer dan 0 resultaten; script afbreken 
            if ($ResultsVoorkomQ > 0) 
            { 
                exit("Je e-mail adres of gebruikersnaam is al geregistreerd."); 
            } 

    // Alle variabelen zijn gevuld, nu even de hash 
    // declareren om met het bevestigingsmailtje mee te sturen 
    // time() is altijd een uniek getal. 

    $hash = time(); 

    // De user in de tabel zetten 
    if (!@mysql_query("INSERT INTO 
                    leden 
                (username,password,email,ip,aanmelddatum,hash,
actief) 
                    VALUES 
                ('".addslashes($HTTP_POST_VARS['username'])."', 
                 '".md5($HTTP_POST_VARS['password'])."', 
                 '".addslashes($HTTP_POST_VARS['email'])."', 
                 '".$HTTP_SERVER_VARS['REMOTE_ADDR']."', 
                 '".time()."', 
                 '".$hash."', 
                 '0') 
                ")) 
    { 
        exit("Kan niets in tabel zetten, tabel wel aangemaakt?"); 
    } 

    // Nu even de user mailen 
    // mysql_insert_id() is de net ingevoerde ID in de tabel 
    mail($HTTP_POST_VARS['email'],"Bevestig registratie", 
    "Beste {$HTTP_POST_VARS['username']}, 
    Je hebt je net geregistreerd op mijn site, je moet je 
    registratie nog even bevestigen, klik daarvoor op deze 
    link: 
    [url]http://sitenaam.nl/bevestig.php?userid=[/url]".mysql_insert_id()."&hash=$hash", 
    "From: Jouw sitenaam<jouw email>"); 

    // Registratie bijna voltooid, dat zeggen we ook even vriendelijk tegen de user 
    echo "Je registratie is bijna voltooid, klik op de link in je mailbox om de registratie te voltooien."; 

} else { 

    // Er is niet op submit gedrukt, dus geven we een formuliertje weer 
    // waar we de naam, het wachtwoord en het email adres kunnen invullen 

    echo "<form action=\"aanmelden.php\" method=\"post\">"; 
    echo "Kies een gebruikersnaam: "; 
    echo " <input name=\"username\">"; 
    echo "Kies een wachtwoord: "; 
    echo " <input name=\"password\">"; 
    echo "Type een geldig e-mail adres in: "; 
    echo " <input name=\"email\">"; 
    echo "<input type=\"submit\" name=\"submit\" value=\"Registreer je!\">"; 
    echo "</form>"; 

} 
?>

PHP:
bevestig.php
<?php 


// Als je script werkt met deze regel bovenaan 
// is het een goed script 
error_reporting(E_ALL); 

// Config includen om met de MySQL databeest verbinding 
// te maken 
include("configuratie.php"); 

// Kijken of er wel een userid en een hash in de adresbalk staat 
if (!IsSet($HTTP_GET_VARS['userid']) || !IsSet($HTTP_GET_VARS['hash'])) 
{ 
    exit("Je hebt een ongeldige link gevolgd, geen userid of hash gevonden."); 
} 

// Zitten die er wel, kijken of ze correct zijn 
$HashIsCorrect = mysql_query("SELECT COUNT(*) 
                                FROM leden 
                              WHERE userid = '".$HTTP_GET_VARS['userid']."' 
                                AND hash = '".$HTTP_GET_VARS['hash']."' 
                                AND actief = 0 
                             "); 

$IsCorrect = mysql_result($HashIsCorrect,0); 

        // 0 resultaten, dan klopt het niet. 
        if ($IsCorrect == 0) 
        { 
            exit("De hash/userid combinatie klopt niet of de registratie is al bevestigd."); 
        } 

// User op actief zetten 
mysql_query("UPDATE leden SET actief = 1 WHERE userid = '".$HTTP_GET_VARS['userid']."' AND hash = '".$HTTP_GET_VARS['hash']."'"); 

// Voltooid 
echo "Je registratie is voltooid."; 
?>

PHP:
inloggen.php
<?php 


// Als je script werkt met deze regel bovenaan 
// is het een goed script 
error_reporting(E_ALL); 

// Config includen om met de MySQL databeest verbinding 
// te maken 
include("configuratie.php"); 

// Kijken of het formulier is gesubmit 
if (IsSet($HTTP_POST_VARS['submit'])) 
{ 

    // Kijken of de user wel een gebruikersnaam en pass heeft ingevuld 
    if (!IsSet($HTTP_POST_VARS['password']) || !IsSet($HTTP_POST_VARS['username'])) 
    { 
        exit("Je moet wel een password/user combinatie invullen."); 
    } 

    // Het wachtwoord is gecodeerd (md5), dus gaan we kijken of deze combi van user/pass ook in de DB bestaat 
    $CombiCheckQ = mysql_query("SELECT username,userid,email 
                                  FROM leden 
                                WHERE username = '".addslashes($HTTP_POST_VARS['username'])."' 
                                  AND password = '".md5($HTTP_POST_VARS['password'])."' 
                                  AND actief = 1 
                              "); 

        // Kijken of er resultaten zijn, zoja, is de user ingelogd 
        if (mysql_num_rows($CombiCheckQ) == 0) 
        { 
            exit("Een ongeldige user/pass combinatie is ingevoerd."); 
        } 

        // Sessie registreren 
        $gegevens = mysql_fetch_array($CombiCheckQ); 

        $HTTP_SESSION_VARS['username'] = $gegevens['username']; 
        $HTTP_SESSION_VARS['userid']   = $gegevens['userid']; 
        $HTTP_SESSION_VARS['email']    = $gegevens['email']; 

        // Redirecten naar beveiligde_pagina.php 
        if (headers_sent()) 
        { 
            echo "<script language=\"JavaScript\">"; 
            echo "document.location='beveiligde_pagina.php'"; 
            echo "</script>"; 
        } else { 
            header("location: beveiligde_pagina.php"); 
        } 

        // Stoppen met parsen 
        exit(); 

} else { 

    // Formulier voor inloggen laten zien 

    echo "<form action=\"inloggen.php\" method=\"post\">"; 
    echo "Username: "; 
    echo " <input name=\"username\">"; 
    echo "Password: "; 
    echo " <input name=\"password\" type=\"password\">"; 
    echo "<input type=\"submit\" name=\"submit\" value=\"Log in\">"; 
    echo "</form>"; 

} 
?>

PHP:
beveiligde_pagina
<?php 


// Als je script werkt met deze regel bovenaan 
// is het een goed script 
error_reporting(E_ALL); 

// Config includen om met de MySQL databeest verbinding 
// te maken 
include("configuratie.php"); 

// Voorbeeld van een pagina die je kan beveiligen 
if (!is_logged_in()) 
{ 

    echo "Je bent niet ingelogd."; 

} else { 

    echo "Je bent ingelogd! Welkom ".$HTTP_SESSION_VARS['username'].""; 
    echo "Log <a href=\"uitloggen.php\">hier</a> uit."; 

} 

?>

PHP:
uitloggen.php
<?php 
 

// Als je script werkt met deze regel bovenaan 
// is het een goed script 
error_reporting(E_ALL); 

// Config includen om met de MySQL databeest verbinding 
// te maken 
include("configuratie.php"); 

// Alle session variabelen unsetten 
foreach ($HTTP_SESSION_VARS as $var => $val) 
{ 
    unset($HTTP_SESSION_VARS[$var]); 
} 

// Alles weghalen 
session_destroy(); 

// Gelukt! 
echo "Je bent uitgelogd."; 
?>
 
heb je überhaubt de gegevens die in configuratie.php gevraagd worden ingevuld ?
 
Misschien kan iemand het bij zn eigen proberen ? Om te weten of ik wat fouts heb ingevuld
 
hallo
het eerste wat me opvalt is dit

ik zie bij confuratie.php dit staan

PHP:
// MySQL verbinding maken 
if  (!@mysql_connect($db['host'],$db['user'],$db['pass
'])) 
{

ik zouw er personlijk even dit va maken

PHP:
// MySQL verbinding maken 
if  (!@mysql_connect($db['host'],$db['user'],$db['pass'])) 
{

even die enter er tussen uit ik weet niet of het wat uit maakt

maar is vast een verbetering aan het scipt

groeten aart
 
ik vind het een heel goed ondewworrd:thumb:
ik heb ze allebei tegenlijk toegepast en hij doet het:thumb: :D
knap andworrd
 
Ik heb nog een probleem in aanmelden.php (ik ben net begonnen met PHP en snap nog niet echt veel:o )

Maar ik krijg de volgende fout:

Parse error: parse error, unexpected T_STRING in D:\WWWRoot\phptest\leden\aanmelden.php on line 90

En dat ligt dus aan dit stukje code:

PHP:
    <a href="http://floris/phptest/leden/bevestig.php?userid=" target="_blank">[url]http://floris/phptest/leden/bevestig.php?userid=[/url]</a>".mysql_insert_id()."&hash=$hash", 
    "From: Infinity Lan 2<webmaster@infinitylan.com>");

Hoe moet ik dit oplossen?:)
 
Geplaatst door ResQ

PHP:
    <a href="http://floris/phptest/leden/bevestig.php?userid=" target="_blank">[url]http://floris/phptest/leden/bevestig.php?userid=[/url]</a>".mysql_insert_id()."&hash=$hash", 
    "From: Infinity Lan 2<webmaster@infinitylan.com>");

Hoe moet ik dit oplossen?:) [/B]


kan je meschien even wat meer code geven

uit deze regel kanik niet ehct zien wat nu moet gerren

en heb je deze regel zelf gemaakt je gebruk en <a href code door me kaar heen ik weet niet of dat te bedoeling is groeten aart
 
Nee sorry, hier op het forum doet ie auto-..ik zal het nog eens proberen: ...sten) op me eigen lokale webserver...(apache)
 
aub

probeer deze code even maar volgens mij werk hijn niet lekker

PHP:
$ontvanger = $_POST['email'];
$onderwerp = "Bevestig registratie";
$bericht= "Beste {".$_POST['username']."}, \nJe hebt je net geregistreerd op mijn site, je moet je\nregistratie nog even bevestigen, klik daarvoor op deze \n link: \n<a href='http://floris/phptest/leden/bevestig.php?userid=".mysql_insert_id("&hash='".$hash."'")."' target='_blank'>klik</a>";
$From = "From: Infinity Lan 2<webmaster@infinitylan.com>"; 

mail($ontvanger, $onderwerp, $bericht, $From);

ik heb even wat dudelijker gemaak en wat foudtjes uit gehaal

groeten aart


edit:

er zat nog een fout bij bij het user id (opgelost)
 
Laatst bewerkt:
Dit is de versie die naar mijn idee juist werkt

PHP:
$ontvanger = $_POST['email'];
$onderwerp = "Bevestig registratie";
$bericht= "Beste ".$_POST['username'].", \nJe hebt je net geregistreerd op mijn site, je moet je\nregistratie nog even bevestigen, klik daarvoor op deze \n link: \n http://pad/naar/bevestig.php?&hash=$hash&userid=".mysql_insert_id()."";

$From = "From: Jouw Naam/Website <jij@iets.nl>"; 


mail($ontvanger, $onderwerp, $bericht, $From);
 
ja, hij deed het al :) toch bedankt iig. Ik had het toendertijd zelf al opgelost met hulp van aart :thumb:
 
Ow maar bij mij deed de hash het niet en de link in het mailtje......
vandaar dat ik hem heb gepost ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan