check email en username werkt niet:S?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Superwauwie

superwauwie

31/03/2008 13:38:00
Quote Anchor link
ik gebruik om iets te versturen deze code:


if ($_GET['actie'] == 'inloggen')
{
while ($rij = mysql_fetch_object($resultaat))
{
if ($rij->inlognaam=$_POST['inlognaam'] and $rij->email=$_POST['email'])
{
mail($rij->email, $onderwerp, $rij->passwoord, $headers);
echo "de link is verstuurd!";
}
else
{
echo "uw inlognaam of email kloppen niet";
}


}
}

als ik nu de juiste gegevens heb ingevult dan verstuurd hij hem. maar zodra je het fout intypt moet er toch komen te staan 'uw inlognaam of email kloppen niet'? maar dat doet hij niet..

weet iemand hoe je dit verbeterd, en als je een betere code weet voor dat versturen, post hem dan hier;)
Gewijzigd op 01/01/1970 01:00:00 door Superwauwie
 
PHP hulp

PHP hulp

20/04/2024 11:21:16
 
Joren de Wit

Joren de Wit

31/03/2008 13:40:00
Quote Anchor link
Quote:
$rij->inlognaam=$_POST['inlognaam']
Vergelijken in PHP doen we altijd nog met ==. De enkele = gebruiken we voor het toekennen van een waarde ;-)
 
Superwauwie

superwauwie

31/03/2008 13:42:00
Quote Anchor link
@blanche:
bedankt wist niet dat het hier met == (ben gml gewend:P)

maar hij doet het nog steeds niet hij verstuurd het niet, maar geeft ook geen tekst terug:S
 
Joren de Wit

Joren de Wit

31/03/2008 13:46:00
Quote Anchor link
Ik neem aan dat je ook nog ergens een query uitvoert waarvan het resultaat in $resultaat komt te staan? Heb je gecontroleerd of deze query wel gelukt is?

Zet verder eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

boven aan je script. Dan zal PHP een melding geven op alle mogelijke fouten in je script.
 
Frank -

Frank -

31/03/2008 13:48:00
Quote Anchor link
Waarom vergelijk je niet in de query? Zet de gegevens in het WHERE-gedeelte en klaar ben je.
 
Superwauwie

superwauwie

31/03/2008 13:50:00
Quote Anchor link
die query doet het gewoon want als ik alles goed invul verzend hij hem,
als ik die code boven aan de pagina zet dan krijg ik dit:

Warning: ini_set() has been disabled for security reasons in /usr/export/www/hosting/ccb1c/test/testy.php on line 3

Notice: Undefined index: inlognaam in /usr/export/www/hosting/ccb1c/test/testy.php on line 7

Notice: Undefined index: email in /usr/export/www/hosting/ccb1c/test/testy.php on line 7

Notice: Undefined index: actie in /usr/export/www/hosting/ccb1c/test/testy.php on line 12

Notice: Undefined variable: gebruikersnaam in /usr/export/www/hosting/ccb1c/test/testy.php on line 39

Notice: Undefined variable: email in /usr/export/www/hosting/ccb1c/test/testy.php on line 41


maar alles werkt verder perfect.... behalve de melding:
echo "uw inlognaam of email kloppen niet";
 
Superwauwie

superwauwie

31/03/2008 13:53:00
Quote Anchor link
@pgFrank:
oh dat heb ik al volgens mij:P:

$sql = "SELECT * FROM memberss WHERE inlognaam='".$_POST['inlognaam']."' AND email='".$_POST['email']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");

maar hoe pas ik dat dan toe?
 
Joren de Wit

Joren de Wit

31/03/2008 14:03:00
Quote Anchor link
Gebruik nooit maar dan ook echt nooit $_POST variabelen direct in je query! Zorg altijd dat je deze minimaal beveiligd hebt met mysql_real_escape_string() om SQL injectie te voorkomen...

Verder zeggen die foutmeldingen lijkt me voldoende. Je probeert variabelen te gebruiken die helemaal niet bestaan. Dus vraag je eens af waarom ze niet bestaan en controleer dus altijd of ze wel bestaan voordat je ermee aan de slag gaat.
 
Superwauwie

superwauwie

31/03/2008 14:10:00
Quote Anchor link
oke ik zal gaan kijken hoe mysql_real_escape_string() werkt ;)

maar over die foutmeldingen,
al die variables neemt hij vanuit de database

want deze variable bijv:

Notice: Undefined index: inlognaam in /usr/export/www/hosting/ccb1c/test/testy.php on line 7

hier is inlognaam een rij uit de database, maar hij doet het dus nog steeds niet :(
 
Joren de Wit

Joren de Wit

31/03/2008 14:24:00
Quote Anchor link
Die variabele bestaat niet, dus blijkbaar is er dan wat fout gegaan bij het uitlezen uit de database. Let op dat het natuurlijk ook om de $_POST variabele kan gaan die niet bestaat...
 
Superwauwie

superwauwie

31/03/2008 14:27:00
Quote Anchor link
maar waarom doet hij het dan wel met dit:

if ($rij->inlognaam==$_POST['inlognaam'] and $rij->email==$_POST['email'])
{
mail($rij->email, $onderwerp, $rij->passwoord, $headers);
echo "de link is verstuurd!";
}

maar die andere code niet:

if ($rij->inlognaam!==$_POST['inlognaam'] and $rij->email!==$_POST['email'])
{
mail($rij->email, $onderwerp, $rij->passwoord, $headers);
echo "de link is verstuurd!";
}

ik heb al geprobeerd die ! te verplaatsen maar geen effect:S

bij de tweede geeft hij niks niet eens de echo:S
bij de eerste wel.
Gewijzigd op 01/01/1970 01:00:00 door superwauwie
 
Frank -

Frank -

31/03/2008 14:28:00
Quote Anchor link
superwauwie schreef op 31.03.2008 13:53:
@pgFrank:
oh dat heb ik al volgens mij:P:

$sql = "SELECT * FROM memberss WHERE inlognaam='".$_POST['inlognaam']."' AND email='".$_POST['email']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");

maar hoe pas ik dat dan toe?
En waarom wil je dan in PHP nogmaals controleren of de inlognaam en het emailadres overeen komen? De 2e controle zal echt geen andere resultaten opleveren dan de eerste controle.

Tip: Ga eerst het systeem eens goed ontwerpen op papier en pas daarna de boel in SQL en PHP uitschrijven. Er gaan nu een hoop zaken tegelijk fout waardoor je door de bomen het bos niet meer ziet.
 
Joren de Wit

Joren de Wit

31/03/2008 14:29:00
Quote Anchor link
Wat wil je nou precies bereiken? De operator !== betekent 'niet identiek aan' dus het type en/of de inhoud van de variabele komen niet overeen.

Misschien is het handig om eens een kijkje in de PHP beginnershandleiding te nemen en wat meer kennis op te doen. Het lijkt er namelijk op dat de nodige basiskennis ontbreekt...
 
Superwauwie

superwauwie

31/03/2008 14:35:00
Quote Anchor link
ik wil dat als de inlognaam en email het zelfde zijn in de database dat hij dan de informatie stuurt zo niet, dan zegt hij: "uw inlognaam of email kloppen niet"

ik heb al gekeken daar en dat snapte ik nog wel ik snap ook wel wat er vertaalt wordt in mijn script (wat er dus letterlijk staat) maar op een of andere manier doet hij dat niet:S
 
Bas Matthee

Bas Matthee

31/03/2008 15:16:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if (isset($_GET['actie']) && $_GET['actie'] == 'inloggen') {
        
        $email = mysql_real_escape_string($_POST['email']);
        $inlognaam = mysql_real_escape_string($_POST['inlognaam']);
        // Controleren of inlognaam en email combinatie bestaat.
        $query = "SELECT * ";
        $query .= "FROM members ";
        $query .= "WHERE email = '{$email}' ";
        $query .= "AND inlognaam = '{$inlognaam}' ";
        $query .= "LIMIT 1";
        $result = mysql_query($query);
        if (mysql_num_rows($result) == 1) {
            // Er is 1 resultaat gevonden en dus is er een match
            // Dus hier je code voor ja acties


        } elseif (mysql_num_rows($result) == 0) {
            // Combinatie van gegevens niet gevonden in de database
            // Hier dus de melding "niet gevonden!"

        }    

    }


?>


Zoiets zou ik dan gebruiken...
Gewijzigd op 01/01/1970 01:00:00 door Bas Matthee
 
Superwauwie

superwauwie

31/03/2008 15:33:00
Quote Anchor link
@ Bas Matthee:
bedankt hij doet het:D deze manier zal ik onthouden:D
 
Bas Matthee

Bas Matthee

31/03/2008 15:46:00
Quote Anchor link
Topic closed? ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.