Avatar billede stengaard Praktikant
10. september 2008 - 18:07 Der er 18 kommentarer

hvorfor virker dette ikke

mit spørgsmål går ud på at jeg taster brugernavn trykker på send men den skriver at bruger ikke findes

script indtastning

<form action="forgot.php" method="post" name="forgot">
  <h1>Brugernavn:</h1>
  <input type="text" name="user" value="<?php echo (isset($_POST['user'])) ? $_POST['user'] : ""; ?>">
  <input type="submit" name="Submit" value="Submit">
</form>

scriptet der skulle sende email

<?php

include('access.php');

$sql="SELECT pass, email FROM login WHERE user ='$user'";
$r = mysql_query($sql);
if(!$r) {
$err=mysql_error();
print $err;
exit();
}
if(mysql_affected_rows()==0){
print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";
exit();
}
else {
$row=mysql_fetch_array($r);
$password=$row["pass"];
$email=$row["email"];

$subject="Du har bedt om dit password til domain";
$header="from:webmaster@domain.dk";
$content="Dit Password er: ".$password;
mail($email, $subject, $content, $header);

print "<b>Der er blevet sendt en mail til dig med dit password</b><br><br>Kig i dit mailprogram og klik på <a href='login.php'>her</a> for, login så skulle du være kørene igen";
}
?>

table i mysql

CREATE TABLE `login` (
  `ID` int(11) NOT NULL auto_increment,
  `user` varchar(50) NOT NULL default '',
  `pass` varchar(25) NOT NULL default '',
  `navn` varchar(51) NOT NULL default 'Ikke oplyst',
  `member` text NOT NULL,
  `adresse` text NOT NULL,
  `postnr` varchar(4) NOT NULL default '',
  `kommune` text NOT NULL,
  `mobil` varchar(8) NOT NULL default '',
  `foedselsdag` char(2) NOT NULL default '00',
  `aar` varchar(4) NOT NULL default '',
  `maaned` varchar(14) NOT NULL default '',
  `image` varchar(100) NOT NULL default '',
  `email` varchar(50) NOT NULL default '',
  `timestamp` timestamp(14) NOT NULL,
  `tid` datetime NOT NULL default '0000-00-00 00:00:00',
  `oprettetaf` text NOT NULL,
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `idx_brugere` (`user`)
) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=34 ;
Avatar billede Slater Ekspert
10. september 2008 - 18:14 #1
Fordi mysql_affected_rows() kun virker på INSERT, UPDATE og DELETE operationer - ikke på SELECT. Det du leder efter er mysql_num_rows()
Avatar billede stengaard Praktikant
10. september 2008 - 18:22 #2
hvis jeg retter scriptet til med mysql_num_rows() for jeg hvid skærm eller går jeg noget andet forkert


<?php

include('access.php');

$sql="SELECT pass, email FROM login WHERE user ='$user'";
$r = mysql_query($sql);
if(!$r) {
$err=mysql_error();
print $err;
exit();
}
if(mysql_affected_rows()==0){
print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";
exit();
}
else {
$row=mysql_fetch_array($r);
$password=$row["pass"];
$email=$row["email"];

$subject="Du har bedt om dit password til domain";
$header="from:webmaster@domain.dk";
$content="Dit Password er: ".$password;
mail($email, $subject, $content, $header);

print "<b>Der er blevet sendt en mail til dig med dit password</b><br><br>Kig i dit mailprogram og klik på <a href='login.php'>her</a> for, login så skulle du være kørene igen";
}
?>
Avatar billede stengaard Praktikant
10. september 2008 - 18:23 #3
prøver lige igen

<?php

include('access.php');

$sql="SELECT pass, email FROM login WHERE user ='$user'";
$r = mysql_query($sql);
if(!$r) {
$err=mysql_error();
print $err;
exit();
}
if(mysql_num_rows()()==0){
print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";
exit();
}
else {
$row=mysql_fetch_array($r);
$password=$row["pass"];
$email=$row["email"];

$subject="Du har bedt om dit password til domain";
$header="from:webmaster@domain.dk";
$content="Dit Password er: ".$password;
mail($email, $subject, $content, $header);

print "<b>Der er blevet sendt en mail til dig med dit password</b><br><br>Kig i dit mailprogram og klik på <a href='login.php'>her</a> for, login så skulle du være kørene igen";
}
Avatar billede stengaard Praktikant
10. september 2008 - 18:29 #4
ser fejlen men der kommer samme besked bruger findes ikke linien er rettet til

if(mysql_num_rows()==0){

<?php

include('access.php');

$sql="SELECT pass, email FROM login WHERE user ='$user'";
$r = mysql_query($sql);
if(!$r) {
$err=mysql_error();
print $err;
exit();
}
if(mysql_num_rows()==0){
print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";
exit();
}
else {
$row=mysql_fetch_array($r);
$password=$row["pass"];
$email=$row["email"];

$subject="Du har bedt om dit password til domain";
$header="from:webmaster@domain.dk";
$content="Dit Password er: ".$password;
mail($email, $subject, $content, $header);

print "<b>Der er blevet sendt en mail til dig med dit password</b><br><br>Kig i dit mailprogram og klik på <a href='login.php'>her</a> for, login så skulle du være kørene igen";
}
?>
Avatar billede erikjacobsen Ekspert
10. september 2008 - 21:47 #5
Læs http://php.net/mysql_num_rows

Du skal:  if(mysql_num_rows($r)==0){
Avatar billede stengaard Praktikant
11. september 2008 - 16:07 #6
ved dette script skriver den print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";


scripet er nu

<?php

include('access.php');

$sql="SELECT pass, email FROM login WHERE user ='$user'";
$r = mysql_query($sql);
if(!$r) {
$err=mysql_error();
print $err;
exit();
}
if(mysql_num_rows($r)==0){
print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";
exit();
}
else {
$row=mysql_fetch_array($r);
$password=$row["pass"];
$email=$row["email"];

$subject="Du har bedt om dit password til domain.dk";
$header="from:webmaster@domain.dk";
$content="Dit Password er: ".$password;
mail($email, $subject, $content, $header);

print "<b>Der er blevet sendt en mail til dig med dit password</b><br><br>Kig i dit mailprogram og klik på <a href='login.php'>her</a> for, login så skulle du være kørene igen";
}
?>
Avatar billede erikjacobsen Ekspert
11. september 2008 - 17:30 #7
Hvor kommer $user fra? Du må gerne vise hele koden.
Avatar billede stengaard Praktikant
11. september 2008 - 20:00 #8
fra scriptet

<form action="forgot.php" method="post" name="forgot">
  <h1>Brugernavn:</h1>
  <input type="text" name="user" value="<?php echo (isset($_POST['user'])) ? $_POST['user'] : ""; ?>">
  <input type="submit" name="Submit" value="Submit">
</form>

hvorden henter i tablen i mysql

CREATE TABLE `login` (
  `ID` int(11) NOT NULL auto_increment,
  `user` varchar(50) NOT NULL default '',
  `pass` varchar(25) NOT NULL default '',
  `navn` varchar(51) NOT NULL default 'Ikke oplyst',
  `member` text NOT NULL,
  `adresse` text NOT NULL,
  `postnr` varchar(4) NOT NULL default '',
  `kommune` text NOT NULL,
  `mobil` varchar(8) NOT NULL default '',
  `foedselsdag` char(2) NOT NULL default '00',
  `aar` varchar(4) NOT NULL default '',
  `maaned` varchar(14) NOT NULL default '',
  `image` varchar(100) NOT NULL default '',
  `email` varchar(50) NOT NULL default '',
  `timestamp` timestamp(14) NOT NULL,
  `tid` datetime NOT NULL default '0000-00-00 00:00:00',
  `oprettetaf` text NOT NULL,
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `idx_brugere` (`user`)
) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=34 ;
Avatar billede erikjacobsen Ekspert
11. september 2008 - 20:31 #9
Du må have en

  $user = $_POST['user'];

et sted?
Avatar billede stengaard Praktikant
12. september 2008 - 11:13 #10
det har jeg i dette script

<form action="forgot.php" method="post" name="forgot">
  <h1>Brugernavn:</h1>
  <input type="text" name="user" value="<?php echo (isset($_POST['user'])) ? $_POST['user'] : ""; ?>">
  <input type="submit" name="Submit" value="Submit">
</form>

som overfører informationerne til dette script

<?php

include('access.php');

$sql="SELECT pass, email FROM login WHERE user ='$user'";
$r = mysql_query($sql);
if(!$r) {
$err=mysql_error();
print $err;
exit();
}
if(mysql_num_rows($r)==0){
print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";
exit();
}
else {
$row=mysql_fetch_array($r);
$password=$row["pass"];
$email=$row["email"];

$subject="Du har bedt om dit password til domain.dk";
$header="from:webmaster@domain.dk";
$content="Dit Password er: ".$password;
mail($email, $subject, $content, $header);

print "<b>Der er blevet sendt en mail til dig med dit password</b><br><br>Kig i dit mailprogram og klik på <a href='login.php'>her</a> for, login så skulle du være kørene igen";
}
?>
Avatar billede erikjacobsen Ekspert
12. september 2008 - 11:30 #11
Men $user i linien

  $sql="SELECT pass, email FROM login WHERE user ='$user'";

kommer fra ... ?
Avatar billede stengaard Praktikant
12. september 2008 - 18:39 #12
ikke helt med men hvad du mener,  man indtaster i den form sit brugernavn "user"

<form action="forgot.php" method="post" name="forgot">
  <h1>Brugernavn:</h1>
  <input type="text" name="user" value="<?php echo (isset($_POST['user'])) ? $_POST['user'] : ""; ?>">
  <input type="submit" name="Submit" value="Submit">
</form>

som den henter i table login
Avatar billede erikjacobsen Ekspert
12. september 2008 - 18:45 #13
Ja, men det laver jo ikke en $user-variabel på næste side af sig selv (med mindre du har en særlig indstilling i din PHP). Derfor spørger jeg om du ikke mangler noget kode, eller i det mindste vil undersøge om der er noget i variablen.
Avatar billede stengaard Praktikant
12. september 2008 - 19:20 #14
ingen særlig indstilling i PHP hvad jeg ved af hvor dan for jeg den til at skrive om der er noget i variablen ???
Avatar billede stengaard Praktikant
12. september 2008 - 19:24 #15
har fået det til at virke ved at indsætte

i scriptet

<?php
$user = $_POST['user'];
include('access.php');

$sql="SELECT pass, email, user, navn FROM login WHERE user ='$user'";
$r = mysql_query($sql);
if(!$r) {
$err=mysql_error();
print $err;
exit();
}
if(mysql_affected_rows()==0){
print "<b>Brugernavnet du har tasten findes ikke i vores system.</b><br><br>Prøv igen <a href='glemt.php'>her</a></b>";
exit();
}
else {
$row=mysql_fetch_array($r);
$password=$row["pass"];
$email=$row["email"];
$navn=$row["navn"];
$user=$row["user"];

$subject="Du har bedt om dit password til domain";
$header="from:webmaster@domain.dk";
$content="Hej " .$navn. "\n\n";
$content.="Du har bedt om at få tilsendt dit password til domain, da du på en eller anden måde
har fået smidt det væk eller har glemt det, her fremsendes det endnu engang,
dette er jeg selvfølgelig meget ked af da det, er fordi du ikke passer på dine ting. *SS* Webmaster ";
$content.="\n\n\n";
$content.="Brugernavn : " .$user. "\n";
$content.="Password : " .$password. "\n";

mail($email, $subject, $content, $header);

print "<b>Der er blevet sendt en mail til dig med dit password</b><br><br>Kig i dit mailprogram og klik på <a href='login.php'>her</a> for, login så skulle du være kørene igen";
}
?>
Avatar billede erikjacobsen Ekspert
12. september 2008 - 19:39 #16
"hvor dan for jeg den til at skrive om der er noget i variablen ???"

  print $user;
Avatar billede stengaard Praktikant
12. september 2008 - 21:44 #17
du har ikke læst mit tidligere indlæg kl. 12/09-2008 19:24:20 fik det til at virke hvis du skal have point lig et svar eller tak for hjælpen skal huske det med print $user;
Avatar billede erikjacobsen Ekspert
12. september 2008 - 22:06 #18
Jeg samler slet ikke på point, tak.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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