| FAQ | 
| Kalender | 
|  2003-04-23, 04:37 | #1 | |||
| 
 | ||||
| Mycket flitig postare | 
			
			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? | |||
|   |  Svara med citat | 
|  2003-04-23, 08:17 | #2 | ||
| 
 | |||
| Supermoderator | 
			
			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 | ||
|   |  Svara med citat | 
|  2003-04-23, 12:00 | #3 | |||
| 
 | ||||
| Mycket flitig postare | 
			
			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>"; } ?> | |||
|   |  Svara med citat | 
|  2003-04-23, 18:04 | #4 | |||
| 
 | ||||
| Flitig postare | 
			
			Vad är det koden inte gör som den ska göra?
		 | |||
|   |  Svara med citat | 
|  2003-04-23, 18:17 | #5 | |||
| 
 | ||||
| Mycket flitig postare | Citat: 
 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. | |||
|   |  Svara med citat | 
|  2003-04-23, 21:29 | #6 | ||
| 
 | |||
| Supermoderator | 
			
			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) | ||
|   |  Svara med citat | 
|  2003-04-23, 21:29 | #7 | |||
| 
 | ||||
| Flitig postare | 
			
			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... | |||
|   |  Svara med citat | 
|  2003-05-15, 02:21 | #8 | |||
| 
 | ||||
| Mycket flitig postare | Citat: 
 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. | |||
|   |  Svara med citat | 
| Svara | 
| 
 | 
 |