Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Pomoć izrada skripte php
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Računarski praktikum 1
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
miro
Gost





PostPostano: 0:50 uto, 9. 11. 2004    Naslov: Pomoć izrada skripte php Citirajte i odgovorite

Trebala bi mi skripta u koju bi korisnici upisivali ime, prezime, mail , i pri potvrđivanju da automatski šalje meni na mail , ako netko može poslati na mail petrusic@fpz.hr Zahvaljujem.
Trebala bi mi skripta u koju bi korisnici upisivali ime, prezime, mail , i pri potvrđivanju da automatski šalje meni na mail , ako netko može poslati na mail petrusic@fpz.hr Zahvaljujem.


[Vrh]
ZELENIZUBNAPLANETIDO
SADE

Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 03. 2004. (19:56:15)
Postovi: (54F)16
Sarma = la pohva - posuda
= 12 - 5
Lokacija: hm?

PostPostano: 1:29 uto, 9. 11. 2004    Naslov: Citirajte i odgovorite

Rjesenje tvog problema je text-book example 99% php tutoriala koje ces naci na webu, pa cu te uputiti na proizvoljni ;)
Ona karika koja nedostaje jest komanda exec(), koja izvrsava neku naredbu u shellu i vraca njenu prvu liniju. Prva linija ti, vjerujem, ne treba, al tu dolazi shell naredba.... Na vecini *nix strojeva, ta naredba se zove mail.
Jedan sirov nacin da se to ucini jest da pipeas tekst poruke u komandu mail, tj na primjeru:
[code:1]exec('echo Hello world|mail -s "hello world primjer" netko@neki.server.npr');[/code:1]
(koji ce Hello world poslati na adresu netko@neki.server.npr)

korisno je, npr, cijeli tekst maila najprije sloziti u neki fajl i onda ga takvog poslat (lakse je za kompliciranije poruke, pogledaj komande fopen(), fwrite() i fclose()).

Prosirenje osnovnog koncepta bi zatim bilo unosenje korisnika u lokalnu bazu podataka (MySQL ili jednostavno u neki fajl) i/ili sifriranje unesenih podataka. Vidi komandu crypt().
crypt() koristi MD5 "enkripciju" kakvu koristi vecina *nix strojeva za cuvanje user passworda. MD5 ima nekoliko interesantnih svojstava za ovu upotrebu, ali nema smisla dalje o tome elaborirati ako te to ne zanima?

Pitaj
Rjesenje tvog problema je text-book example 99% php tutoriala koje ces naci na webu, pa cu te uputiti na proizvoljni Wink
Ona karika koja nedostaje jest komanda exec(), koja izvrsava neku naredbu u shellu i vraca njenu prvu liniju. Prva linija ti, vjerujem, ne treba, al tu dolazi shell naredba.... Na vecini *nix strojeva, ta naredba se zove mail.
Jedan sirov nacin da se to ucini jest da pipeas tekst poruke u komandu mail, tj na primjeru:
Kod:
exec('echo Hello world|mail -s "hello world primjer" netko@neki.server.npr');

(koji ce Hello world poslati na adresu netko@neki.server.npr)

korisno je, npr, cijeli tekst maila najprije sloziti u neki fajl i onda ga takvog poslat (lakse je za kompliciranije poruke, pogledaj komande fopen(), fwrite() i fclose()).

Prosirenje osnovnog koncepta bi zatim bilo unosenje korisnika u lokalnu bazu podataka (MySQL ili jednostavno u neki fajl) i/ili sifriranje unesenih podataka. Vidi komandu crypt().
crypt() koristi MD5 "enkripciju" kakvu koristi vecina *nix strojeva za cuvanje user passworda. MD5 ima nekoliko interesantnih svojstava za ovu upotrebu, ali nema smisla dalje o tome elaborirati ako te to ne zanima?

Pitaj



_________________

Pupoljak nije negiran. Rekao sam to i ponovit cu to jos jedanput. Pupoljak NIJE negirAn.
MADD
(Mothers Against Dirty Dialectics)
Based on a true story. NOT.
Ko ih sljivi, mi sviramo punk Wink
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 1:41 uto, 9. 11. 2004    Naslov: Citirajte i odgovorite

Takvih skripti imas po mrezi... 8)

Naredba je samo jedna:

[code:1]<?php
mail("tvoja@email.adresa", "Rezultat formulara", "Ime: $_GET[ime]\nPrezime: $_GET[prezime]\nE-mail adresa: $_GET[email]");
?>[/code:1]

ime, prezime i email su polja u formularu iz kojeg pozivas skriptu. 8)

P.S. Zube, ovaj nacin koji si naveo je i u 99% svih prirucnika o securityju kao nekadasnji najcesci sigurnosni propust u web aplikacijama. :roll: Covjek zeli da mu se salje e-mail adresa, pa treba znati sloziti poruku. :? Besides, popen() je prakticniji, no cemu sve to kad ima mail()? 8)

P.P.S. Ne treba ti crypt(). PHP ima funkciju MD5(). :D
Takvih skripti imas po mrezi... Cool

Naredba je samo jedna:

Kod:
<?php
  mail("tvoja@email.adresa", "Rezultat formulara", "Ime: $_GET[ime]\nPrezime: $_GET[prezime]\nE-mail adresa: $_GET[email]");
?>


ime, prezime i email su polja u formularu iz kojeg pozivas skriptu. Cool

P.S. Zube, ovaj nacin koji si naveo je i u 99% svih prirucnika o securityju kao nekadasnji najcesci sigurnosni propust u web aplikacijama. Rolling Eyes Covjek zeli da mu se salje e-mail adresa, pa treba znati sloziti poruku. Confused Besides, popen() je prakticniji, no cemu sve to kad ima mail()? Cool

P.P.S. Ne treba ti crypt(). PHP ima funkciju MD5(). Very Happy



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
ZELENIZUBNAPLANETIDO
SADE

Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 03. 2004. (19:56:15)
Postovi: (54F)16
Sarma = la pohva - posuda
= 12 - 5
Lokacija: hm?

PostPostano: 9:02 uto, 9. 11. 2004    Naslov: Citirajte i odgovorite

[quote="vsego"]P.S. Zube, ovaj nacin koji si naveo je i u 99% svih prirucnika o securityju kao nekadasnji najcesci sigurnosni propust u web aplikacijama. :roll: Covjek zeli da mu se salje e-mail adresa, pa treba znati sloziti poruku. :? Besides, popen() je prakticniji, no cemu sve to kad ima mail()? 8)[/quote]
Kul :) Thnx :)
[quote="vsego"]P.P.S. Ne treba ti crypt(). PHP ima funkciju MD5(). :D[/quote]
Ne cine li isto ? :-s
vsego (napisa):
P.S. Zube, ovaj nacin koji si naveo je i u 99% svih prirucnika o securityju kao nekadasnji najcesci sigurnosni propust u web aplikacijama. Rolling Eyes Covjek zeli da mu se salje e-mail adresa, pa treba znati sloziti poruku. Confused Besides, popen() je prakticniji, no cemu sve to kad ima mail()? Cool

Kul Smile Thnx Smile
vsego (napisa):
P.P.S. Ne treba ti crypt(). PHP ima funkciju MD5(). Very Happy

Ne cine li isto ? Eh?



_________________

Pupoljak nije negiran. Rekao sam to i ponovit cu to jos jedanput. Pupoljak NIJE negirAn.
MADD
(Mothers Against Dirty Dialectics)
Based on a true story. NOT.
Ko ih sljivi, mi sviramo punk Wink
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 11:41 uto, 9. 11. 2004    Naslov: Citirajte i odgovorite

[quote="ZELENIZUBNAPLANETIDOSADE"][quote="vsego"]P.P.S. Ne treba ti crypt(). PHP ima funkciju MD5(). :D[/quote]
Ne cine li isto ? :-s[/quote]

Ne bash...

[quote="PHP Manual, md5()"]Calculates the MD5 hash of str using the RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash.[/quote]

[quote="PHP Manual, crypt()"]Some operating systems support more than one type of encryption. In fact, [b]sometimes[/b] the standard DES-based encryption is replaced by an MD5-based encryption algorithm. The encryption type is triggered by the salt argument. At install time, PHP determines the capabilities of the crypt function and will accept salts for other encryption types. If no salt is provided, PHP will auto-generate a standard two character salt by default, [b]unless the default encryption type on the system is MD5, in which case a random MD5-compatible salt is generated[/b].[/quote]

Dakle, crypt() ovisi o OSu, a MD5() uvijek vraca MD5. 8)
ZELENIZUBNAPLANETIDOSADE (napisa):
vsego (napisa):
P.P.S. Ne treba ti crypt(). PHP ima funkciju MD5(). Very Happy

Ne cine li isto ? Eh?


Ne bash...

PHP Manual, md5() (napisa):
Calculates the MD5 hash of str using the RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash.


PHP Manual, crypt() (napisa):
Some operating systems support more than one type of encryption. In fact, sometimes the standard DES-based encryption is replaced by an MD5-based encryption algorithm. The encryption type is triggered by the salt argument. At install time, PHP determines the capabilities of the crypt function and will accept salts for other encryption types. If no salt is provided, PHP will auto-generate a standard two character salt by default, unless the default encryption type on the system is MD5, in which case a random MD5-compatible salt is generated.


Dakle, crypt() ovisi o OSu, a MD5() uvijek vraca MD5. Cool



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
ZELENIZUBNAPLANETIDO
SADE

Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 03. 2004. (19:56:15)
Postovi: (54F)16
Sarma = la pohva - posuda
= 12 - 5
Lokacija: hm?

PostPostano: 13:22 uto, 9. 11. 2004    Naslov: Citirajte i odgovorite

A-ha :) thnx :) pomoglo mi u necem sto bas radim :)
A-ha Smile thnx Smile pomoglo mi u necem sto bas radim Smile



_________________

Pupoljak nije negiran. Rekao sam to i ponovit cu to jos jedanput. Pupoljak NIJE negirAn.
MADD
(Mothers Against Dirty Dialectics)
Based on a true story. NOT.
Ko ih sljivi, mi sviramo punk Wink
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
grossi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 04. 2004. (16:33:41)
Postovi: (5D)16
Spol: muško
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Delta Neretva

PostPostano: 0:17 pet, 12. 11. 2004    Naslov: Citirajte i odgovorite

Nadam se da ce ti pomoci

[url]http://student.math.hr/~ogrossi/mail[/url]
Nadam se da ce ti pomoci

http://student.math.hr/~ogrossi/mail



_________________
------------------------------------------
Toni Grossi

Nekretnine Nekretnine 24 sata
++++++++++++++++++++++
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 1:34 pet, 12. 11. 2004    Naslov: Citirajte i odgovorite

[quote="grossi"]Nadam se da ce ti pomoci
[url]http://student.math.hr/~ogrossi/mail[/url][/quote]

A kako da on pogleda source te skripte? :-k

Besides, osim POST-requesta i verifikacije e-mail adrese, ima jos nesto sto ja nisam ugradio? :-s
grossi (napisa):
Nadam se da ce ti pomoci
http://student.math.hr/~ogrossi/mail


A kako da on pogleda source te skripte? Think

Besides, osim POST-requesta i verifikacije e-mail adrese, ima jos nesto sto ja nisam ugradio? Eh?



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
grossi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 04. 2004. (16:33:41)
Postovi: (5D)16
Spol: muško
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Delta Neretva

PostPostano: 8:19 pet, 12. 11. 2004    Naslov: Citirajte i odgovorite

Pardon

mail.php

[code:1]
<html>
<head><title>PHP Mail Sender</title></head>
<body>
<?php

/* All form fields are automatically passed to the PHP script through the array $HTT$
$email = $HTTP_POST_VARS['email'];
$subject = $HTTP_POST_VARS['subject'];
$message = $HTTP_POST_VARS['message'];

/* PHP form validation: the script checks that the Email field contains a valid emai$
if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) {
echo "<h4>Invalid email address</h4>";
echo "<a href='javascript:history.back(1);'>Back</a>";
} elseif ($subject == "") {
echo "<h4>No subject</h4>";
echo "<a href='javascript:history.back(1);'>Back</a>";
}

/* Sends the mail and outputs the "Thank you" string if the mail is successfully sen$
elseif (mail($email,$subject,$message)) {
echo "<h4>Thank you for sending email</h4>";
} else {
echo "<h4>Can't send email to $email</h4>";
}
?>
</body>
</html>
[/code:1]
Pardon

mail.php

Kod:

<html>
<head><title>PHP Mail Sender</title></head>
<body>
<?php

/* All form fields are automatically passed to the PHP script through the array $HTT$
$email = $HTTP_POST_VARS['email'];
$subject = $HTTP_POST_VARS['subject'];
$message = $HTTP_POST_VARS['message'];

/* PHP form validation: the script checks that the Email field contains a valid emai$
if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) {
  echo "<h4>Invalid email address</h4>";
  echo "<a href='javascript:history.back(1);'>Back</a>";
} elseif ($subject == "") {
  echo "<h4>No subject</h4>";
  echo "<a href='javascript:history.back(1);'>Back</a>";
}

/* Sends the mail and outputs the "Thank you" string if the mail is successfully sen$
elseif (mail($email,$subject,$message)) {
  echo "<h4>Thank you for sending email</h4>";
} else {
  echo "<h4>Can't send email to $email</h4>";
}
?>
</body>
</html>



_________________
------------------------------------------
Toni Grossi

Nekretnine Nekretnine 24 sata
++++++++++++++++++++++
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
ZELENIZUBNAPLANETIDO
SADE

Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 03. 2004. (19:56:15)
Postovi: (54F)16
Sarma = la pohva - posuda
= 12 - 5
Lokacija: hm?

PostPostano: 13:05 pet, 12. 11. 2004    Naslov: Citirajte i odgovorite

Komentar :-s

Nije li mali security hazard sto se mail ne izvrsava kao user kod koga je skripta nego kao user httpd ? :-s
Komentar Eh?

Nije li mali security hazard sto se mail ne izvrsava kao user kod koga je skripta nego kao user httpd ? Eh?



_________________

Pupoljak nije negiran. Rekao sam to i ponovit cu to jos jedanput. Pupoljak NIJE negirAn.
MADD
(Mothers Against Dirty Dialectics)
Based on a true story. NOT.
Ko ih sljivi, mi sviramo punk Wink
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 14:55 pet, 12. 11. 2004    Naslov: Citirajte i odgovorite

[quote="ZELENIZUBNAPLANETIDOSADE"]Nije li mali security hazard sto se mail ne izvrsava kao user kod koga je skripta nego kao user httpd ? :-s[/quote]

Nije. 8)

1. Naredba mail() je sigurna. 8)

2. User httpd na dobro podesenoj masini ima mizerne ovlasti (pisi/brisi po web diru i nista vise!) 8)

Problem moze biti ako se dozvoli da se mailovi salju kome god (ovo sto je grossi napravio), no i tako ce pisati u mailu da je doslo od apache@webserver.bla.bla. 8) Ipak, preporuka [b]je[/b] pisati skripte koje imaju ugradjenu mail adresu na koju se salje poruka... 8)

Grossi, jos dvije opaske:

1. Mail ti se loshe parsa. :-s

Recimo vsego@vsego@mashina.com ce proci kao dobra adresa. :-s Treba dodati ^ i $ u reg.exp (a zdravo je i staviti jednostruke navodnike):

[code:1]preg_match('/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/', $email)[/code:1]

Cak i takav regexp ima problema, recimo nece prihvatiti vsego.@server.com sto bi (bar mi se cini) trebalo proci. 8) No, nisam siguran... :oops:

2. Problematican ti je kod [code:1]if ($subject == "")[/code:1]

Ako je $subject == 0, onda ce ovo vratiti istinu. :shock: U tvom slucaju, PHP vjerojatno nece konvertirati string "0" u broj 0, no bolje je ne riskirati. Preporuka je pisati:[code:1]if (empty($subject))[/code:1]

Ako te zanima detaljnije, baci oko na ovaj primjer:

[code:1]<?php
$x = "";
$y = 0;
if ($x == $y) echo "Isto\n"; else echo "Razlicito\n";
if ($x === $y) echo "Isto\n"; else echo "Razlicito\n";
?>[/code:1]
ZELENIZUBNAPLANETIDOSADE (napisa):
Nije li mali security hazard sto se mail ne izvrsava kao user kod koga je skripta nego kao user httpd ? Eh?


Nije. Cool

1. Naredba mail() je sigurna. Cool

2. User httpd na dobro podesenoj masini ima mizerne ovlasti (pisi/brisi po web diru i nista vise!) Cool

Problem moze biti ako se dozvoli da se mailovi salju kome god (ovo sto je grossi napravio), no i tako ce pisati u mailu da je doslo od apache@webserver.bla.bla. Cool Ipak, preporuka je pisati skripte koje imaju ugradjenu mail adresu na koju se salje poruka... Cool

Grossi, jos dvije opaske:

1. Mail ti se loshe parsa. Eh?

Recimo vsego@vsego@mashina.com ce proci kao dobra adresa. Eh? Treba dodati ^ i $ u reg.exp (a zdravo je i staviti jednostruke navodnike):

Kod:
preg_match('/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/', $email)


Cak i takav regexp ima problema, recimo nece prihvatiti vsego.@server.com sto bi (bar mi se cini) trebalo proci. Cool No, nisam siguran... Embarassed

2. Problematican ti je kod
Kod:
if ($subject == "")


Ako je $subject == 0, onda ce ovo vratiti istinu. Shocked U tvom slucaju, PHP vjerojatno nece konvertirati string "0" u broj 0, no bolje je ne riskirati. Preporuka je pisati:
Kod:
if (empty($subject))


Ako te zanima detaljnije, baci oko na ovaj primjer:

Kod:
<?php
  $x = "";
  $y = 0;
  if ($x == $y) echo "Isto\n"; else echo "Razlicito\n";
  if ($x === $y) echo "Isto\n"; else echo "Razlicito\n";
?>



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
grossi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 04. 2004. (16:33:41)
Postovi: (5D)16
Spol: muško
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Delta Neretva

PostPostano: 19:14 pet, 12. 11. 2004    Naslov: Citirajte i odgovorite

Hvala.
Hvala.



_________________
------------------------------------------
Toni Grossi

Nekretnine Nekretnine 24 sata
++++++++++++++++++++++
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Računarski praktikum 1 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan