Autor Zpráva
Dalibor1
Profil
Dobrý den,
potřeboval bych pomoci s níže uvedeným scriptem. Je volně ke stažení na netu, ovšem jsem začátečník v php a stále při tomto začlenění do www stránek mi píše, že adresa je neplatná. Funkci ereq jsem již nahradil if (preg_match("/^[\w-\.]+@([\w-]+\\.)+[a-zA-Z]{2,4}$/", $email)) ovšem stále se nic neděje.

prosím o pomoc. Chápu, že lepší by bylo zapisovat do databáze, ale to si zatím netroufám.

pridej.php
<?
if (ereq("^.+@.+\\..+$",$email)) 
 {
?> 
Váš email byl přidán do databáze.<br>Budete pravidelně informováni o změnách na těchto stránkách.
<br><a href="javascript:history.go(-1)">Zpět</a>
<?

@mail($email,"Přidání emailu do databáze","Váš email byl na Vaše přání přidán do naší databáze.","From: odesilatel@server.cz");

     @$filename="data/emaily.txt";
     @$fp = fopen($filename,"r");
     @$obsah = fread( $fp, filesize( $filename ) );
     @fclose( $fp );

$obsah=$email."\n".$obsah;

     @unlink($filename);
     @$fp = fopen($filename,"w");
     @fwrite( $fp , $obsah);
     @fclose($fp);

 } 
else 
{
?>
Neplatně zadaná e-mailová adresa.<br><a href="javascript:history.back()">Zpět</a>
<?
}
?>
Davex
Profil
Kde se bere proměnná $email a co obsahuje? Pokud jí odesíláš z formuláře, tak by se mělo používat podle použité metody pole $_GET['email'] nebo $_POST['email'].

Kromě toho by bylo efektivnější a bezpečnější, kdyby se nová adresa nezapisovala na začátek souboru (s potřebou načtení celého souboru, smazání a nového uložení), ale přidávala se na konec.

file_put_contents($filename, $_GET['email'] . "\n", FILE_APPEND);

Používat @ skoro na každém řádku také není dobrý nápad.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: