input als random html opslaan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Facho

facho

20/09/2008 17:18:00
Quote Anchor link
Hoi,
- 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)
 
PHP hulp

PHP hulp

30/11/2024 07:37:24
 
Eddy E

Eddy E

20/09/2008 18:01:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.");
?>


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!
 
Facho

facho

20/09/2008 18:40:00
Quote Anchor link
Dank u wel voor uw reactie.
Ik heb dit nu zo :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.");
?>

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 ?
 
Eddy E

Eddy E

20/09/2008 18:56:00
Quote Anchor link
Ten eerste mag je gewoon met 'je' aanspreken hoor.
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!
 
Facho

facho

20/09/2008 20:04:00
Quote Anchor link
Ik heb het precies zoals hierboven geupload maar dan zegt het "Kan bestand niet aanmaken ofzoiets" terwijl ik die berichtenmap writable hebt gemaakt.
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
 
Eddy E

Eddy E

21/09/2008 08:40:00
Quote Anchor link
Kan bestand niet aanmaken >> je moet die map (waarin ze komen) wel chmodden(). Google hoe je dat moet moet doen.
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$tijd
= time(); // 9928937892833 oid
$rand = rand(); // willekeurig getal tussen 0 en 2147483647
$plak_aan_elkaar = $tijd . $rand; // zet die 2 getallen achter elkaar
$md5 = md5($plak_aan_elkaar); // gooi een md5()-hash hierover: GOOGLE!
?>


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!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.