Avatar billede djicep Nybegynder
22. november 2006 - 02:54 Der er 30 kommentarer og
1 løsning

Lige lidt hjælp til en "glemt brugerinfo function"

Hejsa eksperter,
jeg har siddet og arbejdet hårdt på min side og øver mig i php,
men nu er jeg desværre rendt ind i en mur som bare ikke vil stoppe med at gi mig fejl så håber en af jer kan hjælpe mig måske.

koden:

    function forgotPass($forgot)
    {
    $forgot = $_POST['forgot'];

    if(isset($_POST['sendPass']))
    {
        $sql = mysql_select("SELECT userNick, userPass FROM blabla WHERE email LIKE '" . $email . "' OR userNick LIKE '" . $email . "' LIMIT 1");
        if(mysql_num_rows($query) > 0)
        {
        $row = mysql_fetch_assoc($sql);
   
    $msgMail = "Her er din brugerinfo fra blabla.dk<br><br>".$userNick."<br>".$userPass."";
               
    mail($userMail,"Din bruger information fra blabla",$msgMail,
    "From: null@blabla.dk\nX-Mailer:blabla.dk") or die("FEJL");
               
                return aok("Brugerinfo er sendt til <b>".$userMail."</b>");
        }
    else
        echo "E-Mail adressen er ikke registreret hos blabla.dk, tjek om du eventuelt har skrevet forkert :)";
}
   
        }

Når jeg så prøver at se om det virker får jeg denne fejl :

Warning: Missing argument 1 for forgotPass(), called in c:\programmer\apache group\Apache\htdocs\blabla\getpass.php on line 2 and defined in c:\programmer\apache group\Apache\htdocs\blabla\func.php on line 287

og her er den side som prøver at hente informationen frem:

<? include("head.php"); ?>
<? forgotPass(); ?>
<? include("foot.php"); ?>

Er der nogle der kan fortælle mig hva det kan være der laver ged i den ?
Er måske ikke den bedste til at forklare mit problem så hvis i mangler nået info så må i skrive det ?? :)

mvh. DjICeP
Avatar billede djicep Nybegynder
22. november 2006 - 02:55 #1
rettelse  if(mysql_num_rows($sql) > 0)

Skulle den hedde istedet for det der står oppe i spørgsmålet
Avatar billede djicep Nybegynder
22. november 2006 - 03:10 #2
og der er sikkert masser af fejl i koden er nemlig ikke så go til det endnu :´(
Avatar billede kinderaeg Nybegynder
22. november 2006 - 08:28 #3
Tjah, du siger jo i din definition af funktionen, at der skal et parameter med, men du sender ikke noget (og overskriver det også som det første i din funktion). Ret derfor første linie i din funktion:

function forgotPass($forgot)

til

function forgotPass()
Avatar billede djicep Nybegynder
22. november 2006 - 10:39 #4
Ja oki :)
Nu er fejlen så forsvundet men der sker ingenting, forstået på det måde at har jeg lavet den skal fortælle hvis det virker ved at sige at Brugerinfo er sendt til <b>".$userMail."</b> og hvis der ikke findes nogen mail med det navn skal den skrive echo error("E-Mail adressen er ikke registreret hos SexLamerZ.dk, tjek om du eventuelt har skrevet forkert :)"); - Men siden er bare tom :S
Avatar billede djicep Nybegynder
22. november 2006 - 10:54 #5
function forgotPass()
    {
    $forgot = $_POST['forgot'];

    if(isset($_SESSION['userPass']))
    {
        $sql = mysql_select("SELECT userNick, userPass FROM blabla WHERE userMail LIKE '" . $userMail . "' OR userNick LIKE '" . $userMail . "' LIMIT 1")or die(mysql_error());
        if(mysql_num_rows($sql) > 0)
        {
        $row = mysql_fetch_assoc($sql);
   
    $msgMail = "Her er din brugerinfo fra blabla.dk<br><br>".$row[userNick]."<br>".$row[userPass]."";
               
    mail($userMail,"Din bruger information fra blabla.dk",$msgMail,
    "From: null@blabla.dk\nX-Mailer:blabla.dk") or die("FEJL");
               
                return aok("Brugerinfoen er nu sendt til <b>".$userMail."</b>");
        }
    else
        echo error("E-Mail adressen er ikke registreret hos blabla.dk, tjek om du eventuelt har skrevet forkert :)");
}
   
        }

Har nok leget lidt mere med den, men intet giver mig nået info på siden :S
Avatar billede djicep Nybegynder
22. november 2006 - 11:09 #6
Oki nu har jeg leget en lille smule mere med den men får nu en ny fejl:

    function forgotPass()
    {
   
    if(isset($_POST['userPass']))
    {
        $sql = mysql_select("SELECT userNick, userPass FROM blabla WHERE userMail LIKE '" . $userMail . "' OR userNick LIKE '" . $userMail . "' LIMIT 1")or die(mysql_error());
        if(mysql_num_rows($sql) > 0)
        {
        $row = mysql_fetch_assoc($sql);
   
    $msgMail = "Her er din brugerinfo fra blabla.dk<br><br>".$row[userNick]."<br>".$row[userPass]."";
               
    mail($userMail,"Din bruger information fra Blabla.dk",$msgMail,
    "From: null@blabla.dk\nX-Mailer:blabla.dk") or die("FEJL");
               
                return aok("Brugerinfoen er nu sendt til <b>".$userMail."</b>");
        }
    else
        echo error("E-Mail adressen er ikke registreret hos Blabla, tjek om du eventuelt har skrevet forkert :)");
}
   
        }
       
?>

Den påstår så at jeg har fejl i den her linje eller Call to undefined function mysql_select() -
$sql = mysql_select("SELECT userNick, userPass FROM blabla WHERE userMail LIKE '" . $userMail . "' OR userNick LIKE '" . $userMail . "' LIMIT 1")or die(mysql_error());
        if(mysql_num_rows($sql) > 0)

Kan ikke lige se hvorfor den geder der ?? :S
Avatar billede djicep Nybegynder
22. november 2006 - 11:24 #7
Oki så langt så godt :P Nu får jeg da en ny fejl : E-Mail adressen er ikke registreret hos Blabla, tjek om du eventuelt har skrevet forkert :), Meeeen email adressen er i systemet :S Og der kommer der ikke den rigtige besked, den sender den samme :S
Avatar billede kinderaeg Nybegynder
22. november 2006 - 12:42 #8
Jeg kan ikke se, hvor du har fået variablen $userMail fra, i funktionen, du sender den ikke med, og du har ikke erklæret nogle globals, så jeg vil skyde på at det er der du får fejlen
Avatar billede djicep Nybegynder
22. november 2006 - 12:45 #9
Hmm fisk :S hehe som sagt er ikke så god til PHP endnu. hvordan skal jeg så skrive det hvis der ikke skal være den variable med :S
Avatar billede djicep Nybegynder
22. november 2006 - 12:47 #10
function forgotPass()
    {
   
    if(isset($_POST['userPass']))
    {
        $sql = mysql_query("SELECT userNick, userPass FROM blabla WHERE userMail='" . $userMail . "' LIMIT 1")or die(mysql_error());
        if(mysql_num_rows($sql) > 0)
        {
        $row = mysql_fetch_assoc($sql);
   
    $msgMail = "Her er din brugerinfo fra blabla.dk<br><br>".$row[userNick]."<br>".$row[userPass]."";
               
    mail($userMail,"Din bruger information fra blabla.dk",$msgMail,
    "From: null@blabla.dk\nX-Mailer:blabla.dk") or die("FEJL");
               
                return aok("Brugerinfoen er nu sendt til <b>".$userMail."</b>");
        }
    else
        echo error("E-Mail adressen er ikke registreret hos blabla, tjek om du eventuelt har skrevet forkert :)");
}
   
        }

Har rettet koden til det her men det virker stadig ikke :S men som sagt ved ikke om jeg fortæller variablen at den skal finde userMail i DBen rigtigt eller om jeg mangler nået?
Avatar billede kinderaeg Nybegynder
22. november 2006 - 12:58 #11
Du skriver jo:

"SELECT userNick, userPass FROM blabla WHERE userMail='" . $userMail . "' LIMIT 1"

Men $userMail findes ingen steder, hvis det er en variabel du har fået med som en post-variabel (hvilket jeg vil tro det er), skal du skrive:

"SELECT userNick, userPass FROM blabla WHERE userMail='" . $_POST["userMail"] . "' LIMIT 1"

Ellers kan du jo forsøge at skrive linien ud, så du evt kan se hvordan din sql-forespørgsel ser ud, og teste den direkte i din database, hvis du mener den burde gi' resultat:

die("SELECT userNick, userPass FROM blabla WHERE userMail='" . $_POST["userMail"] . "' LIMIT 1");

Ovenstående linie stopper eksekveringen af dit program og udskriver din sql (med min modificering), såt den evt ind lige over din udførelse af sql'en.
Avatar billede djicep Nybegynder
22. november 2006 - 13:11 #12
hehe nu har jeg prøvet at rette linjen og jeg har prøvet at lave en die og begge giver tom side. dvs det virker ikke. Du kan lige få alt det jeg har... Har sikkert lavet masser af fejl hehe:

    function forgotPass()
    {
   
    if(isset($_POST['userPass']))
    {
        $sql = mysql_query("SELECT userNick, userPass FROM blabla WHERE userMail='" . $_POST["userMail"] . "' LIMIT 1")or die(mysql_error());
        if(mysql_num_rows($sql) > 0)
        {
        $row = mysql_fetch_assoc($sql);
   
    $msgMail = "Her er din brugerinfo fra blabla.dk<br><br>".$row[userNick]."<br>".$row[userPass]."";
               
    mail($userMail,"Din bruger information fra blabla.dk",$msgMail,
    "From: null@blabla.dk\nX-Mailer:blabla.dk") or die("FEJL");
               
                return aok("Brugerinfoen er nu sendt til <b>".$userMail."</b>");
        }
    else
        echo error("E-Mail adressen er ikke registreret hos blabla, tjek om du eventuelt har skrevet forkert :)");
}
   
        }

Og så den der poster:

<? include("head.php"); ?>
<br />
<h3>Glemt Password</h3>
<table width="100%">
    <tr>
    <form method="POST" action="getpass.php">
        <td class=usr width="50%">Din E-Mail:</td>
        <td width="50%"><input type="text" name="email"></td>
    </tr>
    <tr>
        <td width="50%"></td>
        <td width="50%"><input type="submit" name=userMail value="Forespørgsel"></td>
    </tr>
</table>
</form>
<form method="post" action="index.php"><input type="submit" value="Tilbage til login"></form>
<form method="post" action="opret.php"><input type="submit" value="Opret Bruger"></form>

<? include("foot.php"); ?>

og så den som den sender til :

<? include("head.php"); ?>
<? forgotPass(); ?>
<? include("foot.php"); ?>

Det kan måske laves meget nemmere, men det var lige den måde jeg tænkte det skulle gøres :)
Avatar billede djicep Nybegynder
22. november 2006 - 13:20 #13
DAAAAAAAAAH har fundet fejlen :P dooooh
Avatar billede kinderaeg Nybegynder
22. november 2006 - 13:26 #14
Jeg formoder at funktionen forgotPass() findes i enten head.php eller foot.php. Men, det der giver dig balladen er, at du kun har den ene variabel du anvender i din form, med. Prøv at udskifte din forgotPass-funktion med nedenstående, og se om det ikke hjælper:

function forgotPass() {
  if(!empty($_POST['email'])) {
    $sql = mysql_select("SELECT userNick, userPass FROM blabla WHERE userMail LIKE '".$_POST['email']."' LIMIT 1")or die(mysql_error());
    if(mysql_num_rows($sql) > 0) {
      $row = mysql_fetch_assoc($sql);

      $msgMail = "Her er din brugerinfo fra blabla.dk<br><br>".$row[userNick]."<br>".$row[userPass]."";

      mail($userMail,"Din bruger information fra Blabla.dk",$msgMail, "From: null@blabla.dk\nX-Mailer:blabla.dk") or die("FEJL");
      return aok("Brugerinfoen er nu sendt til <b>".$_POST['email']."</b>");
    } else {
      echo error("E-Mail adressen (".$_POST['email'].") er ikke registreret hos Blabla, tjek om du eventuelt har skrevet forkert :)");
    }
  }
}
Avatar billede djicep Nybegynder
22. november 2006 - 13:27 #15
Send lige et svar så du kan få pointene, :)
Avatar billede djicep Nybegynder
22. november 2006 - 13:28 #16
Jamen har fundet ud af det :) Nu skal jeg bare ha den til at tjekke om man har skrevet en email inden den melder at den ikke er registreret.
Avatar billede kinderaeg Nybegynder
22. november 2006 - 13:36 #17
Jo jo, men var igang med at skrive ;)

Svar :)

PS:
if(!empty($_POST['email'])) tjekker at feltet 'email' i din form var udfyldt ;)
Avatar billede djicep Nybegynder
22. november 2006 - 13:41 #18
Oki :) Så ved jeg det, men ved sQ ikke lige hvordan pokker jeg skal lave det så den tjekker om der f.eks er @ tegn med og det.. Har en som tjekker mailen i min func.php. Men skal kun ha den til at fortælle at man har angive en rigtig email adresse :P meeen lige hvordan jeg kringler den aner jeg ikke
Avatar billede djicep Nybegynder
22. november 2006 - 13:46 #19
eller man SKAL angive rigtig mail :P hvis man f.eks ikke har et @ tegn med, det var sådan det skulle skrives :P
Avatar billede kinderaeg Nybegynder
22. november 2006 - 16:42 #20
Vil nok foreslå at du anvender et javascript og noget regular expression til at tjekke det, inden du sender, så kan brugeren blive oplyst om fejlen og koden stoppes, inden formen submittes (derved sparer du også cpu-tid på din server ;)
Avatar billede djicep Nybegynder
22. november 2006 - 17:49 #21
hehe okay :S Men kan man finde den et eller andet sted ?? :S Java Script er da SLET ikke min stærke side :P
Avatar billede kinderaeg Nybegynder
22. november 2006 - 22:26 #22
Har en gammel funktion:

function validateEmail() {
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  if(!filter.test(tmp[i].value)) {
    alert("Email ikke korrekt");
    return false;
  } else {
    return true;
  }
}
Avatar billede djicep Nybegynder
22. november 2006 - 22:48 #23
Ja okay :S Men hvordan pokker jeg lige får den smidt ind uden der kommer fejl ?? :S
Avatar billede djicep Nybegynder
22. november 2006 - 22:51 #24
Har aldrig prøvet at kører med 2 functioner i det endnu så ved ikke lige hvordan jeg skal kringle dem ind i hinanden :S
Avatar billede djicep Nybegynder
22. november 2006 - 22:55 #25
function validateEmail() {
      var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
      if(!filter.test(tmp[i].value)) {
        alert("Email ikke korrekt");
        return false;
      }else {
      //If u forgot ur userinfo
    function glemtPass()
    {
    if(isset($_POST['userMail']))
    {
        $sql = mysql_query("SELECT userNick, userPass FROM blabla WHERE userMail='" . $_POST["userMail"] . "' LIMIT 1")or die(mysql_error());
        if(mysql_num_rows($sql) > 0)
        {
        $row = mysql_fetch_assoc($sql);
   
   
    $msgMail = "Her er din brugerinfo fra blabla.dk<br><br>".$row[userNick]."<br>".$row[userPass]."";
               
    mail($userMail,"Din bruger information fra blabla",$msgMail,
    "From: null@blabla.dk\nX-Mailer:blabla.dk") or die("FEJL");
        return aok("Brugerinfoen er nu sendt til <b>".$userMail."</b>");
        return true;       
               
        }
      else
        echo error("E-Mail adressen er ikke registreret hos blabla, tjek om du eventuelt har skrevet forkert :)");
    return false;   
              }
        }
   
        }
       
        }

Sådan der har jeg sat den sammen nu får jeg så bare en :

Parse error: parse error, unexpected T_VAR in c:\programmer\apache group\Apache\htdocs\blabla\func.php on line 287
Avatar billede kinderaeg Nybegynder
22. november 2006 - 23:05 #26
Den skal ikke ind i din php-kode. Du skal skrive det ind i et script på den side, hvor du har din for, og kalde det on submit. Scriptet skal være imellem <head> og </head> på din side:

<script type='text/javascript'><!--
function Validate() {
  var goodEmail = document.getElementById('email').value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
  if (goodEmail){
    return true;
  } else {
    alert('Please enter a valid e-mail address.');
    document.getElementById('email').focus();
    document.getElementById('email').select();
    return false;
  }
}
--></script>

<table width="100%">
    <tr>
    <form method="POST" onsubmit="java script:return Validate()" action="getpass.php">
        <td class=usr width="50%">Din E-Mail:</td>
        <td width="50%"><input type="text" name="email" id="email"></td>
    </tr>
    <tr>
        <td width="50%"></td>
        <td width="50%"><input type="submit" name=userMail value="Forespørgsel"></td>
    </tr>
</table>
</form>
Avatar billede djicep Nybegynder
22. november 2006 - 23:07 #27
Ahhhhhhh okay :P Dooooh hehe

Sorry
Avatar billede djicep Nybegynder
22. november 2006 - 23:11 #28
Super :P Så virker det... Mange mange mange tak :D
Avatar billede djicep Nybegynder
24. november 2006 - 01:14 #29
HJÆLP kinderaeg :S Idag virker den ikke helt som den skal ?? :(

Idag siger den ligemeget hvad at email adressen ikke findes der ?? :'(
Avatar billede kinderaeg Nybegynder
24. november 2006 - 09:00 #30
Så kunne noget måske tyde på, at du har pillet ved/ændret noget? ;)
Avatar billede djicep Nybegynder
24. november 2006 - 11:12 #31
nope har ikke pillet :D
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