webForumDet fria alternativet

Mail() etc.

4 svar · 258 visningar · startad av Webslave

WebslaveMedlem sedan maj 2002647 inlägg
#1
<?PHP

// Tilldelar $str ett värde
$str=$_POST['reg_user'];

// Krypterar $str...
$crypted_str = crypt($str);

// Deklarerar ogiltiga tecken
$illegal = array(".","/","\$");

// Tar bort ogiltiga tecken
for($i=0;$i<strlen($crypted_str);$i++){
  if(!(in_array($crypted_str{$i},$illegal))){
    $pass[]=$crypted_str{$i};
  }
}

// Gör arrayen $pass[] till en string
$pass = join("",$pass);

$length = strlen($pass);

$pass = substr($pass,3,$length);

$subject = "Registrering på MM.nu";

$message = "Välkommen till MarilynManson.nu!\nFör att aktivera ditt konto klickar du på länken nedan, om detta inte sker inom 30 dagar kommer kontot att tas bort\n";
$message = $message."http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/activate.php?code=".$pass."\n\n";
$message = $message."MvH\nMarilynManson.nu";

$recipient = $_POST['reg_user_email'];

mail($recipient,$subject,$message,
  "From: MarilynManson.nu\n"
  ."Reply-To: support@$marilynmanson.nu\n");
?>

Denna kod fungerar bra själv men inte om jag lägger in den någon annanstans (i en annan kod).
Jag får då felmeddelandet:
Fatal error: [] operator not supported for strings in "sökväg" on line 105

Line 105:
$pass[]=$crypted_str{$i};

Hilfe!!!

SPiNMedlem sedan mars 20007 896 inlägg
#2

Varför använder du måsvingar runt index-numret på $crypted_str?

Försök med att först deklarera $pass som en array, och sedan byta ut måsvingarna mot hakar ( [] ).

WebslaveMedlem sedan maj 2002647 inlägg
#3

Det är en kompis som har knepat ihop det och han säger att man delar upp stringen bit för bit med måsvingar... och det är det som jag vill göra... kan du skriva ut hur du menar så ska jag testa (jag är en idiot)

SPiNMedlem sedan mars 20007 896 inlägg
#4

Det är en kompis som har knepat ihop det och han säger att man delar upp stringen bit för bit med måsvingar...

Humma, kan stämma - men jag är osäker? :q
Hursomhelst så är ju en sträng ivf en array av tecken, så $sträng[1] plockar ut den andra bokstaven i strängen. Kanske fungerar måsvingar likadant, jag har aldrig provat.

Så här menade jag:

...
$illegal = array(".","/","\$");

$pass = array();

// Tar bort ogiltiga tecken
for($i=0;$i<strlen($crypted_str);$i++){
  if(!(in_array($crypted_str[$i],$illegal))){
    $pass[]=$crypted_str[$i];
  }
}
...
WebslaveMedlem sedan maj 2002647 inlägg
#5

You da man SPiN ;)

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)