Archief - PHP: Query probleemke

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

orez

Legacy Member
Jaja, nu dak ga proberen ASP.NET s ff te laten voor wa het is, gaak mij wa verdiepen in PHP, en ier af en toe s komen lastig doen gelik nu :)

Nuja soit zit me een probleem da em "registreerscriptje" ni echt wilt uitvoeren.

(Ben puur ant testen eh, gelieve ni te zeggen, kzou ier me sessions, en bla bla werken, kzit daar nog ni, probeer puur iets in ne dbase te krijgen atm :p)

FORM

PHP:
<body>
<form action="login.php" method="post">
Login: <input type="text" name="login" /><br />
Pass: <input type="password" name="pass" /><br />
<input type="submit" />
</form>
</body>

REGISTR.PHP
PHP:
<body>
<?php
//database variabelen
$MySQL_host = "localhost";
$MySQL_user = "orez";
$MySQL_pass = "test";
$MySQL_db = "jsdp";

//verbinding maken met MySQL Server
mysqli_connect($MySQL_host, $MySQL_user, $MySQL_pass);

//juiste database selecteren en gebruiken
mysqli_select_db($MySQL_db);

//gegevens in database opslaan
$username = $_POST["login"];
$pass = sha1($_POST["pass"]);
$time = date("Y-m-d H:i:s");

mysqli_query("INSERT INTO tblLogin(username, pass_sha1, last_login) VALUES('$username', '$pass', '$time')") or die("Query is mislukt");

echo $username . "<br />";
echo $pass . "<br />";
echo $time . "<br />";

?>
</body>

DATABASE TABLE
PHP:
 CREATE TABLE `tblLogin` (
`loginid` INT( 8 ) NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 40 ) NOT NULL ,
`pass_sha1` VARCHAR( 40 ) NOT NULL ,
`last_login` DATETIME NOT NULL ,
UNIQUE (
`loginid` ,
`username` ,
`pass_sha1`
)
)

den error zit op de mysqli_query lijn, want als ik et uitvoer krijg ik telkens Query mislukt, en gebruik ik mysqli_error, dan toont em ook Query mislukt, ma nix van error :/

en zelf zie ik de fout ni echt in, volgens mij is mn SQL statement toch just??

medic

Legacy Member
2 dingen die volgens mij op't eerste zich de oorzaak kunnen zijn :
- uw gehashed paswoord is te lang voor de cel
- ik denk dat ge voor het type DATETIME een unix-timestamp moet gebruiken, en niet een zelf opgemaakte datum zoals ge in dit geval gebruikt.

Mag'k u ook aanraden om de volgende insert-syntax te gebruiken, die is imo iets overzichtelijker :
INSERT INTO tabel SET veld='waarde', veld='waarde', veld='waarde', veld='waarde', ... ;

orez

Legacy Member
aangepast zoals dagge et gezegd hebt

Database field van pass met 10 tekens vermeerderd, maar normaal is een sha1 hash telkens 40 tekens. daarmee dak die op 40 had gezet

heb nu dit

PHP:
//gegevens in database opslaan
$username = $_POST["login"];
$pass = sha1($_POST["pass"]);
//$time = date("Y-m-d H:i:s");

mysqli_query("INSERT INTO tblLogin SET username='$username' pass_sha1='$pass'") or die("Query is mislukt");

//echo $username . "<br />";
//echo $pass . "<br />";
//echo $time . "<br />";

?>

heb dus voorlopig die DATETIME op allow nulls gezet... kank later wel ff uitzoeken dan, maar em doet nog steeds niets :(

(connection test is wel geslaagd btw..)

medic

Legacy Member
ge zout trouwens een comma vergeten in uw query

INSERT INTO tblLogin SET username='$username', pass_sha1='$pass'

orez

Legacy Member
mysqli_query("INSERT INTO tbllogin SET username='ble', pass_sha1='bla'") or die("Query Mislukt");

dit ist...

als ik Query execute in phpMyAdmin werket wel zonder enig probleem...
Run ik et via mijn dingske, blijf ik Query Mislukt krijgen...

Krijg nu echt wel et schijt ervan :doh:

*edit: idd strlen(sha1) = 40 staat ook www.php.net, nuja soit :/ ni da dees erveel toe doet vot moment

Dece

Legacy Member
doe eens
PHP:
//postdata of error tonen
$username = !empty($_POST["login"])?$_POST["login"]:die('lege username');
$pass = !empty($_POST["pass"])?sha1($_POST["pass"]):die('leg passwoord');
//query uitvoeren of error tonen
mysqli_query("INSERT INTO tbllogin SET username='ble', pass_sha1='bla'") or die(mysql_error());

orez

Legacy Member
no difference dece...

Postdata gaf hij mij, heb da getest door ze te echo'en en ff mn query in commentaar te steken.

Als ik mysql_error of mysqli_error gebruik, dan krijg ik gewoon nix nimeer op me pagina te zien, All blank :s

ksnap er hier echt nix nimeer van

*edit, ok soit ge zou kunnen zeggen em toont nix, dus tis goed uitgevoerd, ma da ist ni... staat nix bij in me dbase... en aan me config enzo kant ni liggen denkek aangezijn phpMyAdmin zonder enige probs werkt :s

maT'

Legacy Member
mixed mysqli_query ( mysqli link, string query [, int resultmode])

PHP:
$link = mysqli_connect($MySQL_host, $MySQL_user, $MySQL_pass, $MySQL_db);

...
mysqli_query($link, "INSERT INTO tbllogin SET username='ble', pass_sha1='bla'");

Kan ook via een object oriented manier benaderd worden.

orez

Legacy Member
maT' zei:
mixed mysqli_query ( mysqli link, string query [, int resultmode])

PHP:
$link = mysqli_connect($MySQL_host, $MySQL_user, $MySQL_pass, $MySQL_db);

...
mysqli_query($link, "INSERT INTO tbllogin SET username='ble', pass_sha1='bla'");

Kan ook via een object oriented manier benaderd worden.

dieje $link toestand werkt ook ni..

Zal morgen s voor die OO way kijken.. ma nu worrek er toch te zot van
:unsure:

anywayz tnx for the help all already..
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan