Avatar billede agent-orange Nybegynder
28. september 2003 - 17:22 Der er 13 kommentarer og
1 løsning

Udtræk efter bestemte oplysninger.

Hej,

I forbindelse med et mindre community er jeg igang med at lave en mulighed for at få oplyst sin kode, ved at kombinere email og et hjælpeord i en <form>.

Problemet er at der intet sker når jeg forsøger at hive de data frem.

Koden :

<?php
IF ($request){
include("conf.php");
mysql_query("SELECT * FROM user WHERE mail = '$mail' AND help = '$help'") or die ("Kunne ikke vælge felter i database-tabellen");
?>

Vi har genkendt følgende email adresse: <? echo "$mail";?>
Din kode er : <? echo "$password";?>

<? } ELSE { ?>

<form method="post" action=<? echo $PHP_SELF; ?>>

Din email adresse : <input type="text" name="mail" id="toern">

Hvad er din mors fornavn : <input type="password" name="help" id="toern">

<input type="hidden" name="action" value="request">
<input type="image" value="request" src="grafik/ok.gif">
</form>
<? } ?>

---------
Hvad gør jeg forkert?

Og er der en der ligger inde med en nemmere (sikre) måde at lave password request er jeg lutter øre..

På forhånd tak!
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 17:43 #1
du har jo ikke sagt at $password variablen skal være outputtet af mysql query'en.
rettelse-ting:

$query = mysql_query("SELECT * FROM user WHERE mail = '".ereg_replace("\'", "", $mail)".' AND help = '".ereg_replace("\'", "", $$help)."'") or die ("Kunne ikke vælge felter i database-tabellen");
$sqlout = mysql_fetch_array($query);
?>
Vi har genkendt følgende email adresse: <? echo "$sqlout[mail]";?>
Din kode er : <? echo "$sqlout[password]";?>

<? } else { ?>


man skal altid sørge for at fjerne tegnet ' fra input til sql, da det ses som en del af queryen.
Avatar billede agent-orange Nybegynder
28. september 2003 - 17:50 #2
Nu gav den en parse error i linien med :

mysql_query("SELECT * FROM user WHERE mail = '".ereg_replace("\'", "", $mail)".' AND help = '".ereg_replace("\'", "", $$help)."'") or die ("Kunne ikke vælge felter i database-tabellen");

Jeg kan desværre ikke gennemskue eventuelle slåfejl fra din side (udover muligvis $$help)
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 17:50 #3
bemærk hvordan jeg gjorde svaret bare lidt mysql relevant ;)
Avatar billede agent-orange Nybegynder
28. september 2003 - 17:52 #4
Hvad mener du? er mit spørgsmål ikke mysql relateret?
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 18:02 #5
der er 2 $ ved siden af hinanden i $$help. nok derfor
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 18:07 #6
den der > or die ("Kunne ikke vælge felter i database-tabellen"); < virker heller ikke.
brug dette istedet. sæt ind efter query'en.
if ($mysql_affected_rows == 0) print "Kunne ikke vælge felter i database-tabellen";
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 18:08 #7
hov!
if (mysql_affected_rows() == 0) print "Kunne ikke vælge felter i database-tabellen";
såen her istedet.
Avatar billede agent-orange Nybegynder
28. september 2003 - 18:23 #8
Nu ser den ud som du har forslået :

<?php
IF ($request){
include("conf.php");
$query = mysql_query("SELECT * FROM user WHERE mail = '".ereg_replace("\'", "", $mail)".' AND help = '".ereg_replace("\'", "", $help)."'")  if (mysql_affected_rows() == 0) print "Kunne ikke vælge felter i database-tabellen";
$sqlout = mysql_fetch_array($query);
?>

Men der opstår stadig en parse error i query linien
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 18:25 #9
<?php
IF ($request){
include("conf.php");
$query = mysql_query("SELECT * FROM user WHERE mail = '".ereg_replace("\'", "", $mail)."' AND help = '".ereg_replace("\'", "", $help)."'")  if (mysql_affected_rows() == 0) print "Kunne ikke vælge felter i database-tabellen";
$sqlout = mysql_fetch_array($query);
?>

der vist, byttede rundt på et " og et .
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 18:26 #10
lige efter $mail)
Avatar billede agent-orange Nybegynder
28. september 2003 - 18:34 #11
Nok fordi jeg har byttet rundt med dine tegn, men forsøgte også at teste det lige efter bogen, stadig uden held..

Jeg er virkelig på bar bund.. Undskyld
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 18:45 #12
arh
<?php
IF ($request){
include("conf.php");
$query = mysql_query("SELECT * FROM user WHERE mail = '".ereg_replace("\'", "", $mail)."' AND help = '".ereg_replace("\'", "", $help)."'");
if (mysql_affected_rows() == 0) print "Kunne ikke vælge felter i database-tabellen";
$sqlout = mysql_fetch_array($query);
?>

du havde glemt at sætte et ; der hvor du fjernede "or die(..."
Avatar billede viper_killerguy Nybegynder
28. september 2003 - 18:46 #13
det skal nok komme til at virke på et eller andet tidspunkt
Avatar billede agent-orange Nybegynder
28. september 2003 - 19:39 #14
Jaa..

Mange tak for din indsats og høje tålmodighed.

Nu får jeg oplysningerne, mangler bare et par småfejl som jeg selv burde kunne løse!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester