Kom ihåg mig?
Home Menu

Menu


Använda variabler i FORM POST resultatet (php)

Ämnesverktyg Visningsalternativ
Oläst 2003-04-23, 04:37 #1
Filips avatar
Filip Filip är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2003
Inlägg: 935
Filip Filip är inte uppkopplad
Mycket flitig postare
Filips avatar
 
Reg.datum: Jan 2003
Inlägg: 935
Jag vill kunna skriva i en FORM INPUT t.ex. "Hej $fornamn $efternamn!". Variablerna ska hämtas från en MySQL databas och ett personligt meddelande ska skickas till alla i databasen.
Men när jag skriver en variabel, så får jag bara variabelnamnet, inte innehållet i variabeln.
Gissar att detta är någon typ av säkerhetslösning. Finns där någon metod att kringa detta?
Filip är inte uppkopplad   Svara med citatSvara med citat
Oläst 2003-04-23, 08:17 #2
Tobbe Tobbe är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2003
Inlägg: 1 566
Tobbe Tobbe är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2003
Inlägg: 1 566
Tja Fille, pastea koden oxo så man har lite mer att gå på innan man börjar svamla ihop ett svar =)

Mvh, Tobias
__________________
www.cellsynt.com
Tobbe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2003-04-23, 12:00 #3
Filips avatar
Filip Filip är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2003
Inlägg: 935
Filip Filip är inte uppkopplad
Mycket flitig postare
Filips avatar
 
Reg.datum: Jan 2003
Inlägg: 935
Här är hela källkoden för sidan
Observera att där fortfarande finns ganska mycket testvärden kvar i koden. Än så länge går det t.ex. inte att skicka några e-mail, e-mailen printas bara ut på skärmen så som användaren sen kommer att få dem.



<?php

include '../inc/func.php';

print "<HTML><BODY>
<H1>Utskick</H1>

";


if($validator=="preview" && isset($annonsRubrik) && isset($annons) && isset($targetSex) && isset($targetLBirth) && isset($targetUBirth) && isset($targetCompany)) {



$link = DatabaseConnect() or die("Could not connect");
mysql_select_db("projekt") or die("Could not select database");
$query = "SELECT ForNamn, EfterNamn, email, lastLogin FROM Members WHERE birth BETWEEN $targetLBirth AND $targetUBirth AND lastLogin BETWEEN $lastLoginL AND $lastLoginU";
if ($targetSex!=0) {
$query .= " AND sex='$targetSex'";
}
if ($targetCompany!=0) {
$query .= " AND company='$targetCompany'";
}

$result = mysql_query($query) or die("Error in Query: $query. mySQL said " . mysql_error() . '.');

$rader = mysql_num_rows($result);
if ($rader==0) {
print "No matching members
";
}
else {
print "Target: $rader members
";
}

while (list ($ForNamn, $EfterNamn, $email, $lastLogin) = mysql_fetch_row ($result)) {
print $annons . "
";

}


mysql_free_result($result);
mysql_close($link);


}
if($validator=="send" && isset($annonsRubrik) && isset($annons) && isset($targetSex) && isset($targetLBirth) && isset($targetUBirth) && isset($targetCompany)) {

print "sending e-mails...";

$link = DatabaseConnect() or die("Could not connect");
mysql_select_db("projekt") or die("Could not select database");
$query = "SELECT ForNamn, EfterNamn, email FROM Members WHERE birth BETWEEN $targetLBirth AND $targetUBirth AND lastLogin BETWEEN $lastLoginL AND $lastLoginU";
if ($targetSex!=0) {
$query .= " AND sex='$targetSex'";
}
if ($targetCompany!=0) {
$query .= " AND company='$targetCompany'";
}

$result = mysql_query($query) or die("Error in Query: $query. mySQL said " . mysql_error() . '.');

while (list ($ForNamn, $EfterNamn, $email) = mysql_fetch_row ($result)) {
print "$ForNamn $EfterNamn - $email
";

}


mysql_free_result($result);
mysql_close($link);


}
elseif(isset($validator)) {
print "there were errors";
}

utskickForm($annonsRubrik, $annonsTyp, $annons, $targetSex, $targetLBirth, $targetUBirth, $targetCompany, $lastLoginL, $lastLoginU);

print "</BODY></HTML>";


function utskickForm($annonsRubrik, $annonsTyp, $annons, $targetSex, $targetLBirth, $targetUBirth, $targetCompany, $lastLoginL, $lastLoginU) {

print "
<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=#EEEEEE>
<FORM METHOD=POST>
<TR>
<TD>AnnonsRubrik</TD>
<TD><INPUT TYPE=text NAME=annonsRubrik VALUE=$annonsRubrik></TD>
</TR>
<TR>
<TD BGCOLOR=#FFFFFF COLSPAN=3>
Target visitors</TD>
</TR>
<TR>
<TD>Sex</TD>
<TD><SELECT NAME=targetSex SIZE=1><OPTION VALUE=0 SELECTED>both</OPTION>
<OPTION VALUE=1>Males</OPTION>
<OPTION VALUE=2>Females</OPTION>
</SELECT></TD>
</TR>
<TR>
<TD>Birthyear of oldest</TD>
<TD><INPUT TYPE=text NAME=targetLBirth SIZE=4 MAXLENGTH=4 VALUE=";
if($targetLBirth) {
print $targetLBirth;
}
else {
print "1900";
}
print"></TD>
</TR>
<TR>
<TD>Birthyear of youngest</TD>
<TD><INPUT TYPE=text NAME=targetUBirth SIZE=4 MAXLENGTH=4 VALUE=";
if(isset($targetUBirth)) {
print $targetUBirth;
}
else {
print "2050";
}
print "></TD>
</TR>
<TR>
<TD>Target Company/Person</TD>
<TD><SELECT NAME=targetCompany SIZE=1><OPTION VALUE=0 SELECTED>both</OPTION>
<OPTION VALUE=1>person</OPTION>
<OPTION VALUE=2>company</OPTION>
</SELECT></TD>
</TR>
<TR>
<TD>lastLogin Lower</TD>
<TD><INPUT TYPE=TEXT NAME=lastLoginL SIZE=19 VALUE=";
if (isset($lastLoginL)) {
print $lastLoginL;
}
else {
print "00000000000000";
}
print "></TD>
</TR>
<TR>
<TD>lastLogin Upper</TD>
<TD><INPUT TYPE=TEXT NAME=lastLoginU SIZE=19 VALUE=";
if (isset($lastLoginU)) {
print $lastLoginU;
}
else {
print date("YmdHis");
}
print "> <INPUT TYPE=SUBMIT NAME=validator VALUE=preview></TD>
</TR>
<TR>
<TD BGCOLOR=#FFFFFF COLSPAN=3>
Annons</TD>
</TR>
<TR>
<TD COLSPAN=2><TEXTAREA NAME=annons COLS=40 ROWS=4>$annons</TEXTAREA>

</TD>
<TD ALIGN=CENTER VALIGN=MIDDLE><INPUT TYPE=SUBMIT NAME=validator VALUE=send></TD>
</TR>


</TABLE>
</FORM>";

}




?>
Filip är inte uppkopplad   Svara med citatSvara med citat
Oläst 2003-04-23, 18:04 #4
Neos avatar
Neo Neo är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2003
Inlägg: 392
Neo Neo är inte uppkopplad
Flitig postare
Neos avatar
 
Reg.datum: Mar 2003
Inlägg: 392
Vad är det koden inte gör som den ska göra?
Neo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2003-04-23, 18:17 #5
Filips avatar
Filip Filip är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2003
Inlägg: 935
Filip Filip är inte uppkopplad
Mycket flitig postare
Filips avatar
 
Reg.datum: Jan 2003
Inlägg: 935
Citat:
Originally posted by Neo@Apr 23 2003, 01:04 PM
Vad är det koden inte gör som den ska göra?
Genom TEXTAREA med NAME=annons skriver jag in en text innehållande lite variabler, t.ex. "Hej $fornamn $efternamn!".

På följande ställe, skrivs sen annonsen ut endast på namnet på variablerna, dvs inte innehållet:
while (list ($ForNamn, $EfterNamn, $email, $lastLogin) = mysql_fetch_row ($result)) {
print $annons . "
";
}
Det skrivs alltså ut "Hej $fornamn $efternamn!", istället för t.ex. "Hej Kalle Karlsson!".
Jag vill alltså kunna skapa dynamiska meddelanden till var och en av medlemmarna i databasen.
Filip är inte uppkopplad   Svara med citatSvara med citat
Oläst 2003-04-23, 21:29 #6
Per Per är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2003
Inlägg: 719
Per Per är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2003
Inlägg: 719
while ($row = mysql_fetch_array($result)) {
$nyAnnons = $annons;
foreach ($row as $key => $val)
$nyAnnons = str_replace('$'.$key, $val, $nyAnnons);
print $nyAnnons."
";
}

Jag skulle nog gjort något åt det hållet isf
__________________
www.ip2nation.com (ip till land)
Per är inte uppkopplad   Svara med citatSvara med citat
Oläst 2003-04-23, 21:29 #7
orreborres avatar
orreborre orreborre är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2003
Inlägg: 309
orreborre orreborre är inte uppkopplad
Flitig postare
orreborres avatar
 
Reg.datum: Apr 2003
Inlägg: 309
Hej!

Istället för:

while (list ($ForNamn, $EfterNamn, $email) = mysql_fetch_row ($result)) {
print "$ForNamn $EfterNamn - $email
";


testa:

while($row = mysql_fetch_row($result)) {
print "$row[0] $row[1] - $row[2]
";

eller:
while($row = mysql_fetch_array($result)) {
print "$row[ForNamn] $row[EfterNamn] - $row[email]
";


Och se om det blir någon skillnad...
orreborre är inte uppkopplad   Svara med citatSvara med citat
Oläst 2003-05-15, 02:21 #8
Filips avatar
Filip Filip är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2003
Inlägg: 935
Filip Filip är inte uppkopplad
Mycket flitig postare
Filips avatar
 
Reg.datum: Jan 2003
Inlägg: 935
Citat:
Originally posted by Jome@Apr 23 2003, 04:29 PM
while ($row = mysql_fetch_array($result)) {
$nyAnnons = $annons;
foreach ($row as $key => $val)
$nyAnnons = str_replace('$'.$key, $val, $nyAnnons);
print $nyAnnons."
";
}

Jag skulle nog gjort något åt det hållet isf
Äntligen fick jag det att fungera!
Tack för hjälpen Jome!

Dock med lite modifieringar:


while (list ($ForNamn, $EfterNamn) = mysql_fetch_row ($result)) {
$nyAnnons = $annons;
$nyAnnons = str_replace('$forNamn', $ForNamn, $nyAnnons);
$nyAnnons = str_replace('$efterNamn', $EfterNamn, $nyAnnons);

print $nyAnnons ."
";

}


I TEXTAREA kan jag då skriva ett meddelande typ: "Hej $forNamn $efterNamn! Hur är är läget?", så printas användarens förnamn och efternamn ut i meddelandet.
Filip är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:02.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017