Avatar billede zyxep Nybegynder
27. december 2002 - 19:33 Der er 9 kommentarer og
1 løsning

opret form send til email

hey,

jeg er igang med at lave community (portal) og jeg er igang med at lave opret form og jeg vil have sådan at folk skal udfylde nogen bestemte felter (kan jeg godt finde ud af at lave) og så vil jeg at folk skal skrive brugernavn og deres email så når de sender formen af sted så skal den først tjekke om brugernavnet ligger i mySQL databasen hvis den gør brokker den sig, hvis brugernavnet ikke er i mySQL databasen så skal formen så sende en email til den email som personen skrev i formen med koden som den selv har redigeret jeg har php koden til det det er det her:
<?php
function password ($len=8) {
  $chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789";
  mt_srand( (double) microtime() * 1000000);
  for ($i=1;$i<=$len;$i++) $out .= $chars[mt_rand(0,(strlen($chars)-1))];
  return $out;
}
?>


men hvordan skal jeg gøre at den kode den laver blir sendt til mailen ?

//zyxep
Avatar billede tipsen Nybegynder
27. december 2002 - 21:13 #1
Hvordan ser resten af dit script ud - dvs. den del som sørger for at lave opslag i din db og bruge ovennævnte funktion?
Avatar billede tipsen Nybegynder
27. december 2002 - 21:14 #2
NB: Kan forøvrigt godt lide, at du har pillet enkelte "dumme" karakterer ud af de mulige i password-funktionen!
Avatar billede zyxep Nybegynder
27. december 2002 - 21:15 #3
<?
if ($action == "opret"){
if(empty($_POST['usernavn'])) {
  echo "Du mangler at angive dit navn!";
}
if(empty($_POST['email'])) {
  echo "Du mangler at angive en kommentar!";
}
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db("$database");

$query = mysql_query("INSERT INTO brugere (id, username, alder, sted, sex, email, hp, icq, fritext)" . "values ('', '$usernavn', '$alder', '$sted', '$sex', '$email', '$hp', '$icq', '$fritext')");
echo "Nyheden er nu trykt! Klik <a href=index.php>her</a> for komme tilbage";
}
?>

min add kode jeg skal så bare have smidt den function ind og email scriptet ind os
Avatar billede zyxep Nybegynder
27. december 2002 - 21:15 #4
hvad mener du ? :D
Avatar billede tipsen Nybegynder
27. december 2002 - 21:36 #5
Jeg mener, at IO0 er væk - det burde 1 faktisk også være. De karakterer som med eksempelvis en Arial skrifttype minder meget om hinanden, bør undlades i automatisk genererede passwords.

Nå men her har du lidt rettelser:

<?php
function password ($len=8) {
  $chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789";
  mt_srand( (double) microtime() * 1000000);
  for ($i=1;$i<=$len;$i++) $out .= $chars[mt_rand(0,(strlen($chars)-1))];
  return $out;
}

function validuserinput($name, $comment, $email) {
  if(empty($name)) {
    return "Du mangler at angive dit navn!";
    exit;
  } elseif (empty($comment)) {
    return "Du mangler at angive en kommentar!";
    exit;
  } else {
    return true;
  }
}

if ($action == "opret"){
  $inputvalid = validuserinput($_POST['usernavn'], $_POST['comment'], $_POST['email']);
  if($inputvalid === true) {
    mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
    mysql_select_db($database) or die(mysql_error());
    $usedbefore = mysql_query("SELECT COUNT(*) FROM brugere WHERE username='".$_POST['usernavn']."'") or die(mysql_error());
    if($usedbefore > 0) {
      //hvad skal der ske, hvis brugernavnet er taget?
    } else {
      //hvad skal der ske, hvis brugernavnet ikke er taget?
      $pw = password();
      //password ligger nu i variablen $pw og skal indsættes et passende sted i nedenstående query:
      $query = mysql_query("INSERT INTO brugere (id, username, alder, sted, sex, email, hp, icq, fritext)" . "values ('', '$usernavn', '$alder', '$sted', '$sex', '$email', '$hp', '$icq', '$fritext')");
      //her er et eksempel på mail() funktionen - tilpas selv:
      mail("joecool@example.com", "My Subject", "Password: $pw\nUsername: ?\nLine 3");
      echo "Nyheden er nu trykt! Klik <a href=index.php>her</a> for komme tilbage";
    }
  } else {
    echo $validinput;
    //send bruger tilbage til formular!
  }
}


NB: Yahooo - PHP v. 4.3 er nu frigivet :-D
Avatar billede tipsen Nybegynder
27. december 2002 - 21:37 #6
PS: Det var sgu heldigt, at jeg lige havde kopieret svaret for en sikkerheds skyld - eksperten fuckede op igen til en forandring...
Avatar billede zyxep Nybegynder
27. december 2002 - 21:54 #7
hmmm du får lige hele min kode nu
Avatar billede zyxep Nybegynder
27. december 2002 - 21:55 #8
<form action="opret.php?action=opret" method="POST">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
      <td height="18">Brugernavn*:</td>
  </tr>
  <tr>
    <td>
      <input type="text" name="username">
    </td>
  </tr>
  <tr>
      <td>Alder*:</td>
  </tr>
  <tr>
    <td>
      <input type="text" name="alder">
    </td>
  </tr>
  <tr>
    <td>Bop&aelig;l</td>
  </tr>
  <tr>
      <td>
        <select name="sted">
                <option selected value="vælge">Vælg</option>
                <option value="Nordjylland">Nordjylland</option>
                <option value="Midtjylland">Midtjylland</option>
                <option value="Østjylland">Østjylland</option>
                <option value="Sønderjylland">Sønderjylland</option>
                <option value="Vestjylland">Vestjylland</option>
                <option value="Fyn">Fyn</option>
                <option value="Bornholm">Bornholm</option>
                <option value="KBH området">KBH området</option>
                <option value="Sjælland">Sjælland</option>
                <option value="Andet">Andet</option>
      </select>
      </td>
  </tr>
  <tr>
    <td>K&oslash;n:</td>
  </tr>
  <tr>
      <td>
        <select name="sex">
        <option>Dreng/Mand</option>
        <option>Pige/Kvinde</option>
        </select>
      </td>
  </tr>
  <tr>
      <td>Email*:</td>
  </tr>
  <tr>
    <td>
      <input type="text" name="email">
    </td>
  </tr>
  <tr>
    <td>Hjemmeside:</td>
  </tr>
  <tr>
    <td>
      <input type="text" name="hp">
    </td>
  </tr>
  <tr>
    <td>ICQ:</td>
  </tr>
  <tr>
    <td>
      <input type="text" name="icq">
    </td>
  </tr>
  <tr>
    <td>Fri text:</td>
  </tr>
  <tr>
    <td>
      <textarea name="fritext" cols="50" rows="15"></textarea>
    </td>
  </tr>
  <tr>
  <td><input type="submit" value="Opret"></td>
  </tr>
</table>

</form>
<?php
include("mysql.php");

function password ($len=8) {
  $chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789";
  mt_srand( (double) microtime() * 1000000);
  for ($i=1;$i<=$len;$i++) $out .= $chars[mt_rand(0,(strlen($chars)-1))];
  return $out;
}

function validuserinput($username, $alder, $email) {
  if(empty($username)) {
    return "Du mangler at angive dit navn!";
    exit;
  } elseif (empty($alder)) {
    return "Du mangler at angive din alder!";
    exit;
  } elseif (empty($email)) {
      return "Du mangler at angive Emailen!";
      exit;
  } else {
    return true;
  }
}

if ($action == "opret"){
  $inputvalid = validuserinput($_POST['usernavn'], $_POST['alder'], $_POST['email']);
  if($inputvalid === true) {
    mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
    mysql_select_db($database) or die(mysql_error());
    $usedbefore = mysql_query("SELECT COUNT(*) FROM brugere WHERE username='".$_POST['usernavn']."'") or die(mysql_error());
    if($usedbefore > 0) {
      //hvad skal der ske, hvis brugernavnet er taget?
    } else {
      //hvad skal der ske, hvis brugernavnet ikke er taget?
      $pw = password();
      //password ligger nu i variablen $pw og skal indsættes et passende sted i nedenstående query:
      $query = mysql_query("INSERT INTO brugere (id, username, alder, sted, sex, email, hp, icq, fritext)" . "values ('', '$usernavn', '$alder', '$sted', '$sex', '$email', '$hp', '$icq', '$fritext')");
      //her er et eksempel på mail() funktionen - tilpas selv:
      mail("$email", "Mit password til zyxep.dk", "Password: $pw\nUsername: ?\nLine 3");
      echo "Nyheden er nu trykt! Klik <a href=index.php>her</a> for komme tilbage";
    }
  } else {
    echo $validinput;
    //send bruger tilbage til formular!
  }
}
?>
Avatar billede zyxep Nybegynder
11. januar 2003 - 12:47 #9
fandt selv ud af det med hjælp fra irc :o)
Avatar billede tipsen Nybegynder
11. januar 2003 - 13:44 #10
Jeg vil gerne vide, hvad det er "du selv har fundet ud af" når din seneste kode rent faktisk bare er en kopi af mit svar?
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