Fout in script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hein

Hein

12/06/2006 23:56:00
Quote Anchor link
Hallo,

Ik heb een PHP-MySQL script dat niet werkt.
Verschillende tabellen in de database kunnen opgvraagd worden, maar bij het inloggen wil het maar niet lukken de juiste user-wachtwoord combinatie te vergelijken.
Wat is er fout aan de script. (los van het feit dat 'ie wegens het testen nu halverwege stopt)

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
session_start();
?>


<html>
<head>
<title>inlogpagina voor de boekenbeurs</title>
<link rel="stylesheet" type="text/css" href="css.css" media="screen">
</head>
<body>

<br>
<TABLE WIDTH=100% HEIGHT=200 BORDER="1">
<TR BORDER="1">
<TD background="boeken-bieb.jpg">
<center><IMG SRC="boekenbeurs.JPG">
<BR><BR><BR><center><IMG SRC="login.JPG">
</TD>
</TR>
</TABLE>

<center>
<?php

if ($submit1) {
    
  $check = "1";
  $user1 = "root";
  $pass = "passwordvanjemysqldatabase";
  $host = "localhost";
  $dbdb = "boekendb";

    /* if (!mysql_select_db($dbdb, mysql_connect($host, $user1, $pass))) */

  if (!mysql_select_db($dbdb, mysql_connect($host, $user1))) {
    echo "Connectie met database mislukt.";
    exit();
    }
      

    $gebruiker = addslashes($gebruiker);
    $wachtwoord = addslashes($wachtwoord);

    //echo "voordat we gaan zoeken in de database is gebruiker ".$gebruiker." met wachtwoord ".$wachtwoord;
    // tot hier gaat alles goed


  if (!$query = mysql_query("SELECT * FROM users WHERE user = '$gebruiker' AND password = '$wachtwoord'")) {
    echo "opzoeken van user en password in de database mislukt  ";
    exit();
    }
else{
    echo "opzoeken in de database gelukt ".$gebruiker." met wachtwoord ".$wachtwoord;

    }


  // fout of goed wachtwoord doet er niet toe, hij geeft in alle gevallen aan dat het opzoeken in de database gelukt is
  
  $resultaat = mysql_fetch_array($query);
  $userid = $resultaat[userid];
  echo "   en de id van de user is : ".$useridnr;
  die();

  // de bovenstaande echo geeft uiteraard een lege useridnr omdat de querie mislukt is

  $results = mysql_num_rows($query);
  
  if ($results == '1') {
  //$datum = date("d-m-Y H:i");
  //$datum = date("Y-m-d H:i:s");

  
  $ipadres = $REMOTE_ADDR;
  $query = "INSERT INTO login (`id`, `user`, `ip`, `datum`) VALUES ('','$user','$ipadres',NOW())";
  if (!mysql_query($query)) {
  echo "actie om in login te schrijven mislukt";
  die(mysql_error());
  }

  
  $gebruiksid = "$ipadres-$user-$userid";
  setcookie("gebruikersid", $gebruiksid, time()+1800);
  
  // hoe display ik de inhooud van de cookie?

  echo "veel teksten om de tekst weer te vinden ".$gebruikersid;
  die();
  // debuginfo
  // echo "userid in login.php na session=" . $_SESSION['userid'].mysql_error();
  // exit();

  $voerin = "<meta http-equiv=refresh content=0;URL=boekenbeurs.php>";
  //echo $voerin;
  //pagina voor de goede login

  }
        
  else {
  $invoer = '<meta http-equiv=refresh content=0;URL=begin.html>';
  echo $invoer;
  //pagina voor de foute login
  }
}
  //endif ($submit)



if($check !='1') {
?>


<br><br><br>


<center>
<div id="table3">
<table width="30%" border="0" cellspacing="0" cellpadding="0">
<form method="post" action="boekenlogin.php" >
<tr><th colspan="2" align="center">Inloggen</tr>
<tr><td height="30" align="right">Gebruikersnaam:</td><td><input type="text" name="gebruiker" size="20"></tr>
<tr><td height="30" align="right">&nbsp;Wachtwoord:</td><td><input type="password" name="wachtwoord" size="20"></tr>
<tr><td colspan="2" height="30" align="center"><input type="submit" name="submit1" value="Login" ></tr>
</table>
</div>
</center>
<br>
<br>
<br>
<H2>Heb je nog geen wachtwoord?</H2>
<BR>
<input type="submit" name="submit2" value="Klik hier om je aan te melden" >

<?php
// die submit2 heb ik even uit de php code weggelaten
}
?>

</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Hein
 
PHP hulp

PHP hulp

17/11/2024 05:21:52
 
Robert Deiman

Robert Deiman

13/06/2006 00:01:00
Quote Anchor link
"if ($submit1) {"

Variabelen die uit je formulier komen doe je zo:

$_POST['formulierveldnaam']

in dit geval $_POST['submit1'];

Dat geld voor alle variabelen uit je formulier..

En om te controleren of het formulierveld al is verzonden kan je overigens beter:

if ($_SERVER['REQUEST_METHOD'] == "POST")
 
Wout van der Burg

Wout van der Burg

13/06/2006 08:19:00
Quote Anchor link
wat is de fout de krijgt dan?
 
- wes  -

- wes -

13/06/2006 09:02:00
Quote Anchor link
@wout : waarom is een konijn omdat hij achter een boom ?
 
Hein

Hein

13/06/2006 21:37:00
Quote Anchor link
De aanwijzingen van Robert staan in de script.
Als je wilt kijken wat er fout gaat:
http://strampke.mine.nu/boekenlogin.php

2 vragen:
- waarom doet de \n newline het niet
- het laatste woord tekst is gebruikersid. daarachter hoort te staan je ip adres, je usernaam en je userid
mooi dat die dat niet ophaalt uit de tabel.
En mooi dat die je bezoek wel wegschrijft in de login tabel.
en vreemd is dat hij op grond van je ip adres bij je eerste bezoek wél de koppeling maakt met je allereerste login.
Blijft dat cookie steeds op je client hangen?
moet ik soms in het script iets maken dat de oude cookie van de gast verwijdert voordat 'ie kan inloggen?
hier volgt het script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>


<html>
<head>
<title>inlogpagina voor de boekenbeurs</title>
<link rel="stylesheet" type="text/css" href="css.css" media="screen">
</head>
<body>

<br>
<TABLE WIDTH=100% HEIGHT=200 BORDER="1">
<TR BORDER="1">
<TD background="boeken-bieb.jpg">
<center><IMG SRC="boekenbeurs.JPG">
<BR><BR><BR><center><IMG SRC="inlogpagina.JPG">
</TD>
</TR>
</TABLE>

<center>
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
71
72
73
74
75
76
77
78
79
80
81
<?php

//if ($submit1) {  onderstaand de eerste verbetering

if ($_SERVER['REQUEST_METHOD'] == "POST") {    
  $check = "1";
  $user1 = "root";
  $pass = "passwordvanjemysqldatabase";
  $host = "localhost";
  $dbdb = "boekendb";

    /* if (!mysql_select_db($dbdb, mysql_connect($host, $user1, $pass))) */

  if (!mysql_select_db($dbdb, mysql_connect($host, $user1))) {
    echo "Connectie met database mislukt.";
    exit();
    }
      

    $gebruiker = addslashes($gebruiker);
    $wachtwoord = addslashes($wachtwoord);

    print "voordat we gaan zoeken in de database is gebruiker ".$gebruiker." met wachtwoord ".$wachtwoord."\n" ;
    // tot hier gaat alles goed

  if (!$query = mysql_query("SELECT * FROM users WHERE user = '$gebruiker' AND password = '$wachtwoord'")) {
    echo "opzoeken van user en password in de database mislukt  ";
    exit();
    }
else{
    print" opzoeken in de database gelukt ".$gebruiker." met wachtwoord ".$wachtwoord."\n";

    }


  // fout of goed wachtwoord doet er niet toe, hij geeft in alle gevallen aan dat het opzoeken in de database gelukt is
  
  $resultaat = mysql_fetch_array($query);
  $userid = $resultaat[userid];
  print "   en de id van de user is : ".$useridnr."\n";
  //die();

  // de bovenstaande echo geeft uiteraard een lege useridnr omdat de querie mislukt is


  $results = mysql_num_rows($query);
  
  if ($results == '1') {
  //$datum = date("d-m-Y H:i");
  //$datum = date("Y-m-d H:i:s");

  
  $ipadres = $REMOTE_ADDR;
  $query = "INSERT INTO login (`id`, `user`, `ip`, `datum`) VALUES ('','$user','$ipadres',NOW())";
  if (!mysql_query($query)) {
  echo "actie om in login te schrijven mislukt";
  die(mysql_error());
  }
else
    print " actie om in login te schrijven is gelukt"."\n";
  
  $gebruiksid = "$ipadres-$user-$userid";
  setcookie("gebruikersid", $gebruiksid, time()+1800);
  
  // hoe display ik de inhooud van de cookie?

  print "\n gebruikersid ".$gebruikersid;
  die();
  // debuginfo
  // echo "userid in login.php na session=" . $_SESSION['userid'].mysql_error();
  // exit();

  $voerin = "<meta http-equiv=refresh content=0;URL=boekenbeurs.php>";
  //echo $voerin;
  //pagina voor de goede login

  }
        
  else {
  $invoer = '<meta http-equiv=refresh content=0;URL=begin.html>';
  echo $invoer;
  //pagina voor de foute login
  }
}
  //endif ($submit)



if($check !='1') {
?>


<br><br><br>


<center>
<div id="table3">
<table width="30%" border="0" cellspacing="0" cellpadding="0">
<form method="post" action="boekenlogin.php" >
<tr><th colspan="2" align="center">Inloggen</tr>
<tr><td height="30" align="right">Gebruikersnaam:</td><td><input type="text" name="gebruiker" size="20"></tr>
<tr><td height="30" align="right">&nbsp;Wachtwoord:</td><td><input type="password" name="wachtwoord" size="20"></tr>
<tr><td colspan="2" height="30" align="center"><input type="submit" name="submit1" value="Login" ></tr>
</table>
</div>
</center>
<br>
<br>
<br>
<H2>Heb je nog geen wachtwoord?</H2>
<BR>
<input type="submit" name="submit2" value="Klik hier om je aan te melden" >

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// die submit2 heb ik even uit de php code weggelaten
}
?>

</body>
</html>
 
Hein

Hein

14/06/2006 00:08:00
Quote Anchor link
De fout lijkt te zitten in onderstaand stukje:

$resultaat = mysql_fetch_array($query);
$userid = $resultaat[userid];

Hieronder nogmaals met de SELECT ervoor
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
<?
if (!$query = mysql_query("SELECT * FROM users WHERE user = '$gebruiker' AND password = '$wachtwoord'")) {
    echo "opzoeken van user en password in de database mislukt  ";
    exit();
    }
else{
    print" opzoeken in de database gelukt ".$gebruiker." met wachtwoord ".$wachtwoord."\n  tot hier kennen we $gebruiker nog";

    }


  // maar onderstaand gaan we de mist in

  $resultaat = mysql_fetch_array($query);
  $userid = $resultaat[userid];
  print "   en de id van de user is : ".$useridnr."  en hier ben ik het spoor bijster \n";
  //die();
?>

Ik denk dat er een stomme fout in die mysql_fetch_array zit, maar ik zie het niet.
Gewijzigd op 01/01/1970 01:00:00 door Hein
 
Jan Koehoorn

Jan Koehoorn

14/06/2006 01:23:00
Quote Anchor link
In regel 14 gebruik je $useridnr in plaats van $userid.
 
Hein

Hein

14/06/2006 23:12:00
Quote Anchor link
Dank je Jan het is gelukt.

Ik ben bezig met een boekenbeurs.
Op veel middelbare scholen worden de boeken via Van Dijk geregeld. De kosten worden ieder jaar hoger.
Vorig jaar heb ik voor m'n zoons boeken gekocht via speurders, marktplaats en boekenbeurs.nl
Je weet dan nooit of de aangeboden boeken in goede staat zijn en hebt te maken met verzendkosten.
Daarom heb ik een boekenbeurs gemaakt die je op een Freesco server op school kan installeren.

Er moet best nog wel een en ander aan gesleuteld worden, zoals een aanpassing aan het script dat lolbroeken er geen java grappen in plaatsen.

Als je er eens naar wilt kijken en commentaar geven dan hoor ik dat graag.
En wie deze boekenbeurs op z'n eigen school wil hebben, mag hem zo gebruiken.
 



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.