Ik heb een scriptje van een site gehaald die vrij gemakkelijk aan te passen zou moeten zijn.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>
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"); ?> |
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); ?> |
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"; ?> |
set_time_limit(0)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.
484 keer connectenquote: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)
Beetje een gok omdat ik niet weet hoe de tabellen in elkaar stekenquote: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 ]
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) |
Ik denk dat de externe database connection een timeout geeft. Daar draait geen php script, en dus heb je niet aan set_time_limit()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)
Je switch is verkeerd.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 ]
Thumb is met een h.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";
Daar is ie weer de PHP manualquote: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?
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); } ?> |
Inderdaad erg vaag want die tekst staat nergens in de code, spooky.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!
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.quote:Iemand een idee wat er fout gaat?
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.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..
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> |
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 ?
aldus: http://nl3.php.net/manual/nl/keyword.paamayim-nekudotayim.phpquote: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.
Ik heb het al opgelost, ik had geen join nodigquote: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)
Weet je inmiddels welke query's worden uitgevoerd?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
Dan geef ik 't op.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
Geweldig antwoordquote: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 ]
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); } ?> |
1 2 3 4 | <? include('bla.php'); echo $data; ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |