input als random html opslaan
- probleem 1
ik wil het bericht uit een email als een random htmlfile opslaan.
Het is de bedoeling dat het bv als 0001.html word opgeslagen.
Dus bij elke email moet er een aparte code worden gegenereerd.
- probleem 2
Vervolgens moet hij een mail naar de ontvanger sturen met een link en deze code erin.
Ik heb geen flauw idee waar ik moet beginnen.
Vooral met dat random html genereren.
Iemand tips of ideen (liefst voorbeelden als het kan en iemand de tijd heeft)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$html_inhoud = "Dit is <b>vet</b> en zo!";
$bestandsnaam = "map/map/map/" . md5(time() . rand()) . "html";
// Let's make sure the file exists and is writable first.
if (!file_exists($bestandsnaam) AND is_writable($bestandsnaam))
{
if (!$handelen = fopen($bestandsnaam, 'w'))
{
die("Kan bestand niet openen.");
}
if (fwrite($handelen, $html_inhoud) === FALSE)
{
die("Kan bestand niet beschrijven.");
}
fclose($handle);
}
else
{
die("Kan bestand niet aanmaken of zoiets.");
}
// manier hieronder wordt afgeraden. Pak de SWIFTmailer of zoiets.
mail("[email protected]", "onderwerp", "Ga naar http://www.jouwsite.nl/" . $bestandsnaam . " en lees verder.");
?>
$html_inhoud = "Dit is <b>vet</b> en zo!";
$bestandsnaam = "map/map/map/" . md5(time() . rand()) . "html";
// Let's make sure the file exists and is writable first.
if (!file_exists($bestandsnaam) AND is_writable($bestandsnaam))
{
if (!$handelen = fopen($bestandsnaam, 'w'))
{
die("Kan bestand niet openen.");
}
if (fwrite($handelen, $html_inhoud) === FALSE)
{
die("Kan bestand niet beschrijven.");
}
fclose($handle);
}
else
{
die("Kan bestand niet aanmaken of zoiets.");
}
// manier hieronder wordt afgeraden. Pak de SWIFTmailer of zoiets.
mail("[email protected]", "onderwerp", "Ga naar http://www.jouwsite.nl/" . $bestandsnaam . " en lees verder.");
?>
Ik neem aan dat je geen random-html maakt, want dat is een puinzooi.
Raar vind ik: je gebruikt het woord 'random' en nummert het als 0001.html, wat toch echt op een reeks duidt (aan te raden ipv random!).
Succes. En vergeet niet die mail() eruit te halen!
Ik heb dit nu zo :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$name = $_POST['name'];
$from = $_POST['from'];
$to = $_POST['to'];
$subject = "Test";
$html_inhoud = $_POST['message'];
$bestandsnaam = "/berichten/" . md5(time() . rand()) . "html";
// Let's make sure the file exists and is writable first.
if (!file_exists($bestandsnaam) AND is_writable($bestandsnaam))
{
if (!$handelen = fopen($bestandsnaam, 'w'))
{
die("Kan bestand niet openen.");
}
if (fwrite($handelen, $html_inhoud) === FALSE)
{
die("Kan bestand niet beschrijven.");
}
fclose($handle);
}
else
{
die("Kan bestand niet aanmaken of zoiets.");
}
// manier hieronder wordt afgeraden. Pak de SWIFTmailer of zoiets.
mail($to, $subject, "Ga naar http://www.jouwsite.nl/" . $bestandsnaam . " en lees verder.");
?>
$name = $_POST['name'];
$from = $_POST['from'];
$to = $_POST['to'];
$subject = "Test";
$html_inhoud = $_POST['message'];
$bestandsnaam = "/berichten/" . md5(time() . rand()) . "html";
// Let's make sure the file exists and is writable first.
if (!file_exists($bestandsnaam) AND is_writable($bestandsnaam))
{
if (!$handelen = fopen($bestandsnaam, 'w'))
{
die("Kan bestand niet openen.");
}
if (fwrite($handelen, $html_inhoud) === FALSE)
{
die("Kan bestand niet beschrijven.");
}
fclose($handle);
}
else
{
die("Kan bestand niet aanmaken of zoiets.");
}
// manier hieronder wordt afgeraden. Pak de SWIFTmailer of zoiets.
mail($to, $subject, "Ga naar http://www.jouwsite.nl/" . $bestandsnaam . " en lees verder.");
?>
Ik weet dat er veel dingen ontbreken bij die mail zoals headers enzo maar dit is ff een kladje.
Denk u dat dit wat kan worden ?
Me leerlingen zeggen u, maar jij zegt gewoon je en jij tegen mij ;).
Behalve dat het heel onveilig is (want dat is het nu wel!) kan het goed werken.
Ik zie niet in waarom je de totale opmaak (inspringen etc) weer hebt veranderd, maar dat is jouw keus.
Eigenlijk heb je gewoon 3 regeltjes extra erbij gezet en niets veranderd.
Dus zal het werken.
Let op dat dit wel erg spam-gevoelig is!
Controleer je $_POST dus!
Wat ik nu nog niet snap ... maakt hij nu zelf een naam aan ?
Ik krijg dit nog niet werkend maar doe altijd wel wat fout :S
Verder zou ik graag willen begrijpen wat dit doet :
$bestandsnaam = "/berichten/" . md5(time() . rand()) . "html";
Ik d8 hij gaat naar de berichten dir doet iets met de tijd, maakt iets random aan en geeft het een html extensie.
Zal wel niet kloppen maar dat d8 ik.
Gewijzigd op 01/01/1970 01:00:00 door facho
Zoek op "ftp chmod".
Waarschijnlijk is de berichtenmap dus niet writable (777).
Hij maakt inderdaad zelf een naam aan.
Eerst pakt hij de tijd (seconden sinds 1 januari 1970).
Anders geschreven:
Code (php)
Zo krijg je echt altijd een unieke string, ook als er wellicht 100 mensen op exact dezelfde seconde een bestand aanmaken. Je zou er eventueel nog een MD5-hash bij zetten (dus 2 achter elkaar) om het NOG unieker te maken, maar dat is wellcith wat overdreven.
Je hebt dan alleen maar een onwijs lastige naam (iets als 0cc55c3b7caacc8b4e85df280b54c04a)... en daar plak je .html achter.
Dus 0cc55c3b7caacc8b4e85df280b54c04a.html wordt een bestand.
En daarin schrijf je je inhoud/tekst.
Geef na iedere regel even een korte echo op $bestandsnaam en kijk wat er gebeurd!