Martin Ploug skrev:
> Mit foreløbige script ser ud som nedenstående.
> Men email bliver ikke skrevet ud.
> Er syntaksen rigtig?
[snip]
Syntaksen er rigtig, men jeg mener ikke fremgangsmåden er korrekt.
Du bør validere inputtet og samtidig beskytte dig mod sql injection.
F.eks.
<?php
if(isset($_POST['mail'])) {
$query = mysql_query("SELECT brugernavn, kodeord, email FROM udlejer
WHERE email = '".mysql_real_escape_string($_POST['mail'])."'");
if(mysql_num_rows($query) < 1)
{
echo 'Emailadressen kunne ikke findes i databasen.';
exit;
}
$message = "Til ".mysql_result($query, 0, "brugernavn")."\r\n\r\n";
$message .= "Dine loginoplysninger er blevet rekvireret og er som
følgende:\r\n\r\n";
$message .= "Brugernavn: ".mysql_result($query, 0, "brugernavn")."\r\n";
$message .= "Kodeord: ".mysql_result($query, 0, "kodeord")."\r\n\r\n";
$message .= "Med venlig hilsen\r\nMit website";
mail(mysql_result($query, 0, "email"), "Rekvireret loginoplysninger",
$message, "From: Mit Website <noreply@mydomain.com>");
echo 'Dine loginoplysninger er blevet sendt til den mail du oplyste.';
}
?>
I store hovedtræk gør den det du mangler.
I tilfælde af at du er i tvivl så betyder \r\n bare ny linie (lidt ala
<br />)
Samtidig kontrollerer den mailadressen og går ikke videre med scriptet
hvis mailadressen ikke eksisterer.
> Hvornår er det man bruger array og hvornår er der row?
din $row er et array.
$row = mysql_fetch_array($query) gør det at den henter resultaterne fra
din mysql forespørgsel og sætter resultaterne ind i $row som et array.
Du kunne også gøre således istedet:
$row = mysql_fetch_object($query)
Så er $row blevet til et objekt hvor du blot henter resultaterne som med
andre objekter! (feks. $row->email) Læs lidt om Object Orientated
Programming.
Men igen, $row = mysql_fetch_array($query) er fuldstændig det samme som
$row = array(alle_resultaterne_fra_mysql_forespørgslen);
--
Dan Storm - storm at err0r dot dk /
http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!