PHP doet query niet uitvoeren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Arno van Zanten

Arno van Zanten

01/06/2022 12:19:29
Quote Anchor link
Hij doet wel bijna alles maar op een gegeven moent stopt hij na $sql

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
        echo"test<br>";
        include('./dbase.php');
        
            $user = $_POST['username'];
            $passwd = $_POST['password'];
            $key = $_POST['key'];
            
            echo "<br><br>Do sql query<br>";
            echo $user."<br>";
            echo $passwd."<br>";
            echo $key."<br><br>";
    
    if (!isset($user) && isset($passwd)) {                    
        
        echo "Data should be there";
        
    }
else{
        
        $sql = "SELECT * FROM AdminUsers WHERE Username = '".$user."' AND Passwd = '".$passwd."' AND LoginKey = '".$key."'";
            echo $sql."<br>";
            
            
        $result = mysqli_query($connect, $sql);
            
            if (mysqli_num_rows($result) > 0) {
                echo $result."<br>";
            }

            
        $resultCheck = mysqli_num_rows($result);
            echo $resultCheck."<br><br>";
            
                
        if (mysqli_num_rows($result) === 1) {
            echo $result."<br>";
            echo $resultCheck."<br>";
        }
else{
            echo "No data found";
        }

//            if($resultCheck > 0){
//                $_POST['username'] = $user;
//                header('Location: ../index.php');
//                //die;
//            }

        mysqli_close($connect);
    }

?>


Als ik de $sql in de database direct uitvoer, krijg ik gewoon de results binnen.
Hij stopt gewoon na $sql en de results laat hij niet eens zien.

Wat doe ik fout?

Toevoeging op 01/06/2022 12:22:39:

Arno van Zanten op 01/06/2022 12:19:29:
Hij doet wel bijna alles maar op een gegeven moent stopt hij na $sql

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
        echo"test<br>";
        include('./dbase.php');
        
            $user = $_POST['username'];
            $passwd = $_POST['password'];
            $key = $_POST['key'];
            
            echo "<br><br>Do sql query<br>";
            echo $user."<br>";
            echo $passwd."<br>";
            echo $key."<br><br>";
    
    if (!isset($user) && isset($passwd)) {                    
        
        echo "Data should be there";
        
    }
else{
        
        $sql = "SELECT * FROM AdminUsers WHERE Username = '".$user."' AND Passwd = '".$passwd."' AND LoginKey = '".$key."'";
            echo $sql."<br>";
            
            
        $result = mysqli_query($connect, $sql);
            
            if (mysqli_num_rows($result) > 0) {
                echo $result."<br>";
            }

            
        $resultCheck = mysqli_num_rows($result);
            echo $resultCheck."<br><br>";
            
                
        if (mysqli_num_rows($result) === 1) {
            echo $result."<br>";
            echo $resultCheck."<br>";
        }
else{
            echo "No data found";
        }

//            if($resultCheck > 0){
//                $_POST['username'] = $user;
//                header('Location: ../index.php');
//                //die;
//            }

        mysqli_close($connect);
    }

?>


Als ik de $sql in de database direct uitvoer, krijg ik gewoon de results binnen.
Hij stopt gewoon na $sql en de results laat hij niet eens zien.

Wat doe ik fout?

URL : http://happy-truffles.com/test/admin/
 
PHP hulp

PHP hulp

25/04/2024 22:17:30
 
Ivo P

Ivo P

01/06/2022 12:38:03
Quote Anchor link
staat error reporting aan?

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


En wat zit er in $result?

var_dump($result) op regel 25 toevoegen.

grote kans dat die FALSE bevat, wat zou betekenen dat je naar mysqli_error($connect) moet kijken
https://www.php.net/mysqli-error
 
Arno van Zanten

Arno van Zanten

01/06/2022 12:43:41
Quote Anchor link
Ivo P op 01/06/2022 12:38:03:
staat error reporting aan?

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


En wat zit er in $result?

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(6) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }

var_dump($result) op regel 25 toevoegen.

grote kans dat die FALSE bevat, wat zou betekenen dat je naar mysqli_error($connect) moet kijken
https://www.php.net/mysqli-error




Toevoeging op 01/06/2022 13:12:52:

Okay nou blijft het in een loop hangen

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
        echo"test<br>";

error_reporting(E_ALL);
ini_set('display_errors', 1);

        include('./dbase.php');
        
            $user = $_POST['username'];
            $passwd = $_POST['password'];
            $key = $_POST['key'];
            
            echo "<br><br>Do sql query<br>";
            echo $user."<br>";
            echo $passwd."<br>";
            echo $key."<br><br>";
    
    if (!isset($user) && isset($passwd)) {                    
        
        echo "Data should be there";
        
    }
else{
        
        $sql = "SELECT * FROM AdminUsers WHERE Username = '".$user."' AND Passwd = '".$passwd."' AND LoginKey = '".$key."'";
            echo $sql."<br>";
            
            
        $result = mysqli_query($connect, $sql);
            var_dump($result);
//        echo $result."<br>";
            
            
//            if (mysqli_num_rows($result) > 0) {
//                
//            }

            
        $resultCheck = mysqli_num_rows($result);
            if ($resultCheck) { echo"Read the results"; }
            echo $resultCheck."<br><br>";
            
                
        if (mysqli_num_rows($result) === 1) {
            echo "data found";
            $_POST['username'] = $user;
            header('Location: ../index.php');
        }
else{
            echo "No data found";
        }

//            if($resultCheck > 0){
//                
//                //die;
//            }

        mysqli_close($connect);
    }

?>
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 13:13:23
Quote Anchor link
Je bent wel bewust dat je vatbaar bent voor SQL-injection?

En voeg dit eens toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysqli_error($connect)
;

En wat zie je nu?
Gewijzigd op 01/06/2022 13:19:19 door - Ariën -
 
Ivo P

Ivo P

01/06/2022 13:18:24
Quote Anchor link
Arno van Zanten op 01/06/2022 12:43:41:
Okay nou blijft het in een loop hangen


Maar er zit geen loop in je script?

Wat is het resultaat van var_dump()?



Toevoeging op 01/06/2022 13:20:09:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$result
= mysqli_query($connect, $sql);
if($result === false) {
   exit('debug: foutmelding op query op regel '.__LINE__ . ' : ' . mysqli_error($connect));
}
[
/code]
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 13:27:49
Quote Anchor link
Als je de juiste structuur zoekt, dan is deze 'boilerplate' een mooi voorbeeld:
https://github.com/arienclaij/sql-boilerplate

Kunnen nog wat foutjes inzitten, maar die haal ik er nog wel uit.
 
Arno van Zanten

Arno van Zanten

01/06/2022 13:30:07
Quote Anchor link
Ivo P op 01/06/2022 13:18:24:
Arno van Zanten op 01/06/2022 12:43:41:
Okay nou blijft het in een loop hangen


Maar er zit geen loop in je script?

Wat is het resultaat van var_dump()?
var dump resultaat:

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(6) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }


Toevoeging op 01/06/2022 13:20:09:

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
<?php
$result
= mysqli_query($connect, $sql);
if($result === false) {
   exit('debug: foutmelding op query op regel '.__LINE__ . ' : ' . mysqli_error($connect));
}
[
/code]
[
/quote]



[
size=xsmall][i]Toevoeging op 01/06/2022 13:33:52:[/i][/size]

[
quote="- Ariën - op 01/06/2022 13:13:23"]
Je bent wel bewust dat je vatbaar bent voor SQL-injection?

En voeg dit eens toe:
[
code]mysqli_error($connect)[/code];

En wat zie je nu?
[
/quote]
Geen error
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 13:33:54
Quote Anchor link
En nu nog de error ...?

PS: Je bericht leest hier een beetje lastig.
Gewijzigd op 01/06/2022 13:35:04 door - Ariën -
 
Arno van Zanten

Arno van Zanten

01/06/2022 13:36:35
Quote Anchor link
Ivo P op 01/06/2022 13:18:24:
Arno van Zanten op 01/06/2022 12:43:41:
Okay nou blijft het in een loop hangen


Maar er zit geen loop in je script?

Wat is het resultaat van var_dump()?



Toevoeging op 01/06/2022 13:20:09:

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
25
26
<?php
$result
= mysqli_query($connect, $sql);
if($result === false) {
   exit('debug: foutmelding op query op regel '.__LINE__ . ' : ' . mysqli_error($connect));
}
[
/code]
[
/quote]
 hierop krijg ik fout te zien


[size=xsmall][i]Toevoeging op 01/06/2022 13:37:11:[/i][/size]

[
quote="- Ariën - op 01/06/2022 13:33:54"]
En nu nog de error ...?

PS: Je bericht leest hier een beetje lastig.
[
/quote]

geen errors

[size=xsmall][i]Toevoeging op 01/06/2022 13:38:45:[/i][/size]

Probleem is dat ik geen errors krijg
De var_dump geeft hij wel aan
Als ik alles correct uitvoer, stuurt hij de sessie niet aan
Ik ben een beetje het spoor bijster
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 13:40:06
Quote Anchor link
Fix je tags in je bericht even. Zoals je ziet leest dit best wel lastig.
Gewijzigd op 01/06/2022 13:40:46 door - Ariën -
 
Arno van Zanten

Arno van Zanten

01/06/2022 13:41:06
Quote Anchor link
Wat ik wil, is een login voor mijn cms paneel, maar op ment krijg ik de login niet correct.
Ik kan wel scripts van het internet afplukken, maar dat wil ik niet.
Ik moet het ook implanteren in mijn eigen scripts, want het gaat erom dat ik mijn eigen design alles ga gebruiken

Toevoeging op 01/06/2022 13:44:34:

header.php

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
<?php
// header.php

        session_start();

    include("./inc/dbase.php");
    echo "
    <BODY>
        <head>
            <link rel='stylesheet' href='./inc/style.css'>
        </head>
            <div class='content'>
    
    <table class='table'>
            <tr>
                <td colspan='6'>
                    <img src='./img/banner_small.png'>
                </td>
            </tr>
    "
;
?>

index.php

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
<?php
// index file concept happy-truffles.com

error_reporting(E_ALL);
ini_set('display_errors', 1);
$result = mysqli_query($connect, $sql);
if($result === false) {
   exit('debug: foutmelding op query op regel '.__LINE__ . ' : ' . mysqli_error($connect));
}


    include("./inc/header.php");
    
    if(!isset($_POST['username'])){
        
        include("./inc/login.php");
    }
else{
//    if(isset($_POST['username'])){
    
            include("./inc/menu.php");
            include("./inc/view.php");    
    }

    include("./inc/footer.php");
?>


login.php

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
<?php
            echo "
                <tr>
                    <td class='login' colspan='6'>First you need to login</td>
                </tr>"
;
            
            // FORM to login :" Username, Password, LoginKey
        echo"
                <tr>
                    <td colspan='6' class='login'>
            <form action='./inc/logincheck.php' method='post'>
                <input type='text' name='username' placeholder='Username' required><br>
                <input type='password' name='password' placeholder='Password' required><br>
                <input type='text' name='key' placeholder='Key' required><br>
                <button type='submit' name='submit'>Login</button><br>
            </form>
                    </td>
                </tr>
        "
;
?>


logincheck.php (waar ik dus nu mee zit)

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
        echo"test<br>";

error_reporting(E_ALL);
ini_set('display_errors', 1);

        include('./dbase.php');
        
            $user = $_POST['username'];
            $passwd = $_POST['password'];
            $key = $_POST['key'];
            
            echo "<br><br>Do sql query<br>";
            echo $user."<br>";
            echo $passwd."<br>";
            echo $key."<br><br>";
    
    if (!isset($user) && isset($passwd)) {                    
        
        echo "Data should be there";
        
    }
else{
        
        $sql = "SELECT * FROM AdminUsers WHERE Username = '".$user."' AND Passwd = '".$passwd."' AND LoginKey = '".$key."'";
            echo $sql."<br>";
            
            
        $result = mysqli_query($connect, $sql);
                if($result === false) {
                exit('debug: foutmelding op query op regel '.__LINE__ . ' : ' . mysqli_error($connect));
                }

        
            echo "Var_dump result<br>";
            var_dump($result);
            echo "</br>mysqli error result<br>";
            mysqli_error($connect);
            
            
                
//        echo $result."<br>";
            
            
//            if (mysqli_num_rows($result) > 0) {
//                
//            }
            
//        $resultCheck = mysqli_num_rows($result);
//            if ($resultCheck) { echo"Read the results"; }
//            echo $resultCheck."<br><br>";
//            
//                
//        if (mysqli_num_rows($result) > 0) {
//            echo "data found<br>";
//            $_POST['username'] = $user;
//            echo $_POST['username'] = $user;
//            header('Location: ../index.php');
//        }else{
//            echo "No data found<br>";
//            $_POST['username'] = $user;
//            echo $_POST['username'] = $user;
//            echo $_POST['password'] = $passwd;
//            echo $_POST['key'] = $key;
//        }
//            if($resultCheck > 0){
//                
//                //die;
//            }

        mysqli_close($connect);
    }

?>
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 13:45:05
Quote Anchor link
Maar kan je jouw berichten in dit topic even leesbaar maken? Je bent vermoedelijk een tag vergeten.
 
Arno van Zanten

Arno van Zanten

01/06/2022 13:46:24
Quote Anchor link
dbase.php
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
<?php
    $datahost
= hidden;
    $datauser = hidden;
    $datapass = hidden;
    $dataname = hidden;


    
    $connect = mysqli_connect($datahost, $datauser, $datapass, $dataname) or die("Connection Failed");
    $db = mysqli_select_db($connect, 'happy_truffles_com_happytruffles');
    
    if($connect)
    {

        echo "connected";
    }
else{
        echo "Not Connected";
    }

?>


footer.php
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
<?php
// footer.php
    echo "
        <tr class='footer'>
            <td colspan='6'><img src='./img/footer.png'></td>
        </tr>"
;
        if(isset($_POST['username'])){
        echo"
        
        <tr>
            <td colspan=''6><a href='./inc/logout.php'>logout</a></td>
        </tr>"
;
        }
    <
/table>
<
/div>    
        ";
?>

logout.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
unset($_SESSION['username']);
header('Location : ../index.php');
?>


Toevoeging op 01/06/2022 13:48:09:

- Ariën - op 01/06/2022 13:45:05:
Maar kan je jouw berichten in dit topic even leesbaar maken? Je bent vermoedelijk een tag vergeten.


Dit zijn de scripts voor de admin panel, maar ik an mijn eigen fout niet vinden.
Heb sommige onderdelen even uitgezet om de logincheck even te onderbreken om te zien welke outputs hij aangeeft, zet ik alles aan, dan blijft hij in de login hangen.
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 13:49:04
Quote Anchor link
Wat gebeurt er nu precies?
Al je geen error krijgt, dan wordt de data goed opgehaald. Dan rest je enkel nog een sessie aan te maken.

Het loont ook om elke statement te voorzien van een bepaalde tekst, zodat je kan zien welke route je script afloopt.
Gewijzigd op 01/06/2022 13:51:17 door - Ariën -
 
Arno van Zanten

Arno van Zanten

01/06/2022 13:52:52
Quote Anchor link
- Ariën - op 01/06/2022 13:49:04:
Wat gebeurt er nu precies?
Al je geen error krijgt, dan wordt de data goed opgehaald. Dan rest je enkel nog een sessie aan te maken.

Het loont ook om elke statement te verduren van een bepaalde tekst, zodat je kan zien welke route je script afloopt.

Tja sessies, daar gaat het al fout, want die houdt hij op een bepaalde manier dus niet vast.
Kan iemand mij daarmee helpen?
Ik ben best bereid als deze zaak uiteindelijk loopt, er een vergoeding tegenover te stellen.
echter is op moment niet mogelijk, maar over alles valt te praten.
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 13:55:03
Quote Anchor link
Daarom het advies om tijdens de ontwikkeling een tekst in elke statement te laten echo'en. Dan weet je snel waar het fout gaat.
 
Arno van Zanten

Arno van Zanten

01/06/2022 13:56:56
Quote Anchor link
Dat doe ik ook normaal, maar de logincheck en login daar zit ergens een fout, maar ik kan hem niet vinden
 
Ivo P

Ivo P

01/06/2022 13:58:37
Quote Anchor link
het staat wat verborgen, maar $result bevat dus
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(6) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }

Dus de query lukt. En je krijgt 1 resultaat terug.

Maar gaat je oorsponkelijke script niet gewoon mis, omdat je probeert de resultset $result naar je scherm te sturen, ipv met fetch-functies uit de resultset je rijen te halen?
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 14:00:35
Quote Anchor link
Arno van Zanten op 01/06/2022 13:56:56:
Dat doe ik ook normaal, maar de logincheck en login daar zit ergens een fout, maar ik kan hem niet vinden


Ik zie wel een hoop gecommentariseerde scripts staan. Die worden niet uitgevoerd.
 
Arno van Zanten

Arno van Zanten

01/06/2022 14:04:12
Quote Anchor link
- Ariën - op 01/06/2022 14:00:35:
Arno van Zanten op 01/06/2022 13:56:56:
Dat doe ik ook normaal, maar de logincheck en login daar zit ergens een fout, maar ik kan hem niet vinden


Ik zie wel een hoop gecommentariseerde scripts staan. Die worden niet uitgevoerd.

Klopt, ik zou het fijn vinden als iemand voor mij de login.php en logincheck.php zou kunnen maken. gewoon simpel. En zodat hij dus ook een sessie maakt, die wel werkt



Toevoeging op 01/06/2022 14:05:31:

Ben hier al dagen mee bezig en het werkt nog voor geen meter.
Youtube afgezocht, bekeken en alles geprobeerd, maar nog steeds niet het gewenste resultaat.
Ik wordt er echt gek van en de site moet toch echt van de grond komen
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 14:10:17
Quote Anchor link
De opbouw is niet heel lastig:

- Kijk of het formulier verstuurd is via de POST-methode
- Valideer eerst de velden, en kijk of er een wachtwoord en/of gebruikersnaam ingevuld is.
- Als de validatie gelukt is: Controleer met SELECT-query of username en wachtwoord op te halen zijn
Indien false: Toon error
Anders: ga verder met de uitvoer

- Als de query gelukt is ga je vervolgens met mysqli_num_rows() kijken of er een record wordt gegeven.
Zo ja, en je krijgt een 1 terug: Dan is de gebruiker gevonden, en plaats je de PHP-sessie.
Zo niet, dan geef je een algemene error terug met: Ongeldige username/password.

Vertaal dit eens naar een PHP-script.

En misschien geeft deze SQL Boilerplate ook een beetje een ingeving over de opbouw:
https://github.com/arienclaij/sql-boilerplate

Je kan deze downloaden (of clonen/forken als je dat kan).
Gewijzigd op 01/06/2022 15:36:43 door - Ariën -
 

Pagina: 1 2 volgende »



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.