abonnement Unibet Coolblue
  maandag 14 februari 2005 @ 15:06:09 #1
95623 Johan-Derksen
Hoofdredacteur VI
pi_25086430


Vorige delen:
[PHP] voor dummies
[PHP] voor dummies - Deel 2
[PHP] voor dummies - Deel 3
[PHP] voor dummies - Deel 4

Zie ook:
FAQ - Algemene kleine vragen. Part 2.
http://www.php.net
http://www.php.net/docs.php


Ik trap af
quote:
<?php
session_start();
?>

<html>
<head>
<title>Login pagina</title>
</head>
<body>

<form method="post" action="login.php">
<input type="hidden" name="Submit" value="1">
<input type="text" name="gebruikersnaam">
<input type="text" name="password_old">
<input type="password" name="password_new">
<input type="password" name="password_new_check">
<input type="submit" value="Login">
</form>

<p>

<?php


$DBHost = "iets.nl";
$DBLogin = "iets2";
$DBPassword = "nogiets";
$DBDatabase = "iets2";

mysql_connect("$DBHost", "$DBLogin", "$DBPassword");
@mysql_select_db("$DBDatabase");



// er van uitgaande dat je weet hoe je een form maakt, en de variables doorspeelt aan een ander script
$gebruikersnaam = md5($_POST['gebruikersnaam']);
$password_old = md5($_POST['password_old']);
$password_new = md5($_POST['password_new']);
$password_new_check = md5($_POST['password_new_check']);

// Hier heb je dus waardes uit een form gehaalt wat een gebruiker heeft ingevult.


if (!empty($password_old) && !empty($password_new) && !empty($password_new_check)) {
$sql=mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam='$username'");
while($data=mysql_fetch_array($sql)) { // Je zoekt in de database naar de gebruiker die op dit moment is ingelogt.

if ($data['password'] == $password_old) {
if ($password_new == $password_new_check) {

mysql_query("UPDATE gebruikers SET password='$password_new' WHERE gebruikersnaam = 'gebruikersnaam'");
// hiermee zeg je dus: verander het wachtwoord naar het nieuwe wachtwoord,
// maar alleen bij degene met --> $username <-- die username

}
else {
$error = "De wachtwoorden komen niet overeen";
}
}
else {
$error = "Het wachtwoord is onjuist";
}
}
}
else { $error = "Je bent iets vergeten in te vullen."; }

?>

</body>
</html>
Ik heb een scriptje van een site gehaald die vrij gemakkelijk aan te passen zou moeten zijn.
Middels dit script zou men hun eigen password kunnen aanpassen.
Ik heb een tabel gebruikers en een kolom gebruikersnaam in die tabel.

Ik heb de gegevens aangepast maar het werkt niet...
Na het invullen van de gebruikersnaam, oude wachtwoord, nieuwe ww en nogmaals nieuwe ww, springt ie terug naar login.php met als tekst: Je gebruikersnaam of password klopt niet.
Erg vaag!
Iemand een idee wat er fout gaat?
Fok!-Cup: Robarka proficiat!
Eind januari start de nieuwe Fok!-Cup. Meer info volgt half januari
  maandag 14 februari 2005 @ 15:23:50 #2
73209 dnzl
Minimalist.
pi_25086642
Ik probeer naast het invoegen van data in mySQL. Een mailtje te versturen. Nu loop ik een beetje stuk. Terwijl ik toch het idee heb dat ik geen fouten maak.

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
<?
$sql = "SELECT email FROM users WHERE firstname = '". $row['nsiemp'] ."'"; 
$result = mysql_query($sql);

   if (!$result) {
       echo "Kon de query ($sql) niet uitvoeren (E-mail melding niet verzonden): " . mysql_error();
       exit;
   }
   
   if (mysql_num_rows($result) == 0) {
       echo "Geen uitgaande calls gevonden.";
       exit;
   }

   while ($row = mysql_fetch_assoc($result)) {

$toAdres = $row['email'];

switch($_POST['action']){
   default:

   break;
   case "versturen":
      $mailTitel = "Nieuwe call op NSI Employees";
      $mailText.="\nBeste,";
      $mailText.="\nJe hebt een nieuwe call ontvangen op NSI Employees.";
      $mailText.="\nDetails kun je bekijken via http://w.w.com";
      mail($toAdres, $mailTitel, $mailText, "From: NSI");
?>
  FOK!-Schrikkelbaas maandag 14 februari 2005 @ 15:28:57 #3
1972 Swetsenegger
Egocentrische Narcist
pi_25086709
Ik ben nog steeds met mijn conversie bezig van een externe db naar een lokale db.

Een en ander werkt nu, maar op de server staat een maximum execution time voor php waar ik lastig wat aan kan veranderen.

Ik moet mijn code dus optimaliseren.

Nu heb ik dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$query
="SELECT FAQ_id, question, answer FROM FAQ WHERE language_id=1 OR language_id=2";
$result=mysql_query($query);
        while(
$row=mysql_fetch_array($result)){


$query2="SELECT product_id FROM FAQ_product WHERE FAQ_id=".$row['FAQ_id']."";
$result2=mysql_query($query2);
$row2=mysql_fetch_array($result2);
$query3="SELECT product_code FROM product WHERE product_id=".$row2['product_id']."";
$result3=mysql_query($query3);
$row3=mysql_fetch_array($result3);
?>


hetgeen dus de originele data uit de externe db haalt.

Maar er moet toch een manier zijn om dit in 1 query te doen ipv van 3 waarbij ik ook nog 484 keer de db connectie moet openen en sluiten (Het gaat dus om 484 rows, in 3 verschillende tabellen)

Nu vind ik die sql reference manual erg wazig, ik begrijp in ieder geval dat ik met aliasen voor de verschillende tabel namen moet gaan werken en join's maar het is nog een beetje abrcadabra voor me.

Tipje van de sluier iemand?

Ondertussen heb ik query 1 en 2 al samen gevoegd. Nu query 3 er nog bij

1
2
3
<?php
$query
="SELECT FAQ.FAQ_id, FAQ.question, FAQ.answer, FAQ_product.product_id FROM FAQ LEFT JOIN FAQ_product ON FAQ.FAQ_id = FAQ_product.FAQ_id WHERE language_id=1 or language_id=2";
?>


[ Bericht 78% gewijzigd door Swetsenegger op 14-02-2005 15:37:09 ]
pi_25086887
tvp'tje
pi_25086890
quote:
Op maandag 14 februari 2005 15:28 schreef Swetsenegger het volgende:
Een en ander werkt nu, maar op de server staat een maximum execution time voor php waar ik lastig wat aan kan veranderen.
set_time_limit(0)
Dit zorgt dat de execution time weg gaat, dus geen limiet.
Je kan ipv. 0 ook 60 neerzetten, dit is het aantal seconden dat het script mag lopen. (standaard: 30)
pi_25088281
Oke, ik heb een upload script gemaakt.
Deze upload de image.
als gelukt $data .="gelukt";
Resized de image
als gelukt $data .="resized";
maakt een tumbnail
als gelukt $data .="tumbnail created";
voegt een banner toe
als gelukt $data .="banner added";

Nu als het een grote foto is dan duurt het een tijdje, ik begreep dat je tussen die stappen ook de data naar de browser kan sturen. flush()
heeft iemand een voorbeeld van zo'n script?
pi_25088586
quote:
Op maandag 14 februari 2005 15:28 schreef Swetsenegger het volgende:
Ik ben nog steeds met mijn conversie bezig van een externe db naar een lokale db.

Een en ander werkt nu, maar op de server staat een maximum execution time voor php waar ik lastig wat aan kan veranderen.

Ik moet mijn code dus optimaliseren.

Nu heb ik dit:
[ code verwijderd ]

hetgeen dus de originele data uit de externe db haalt.

Maar er moet toch een manier zijn om dit in 1 query te doen ipv van 3 waarbij ik ook nog 484 keer de db connectie moet openen en sluiten (Het gaat dus om 484 rows, in 3 verschillende tabellen)
484 keer connecten
Dan zou je nog makkelijker eerst de tabelen helemaal helemaal inlezen en in arrays zetten. Dan er doorheen loopen en er uit zoeken wat je nodig hebt. Dan ben je met 1x conecten en 3 query's klaar. Zo schokkend veel data zal dat toch niet zijn?
quote:
Nu vind ik die sql reference manual erg wazig, ik begrijp in ieder geval dat ik met aliasen voor de verschillende tabel namen moet gaan werken en join's maar het is nog een beetje abrcadabra voor me.

Tipje van de sluier iemand?

Ondertussen heb ik query 1 en 2 al samen gevoegd. Nu query 3 er nog bij
[ code verwijderd ]
Beetje een gok omdat ik niet weet hoe de tabellen in elkaar steken
1
2
3
4
5
SELECT f.*, product.*
FROM FAQ f
INNER JOIN FAQ_product fp ON fp.FAQ_id=f.FAQ_id
INNER JOIN product p ON p.product_id=fp.product_id
WHERE f.language_id IN (1,2)

(een INNER JOIN in plaats van een LEFT JOIN omdat ik aan neem dat FAQ of products niet leeg mogen zijn)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25088614
quote:
Op maandag 14 februari 2005 15:46 schreef Burning_RefleX het volgende:

[..]

set_time_limit(0)
Dit zorgt dat de execution time weg gaat, dus geen limiet.
Je kan ipv. 0 ook 60 neerzetten, dit is het aantal seconden dat het script mag lopen. (standaard: 30)
Ik denk dat de externe database connection een timeout geeft. Daar draait geen php script, en dus heb je niet aan set_time_limit()
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25088750
quote:
Op maandag 14 februari 2005 15:23 schreef dnzl het volgende:
Ik probeer naast het invoegen van data in mySQL. Een mailtje te versturen. Nu loop ik een beetje stuk. Terwijl ik toch het idee heb dat ik geen fouten maak.
[ code verwijderd ]
Je switch is verkeerd.

Een fout die makkelijk te vinden is met basic debuggen. Zet op strategische plaatsen een een echo of desnoods een die(), zodat je weet hoe je script loopt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25088902
quote:
Op maandag 14 februari 2005 18:17 schreef Darkomen het volgende:
Oke, ik heb een upload script gemaakt.
Deze upload de image.
als gelukt $data .="gelukt";
Resized de image
als gelukt $data .="resized";
maakt een tumbnail
als gelukt $data .="tumbnail created";
Thumb is met een h.
quote:
voegt een banner toe
als gelukt $data .="banner added";

Nu als het een grote foto is dan duurt het een tijdje, ik begreep dat je tussen die stappen ook de data naar de browser kan sturen. flush()
heeft iemand een voorbeeld van zo'n script?
Daar is ie weer de PHP manual
1
2
3
4
5
6
7
8
9
10
<?
echo str_repeat(" ", 256);
$i = 100;
while($i > 0) {
   echo $i." bottle".($i != 1 ? 's' : '')." of beer on the wall, ".$i." bottle".($i != 1 ? 's' : '')." of beer. Take one down and pass it around, ".(--$i)." bottle".($i != 1 ? 's' : '')." of beer on the wall<br>\n";
   flush();
   ob_flush();
   sleep(10);
}
?>
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25088991
ik heb ook een vraagje.. is het nederlandse boek PHP4 Het complete handboek hetzelfde als het engelse PHP 4 Bible ??? Zo ja... ok duidelijk zo nee, wat zijn de verschillen want ik heb heb PHP4 het complete handboek al..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  maandag 14 februari 2005 @ 19:15:24 #12
95623 Johan-Derksen
Hoofdredacteur VI
pi_25089250
Heeft iemand zin om even naar mn probleem in de openingspost te kijken?
Alvast bedankt
Fok!-Cup: Robarka proficiat!
Eind januari start de nieuwe Fok!-Cup. Meer info volgt half januari
pi_25089394
quote:
Op maandag 14 februari 2005 15:06 schreef Johan-Derksen het volgende:
Ik heb de gegevens aangepast maar het werkt niet...
Na het invullen van de gebruikersnaam, oude wachtwoord, nieuwe ww en nogmaals nieuwe ww, springt ie terug naar login.php met als tekst: Je gebruikersnaam of password klopt niet.
Erg vaag!
Inderdaad erg vaag want die tekst staat nergens in de code, spooky.
quote:
Iemand een idee wat er fout gaat?
Heb je al geprobeerd te debuggen. Klopt de data die je binnen krijgt. Krijg je errors/warnings? (zet error reporting aan!) Welke query's worden uitgevoerd? Klopt de data die de query's terug geven? etc etc.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  maandag 14 februari 2005 @ 19:58:13 #14
95623 Johan-Derksen
Hoofdredacteur VI
pi_25089538
Ok de fout uit de OP is teruggebracht...
er stond bovenin login.php en dat moest natuurlijk pass.php zijn...
Beetje dom
Maar goed...
Als ik nu een pass probeer te veranderen, dan verandert ie niet in de db...
Hij laadt ff maar doet niets daarna...
Er zit dus nog een fout in de communicatie met de db... Zal wel ergens een $ vergeten zijn of zo
Fok!-Cup: Robarka proficiat!
Eind januari start de nieuwe Fok!-Cup. Meer info volgt half januari
  maandag 14 februari 2005 @ 20:01:43 #15
95623 Johan-Derksen
Hoofdredacteur VI
pi_25089587
Eens kijken of ik ergens in kan bouwen dat ie een bevestiging geeft na het aanpassen...
Dan weet ik of ie wel het goede stuk van het script laadt
Fok!-Cup: Robarka proficiat!
Eind januari start de nieuwe Fok!-Cup. Meer info volgt half januari
  Lieve Belg maandag 14 februari 2005 @ 20:07:30 #16
86282 Jump
[Belg.] Jump (de ~ (m.))
pi_25089674
quote:
Op maandag 14 februari 2005 19:00 schreef markiemark het volgende:
ik heb ook een vraagje.. is het nederlandse boek PHP4 Het complete handboek hetzelfde als het engelse PHP 4 Bible ??? Zo ja... ok duidelijk zo nee, wat zijn de verschillen want ik heb heb PHP4 het complete handboek al..
ja het is hetzelfde, enkel vertaald. Alhoewel je in het Engels al een tweede versie van het boek hebt, waarbij een ganse hoop fouten uit het boek gehaald zijn, en dat de sccript nu werken met register_globals = ON. Veel script uit versie 1 werken niet als je register_globals op ON zet.

Er is nu ook "PHP 5 en MySQL het complete HANDBoek" verkrijgbaar in de betere boekhandel
Zie: http://www.academicservic(...)n%2F9039522812%2Ejsp
ALhoewel ik wel al betere boeken tegengekomen ben voor PHP (4 & 5)
Op zondag 28 oktober 2007 01:07 schreef clumsy_clown het volgende:
Jump daarentegen, is wáy minder braaf en lief dan hij lijkt
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; «shmoop|dingen» jawel, jij bent Superjump
  Lieve Belg maandag 14 februari 2005 @ 20:30:56 #17
86282 Jump
[Belg.] Jump (de ~ (m.))
pi_25089963
Omdat niemand nog het vorige deel gaat lezen

Weet iemand het verschil tussen de -> en de :: operator i ngebruik van classes en andere ?
Op zondag 28 oktober 2007 01:07 schreef clumsy_clown het volgende:
Jump daarentegen, is wáy minder braaf en lief dan hij lijkt
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; «shmoop|dingen» jawel, jij bent Superjump
  maandag 14 februari 2005 @ 20:33:35 #18
95623 Johan-Derksen
Hoofdredacteur VI
pi_25089985
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
<?php 
    session_start(); 
?> 

<html> 
<head> 
<title>Login pagina</title> 
</head> 
<body> 

<form method="post" action="pass.php"> 
<input type="hidden" name="Submit" value="1"> 
<input type="text" name="gebruikersnaam"> 
<input type="text" name="password_old"> 
<input type="password" name="password_new"> 
<input type="password" name="password_new_check"> 
<input type="submit" value="Login"> 
</form> 

<p> 

<?php 


$DBHost = "hh"; 
        $DBLogin = "hhh"; 
    $DBPassword = "hhhh"; 
        $DBDatabase = "hhh"; 

    mysql_connect("$DBHost", "$DBLogin", "$DBPassword"); 
        @mysql_select_db("$DBDatabase"); 

   


$gebruikersnaam = md5($_POST['gebruikersnaam']);
$password_old = md5($_POST['password_old']); 
$password_new = md5($_POST['password_new']); 
$password_new_check = md5($_POST['password_new_check']); 


if (!empty($password_old) && !empty($password_new) && !empty($password_new_check)) { 
    $sql=mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam='$gebruikersnaam'"); 
    while($data=mysql_fetch_array($sql)) { 
         
        if ($data['password'] == $password_old) { 
            if ($password_new == $password_new_check) { 
                 
                mysql_query("UPDATE gebruikers SET password='$password_new' WHERE gebruikersnaam = '$gebruikersnaam'"); 
               
            } 
            else { 
                $error = "De wachtwoorden komen niet overeen"; 
            } 
        } 
        else { 
            $error = "Het wachtwoord is onjuist"; 
        } 
    } 

else { $error = "Je bent iets vergeten in te vullen."; } 

?> 

</body> 
</html> 


DIt is dus mn huidige code... maar er wordt niet iets aangepast in de tabel gebruikers met kolom password
Dat is erg jammer
Fok!-Cup: Robarka proficiat!
Eind januari start de nieuwe Fok!-Cup. Meer info volgt half januari
pi_25090088
quote:
Op maandag 14 februari 2005 20:30 schreef Jump het volgende:
Omdat niemand nog het vorige deel gaat lezen

Weet iemand het verschil tussen de -> en de :: operator i ngebruik van classes en andere ?
quote:
Sometimes it is useful to refer to functions and variables in base classes or to refer to functions in classes that have not yet any instances. The :: operator is being used for this.
aldus: http://nl3.php.net/manual/nl/keyword.paamayim-nekudotayim.php
  FOK!-Schrikkelbaas maandag 14 februari 2005 @ 21:28:40 #20
1972 Swetsenegger
Egocentrische Narcist
pi_25090571
quote:
Op maandag 14 februari 2005 18:36 schreef SuperRembo het volgende:

[..]

484 keer connecten
Dan zou je nog makkelijker eerst de tabelen helemaal helemaal inlezen en in arrays zetten. Dan er doorheen loopen en er uit zoeken wat je nodig hebt. Dan ben je met 1x conecten en 3 query's klaar. Zo schokkend veel data zal dat toch niet zijn?
[..]

Beetje een gok omdat ik niet weet hoe de tabellen in elkaar steken
[ code verwijderd ]

(een INNER JOIN in plaats van een LEFT JOIN omdat ik aan neem dat FAQ of products niet leeg mogen zijn)
Ik heb het al opgelost, ik had geen join nodig
pi_25090587
quote:
Op maandag 14 februari 2005 20:33 schreef Johan-Derksen het volgende:

[ code verwijderd ]

DIt is dus mn huidige code... maar er wordt niet iets aangepast in de tabel gebruikers met kolom password
Dat is erg jammer
Weet je inmiddels welke query's worden uitgevoerd?

en weet je wat md5() doet?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  maandag 14 februari 2005 @ 21:35:08 #22
95623 Johan-Derksen
Hoofdredacteur VI
pi_25090637
ja md5 ken ik... en die haal ik weg bij gebruikersnaam...
Maar je punt over uitgevoerde query's kan ik niet goed controleren... zou niet weten hoe
Fok!-Cup: Robarka proficiat!
Eind januari start de nieuwe Fok!-Cup. Meer info volgt half januari
pi_25090817
quote:
Op maandag 14 februari 2005 21:35 schreef Johan-Derksen het volgende:
ja md5 ken ik... en die haal ik weg bij gebruikersnaam...
Maar je punt over uitgevoerde query's kan ik niet goed controleren... zou niet weten hoe
Dan geef ik 't op.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25090905
quote:
Op maandag 14 februari 2005 18:55 schreef SuperRembo het volgende:

[..]

Thumb is met een h.
[..]

Daar is ie weer de PHP manual
[ code verwijderd ]
Geweldig antwoord

Maar is dit ook mogenlijk?
File bla.php
1
2
3
4
5
6
7
8
9
10
11
12
<?
echo str_repeat(" ", 256);
$i = 100;
while($i > 0) {
   $data .= $i." bottle".($i != 1 ? 's' : '')." of beer on the wall, ".$i." bottle".($i != 1 ? 's' : '')." of beer. Take one down and pass it around, ".(--$i)." bottle".($i != 1 ? 's' : '')." of beer on the wall<br>\n";
   flush();
   $data .="";
      ob_flush();
   sleep(10);
}

?>


file bla2.php
1
2
3
4
<?
include('bla.php');
echo $data;
?>
pi_25091275
Lijkt me wel kunnen. Probeer 't eens zou ik zeggen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')