Jump to content

Handige scripts uit 'html/php: site hulp'


Ewoud

Recommended Posts

He allemaal,

Ik ben bezig met een contact script in php wat ondertussen werkt. Maar ik zet met 1 probleempje als hij hem verzonden heeft en je telkens op refresh drukt blijft hij mailtjes versturen.

En dat is dus niet de bedoeling.

Dit is het formulier:

<form name="contact" method="post" action="send.php">
<table cellspacing="2" cellpadding="2">
 <tr valign="top" align="left">
<td> Naam:</td>
<td>
<input  name="naam" type="text" size="25"/>
</td>
</tr>
<tr valign="top" align="left">
<td>Email: </td>
<td>
<input name="mail" type="text" size="25" /></td>
</tr>
<tr valign="top" align="left">
<td>Onderwerp: </td>
<td>
<input name="onderwerp" type="text" size="25"  /></td>
</tr>
<tr valign="top" align="left">
<td>Bericht: </td>
<td><textarea name="bericht" rows="7" cols="40" /></textarea></td>
</tr>
<tr valign="top" align="left"> 
  <td> </td> 
  <td> 
	<input type="submit" name="Submit" value="Verzend"> 
  </td> 
</tr>
</table>
</form>

En dit is het verzend script:

<?php

$mailsupport= "mij@mail.nl";
$titel= "Support Ticket Contact -" . $_POST['onderwerp'];
// set datum 
$datum = date("d.m.Y H:i"); 
// set ip 
$ip = $_SERVER['REMOTE_ADDR']; 
// Bericht
$mssg = 
$mssg .= "Ingevuld Contact Formulier \n\n";
$mssg .= "Naam: " .$_POST['naam'] . "\n";
$mssg .= "Mail Adres: " .$_POST['mail'] . "\n";
$mssg .= "Onderwerp: " .$_POST['onderwerp'] . "\n";
$mssg .= "Bericht:" . "\n";
$mssg .= $_POST['bericht'] . "\n" . "\n";
$mssg .= "Dit bericht is verstuurd op $datum van het ip adres " . $ip . ".";
//Afzender
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">"; 

if ($_SERVER['REQUEST_METHOD'] == 'POST'){

if (empty($naam)) { echo "U bent iets vergeten in te vullen !!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 
} elseif (empty($mail))  { echo "U bent iets vergeten in te vullen !!!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 
} elseif (empty($onderwerp)) { echo "U bent iets vergeten in te vullen !!!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 
} elseif (empty($bericht)) { echo "U bent iets vergeten in te vullen !!!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 
} else { 

mail ($mailsupport, $titel, $mssg, $headers);
echo "Je bericht is verstuurd";
}
}
?>

Graag hulp.

Link to comment
Delen op andere websites

  • Reacties 62
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Argon

    12

  • Donald F. Duck

    8

  • marcootje

    8

  • Woetsha

    8

Ik heb het probleem opgelost door een header refresh:

Nu ziet het contact formulier er zo uit en je kan het gebruiken als je wilt:

Formulier.php

 
<form name="contact" method="post" action="send.php">
<table cellspacing="2" cellpadding="2">
 <tr valign="top" align="left">
<td> Naam:</td>
<td>
<input  name="naam" type="text" size="25"/>
</td>
</tr>
<tr valign="top" align="left">
<td>Email: </td>
<td>
<input name="mail" type="text" size="25" /></td>
</tr>
<tr valign="top" align="left">
<td>Onderwerp: </td>
<td>
<input name="onderwerp" type="text" size="25"  /></td>
</tr>
<tr valign="top" align="left">
<td>Bericht: </td>
<td><textarea name="bericht" rows="7" cols="40" /></textarea></td>
</tr>
<tr valign="top" align="left"> 
  <td> </td> 
  <td> 
	<input type="submit" name="Submit" value="Verzend"> 
  </td> 
</tr>
</table>
</form>

Het verzend script:

send.php

<?php

$mailsupport= "jou@mail.nl";
$titel= "Jouw site naam -" . $_POST['onderwerp'];
// set datum 
$datum = date("d.m.Y H:i"); 
// set ip 
$ip = $_SERVER['REMOTE_ADDR']; 
// Bericht
$mssg = 
$mssg .= "Ingevuld Contact Formulier \n\n";
$mssg .= "Naam: " .$_POST['naam'] . "\n";
$mssg .= "Mail Adres: " .$_POST['mail'] . "\n";
$mssg .= "Onderwerp: " .$_POST['onderwerp'] . "\n";
$mssg .= "Bericht:" . "\n";
$mssg .= $_POST['bericht'] . "\n" . "\n";
$mssg .= "Dit bericht is verstuurd op $datum van het ip adres " . $ip . ".";
//Afzender
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">"; 

if ($_SERVER['REQUEST_METHOD'] == 'POST'){

if (empty($_POST['naam']) or empty($_POST['mail']) or empty($_POST['onderwerp']) or empty($_POST['bericht'])) { 
echo "U bent iets vergeten in te vullen !!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 

} else { 

mail ($mailsupport, $titel, $mssg, $headers);
header ("Refresh: 0; URL=verzonden.php"); 
}
}
?>

En het bericht dat je krijg als je mail verzonden is:

verzonden.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Verzonden</title>
</head>

<body>
Je e-mail is verzonden..
</body>
</html>

Link to comment
Delen op andere websites

  • 5 maanden later...
Hey,

Heeft iemand een script waarmee je onderaan kunt zien hoe lang de pagina nodig had om te laden?

Even googlen gebruiken en wat wm-community's afzoeken vraagt slechts 1 minuut en levert een antwoord op.

Antwoord:

Je zet dit bovenaan de pagina:

<?php
$microtime = microtime();
$delen = explode(" ", $microtime);
$precies = $delen[0];
$seconden = date("U");
$bgtm = $precies + $seconden;
?>

En dit onderaan de pagina:

<?php
$micro_end = microtime();
$delen = explode(" ", $micro_end);
$precies_end = $delen[0];
$seconden_end = date("U");
$edtm = $precies_end + $seconden_end;

$difference = $edtm - $bgtm;
$difference = round($difference,5); // afronden op 5 getallen achter de komma

echo "<i>Laadtijd van de pagina: <b>".$difference."</b> sec.</i>"; /*verander hier de zin waar in staat wat de laadtijd van de pagina is. Met $difference roep je de laadtijd op.
?>

Link to comment
Delen op andere websites

Bedankt, het werkt :)

Alleen er zit 1 kleine fout in

echo "<i>Laadtijd van de pagina: <b>".$difference."</b> sec.</i>"; /*verander hier de zin waar in staat wat de laadtijd van de pagina is. Met $difference roep je de laadtijd op.

Bij de laatste opmerking staat geen */, dus het moet worden:

echo "<i>Laadtijd van de pagina: <b>".$difference."</b> sec.</i>"; /*verander hier de zin waar in staat wat de laadtijd van de pagina is. Met $difference roep je de laadtijd op.*/

Link to comment
Delen op andere websites

Simpel, maar ik zou het anders doen:

<?php
$mtime_b = explode(" ", microtime()); 
$total_b = $mtime_b[1] + $mtime_b[0]; 
//$mtime_b[1]: seconden
//$mtime_b[0]: milliseconden
?>

En:

<?php
$mtime_e = explode(" ", microtime());
$total_e = $mtime_e[1] + $mtime_e[0];
$totaltime = round(($total_e - $total_b), 5);

echo "</b>Laadtijd:</b> ".$totaltime;
?>

Dan hoef je de functie date niet te gebruiken en dat bespaart weer parse tijd :*D .

Link to comment
Delen op andere websites

  • 3 maanden later...

Dat kan ik jou uiteraard wel uitleggen aan de hand van de volgende code. Ik heb hem zo opgezet dat hij gaat werken in Firefox en in Internet Explorer dit heb ik gemaakt door een Nesting een Object en een Embed in één vormt het klik en schuif werk voor een succesvol video bestand. Ik weet niet precies of je het streaming kan noemen, want volgens mij als je gaat streamen moet je eerst een stream bestand aanmaken genaamd: .ASF of .ASX, maar met dit script kun je het beide doen dus gewoon een .WMV of .Mpeg of noem de diverse termen maar op.

<object classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" codebase="unsaved:///codebase=http:/activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" name="player" width="480" height="272">
<param name="url" value="http://www.<adres>.<land>/<videonaam>.<extensie>" ref />
<param name="autostart" value="-1" />
<param name="uimode" value="mini" />
<param name="rate" value="1" />

<param name="balance" value="0" />

<param name="currentPosition" value="0" />
<param name="defaultFrame" value="" />
<param name="playCount" value="1" />
<param name="currentMarker" value="0" />
<param name="invokeURLs" value="-1" />
<param name="baseURL" value="" />
<param name="volume" value="50" />

<param name="mute" value="0" />
<param name="stretchToFit" value="0" />

<param name="windowlessVideo" value="0" />
<param name="enabled" value="-1" />
<param name="enableContextMenu" value="-1" />
<param name="fullScreen" value="0" />
<param name="SAMIStyle" value="" />
<param name="SAMILang" value="" />

<param name="SAMIFilename" value="" />
<param name="captioningID" value="" />
<param name="enableErrorDialogs" value="0" />

<param name="_cx" value="4022" />
<param name="_cy" value="926" />

<embed src="http://www.<adres>.<land>/<videonaam>.<extensie>" width="480" height="272" autostart="true" controls="playbutton" showstatusbar="false" url="http://www.<adres>.<land>/<videonaam>.<extensie>" autoplay="true" uimode="mini" name="player"></embed>
</object>

Zoals je kunt zien is het een hele lap tekst waar je vrij weinig mee kunt, maar je kan hem gewoon willekeurig ergens in je pagina plakken; natuurlijk in het HTML gedeelte. Natuurlijk moet je adressen die ik heb aangegeven met de 'http://www.<adres>.<land>/<videonaam>.<extensie>' aanpassen met het bestand die dit script af moet spelen. Verder zijn de waarden in het engels dus dat zal volgens mij geen problemen opleveren. Ik hoop in ieder geval dat ik je hiermee goed geholpen heb en dat je het met volle teug kunt gebruiken! :Y

Link to comment
Delen op andere websites

  • 1 maand later...

Hoi, ik heb net mijn eerste php login-systeem gemaakt en raad eens... en fout :duh: .

Ik heb twee pagina's waar een error wordt gegeven.

Hier even de pagina's + de error:

check.php:

<?php session_start(); ?>
<HTML>
<HEAD>
<TITLE>Dat is het!</TITLE>
<style type="text/css">
<!--
.style1 {
font-family: "Trebuchet MS";
font-size: 13px;
color: #777573;
font-weight: bold;
}
-->
</style>
</HEAD>
<BODY BGCOLOR="#FFFBF7" LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINRIGHT=0 MARGINHEIGHT=0 link="#777573" vlink="#777573" alink="#777573"><span class="style1"><BR>

<?php

//zet alle letters in de gebruikersnaam om in kleine letters
$naam = strtolower($_POST['username']);
$wachtwoord = $_POST['wachtwoord']

//kijk of wachtwoord + gebruikersnaam kloppen
if (($wachtwoord == "datishet" && $username == "georgios"))
{
//zet variabele zo dat het script het herkent als ingelogd
$_SESSION['login'] = "1";

//zet naam in variabele, zodat het later nog gebruikt kan worden
$_SESSION['login-naam'] = $naam;

//laat de beveiligde pagina zien
include ("step1completed.php");
}
elseif (($wachtwoord == "antdat" && $username == "martijn"))
{
//zet variabele zo dat het script het herkent als ingelogd
$_SESSION['login'] = "1"; 

//zet naam in variabele, zodat het later nog gebruikt kan worden
$_SESSION['login-naam'] = $naam; 

//laat de beveiligde pagina zien
include ("step1completed.php");
}
else
{
//laat weten dat het niet klopt
echo "Gebruikersnaam of wachtwoord incorrect.<BR><BR><A HREF='login.php'>Klik hier om terug te gaan...</A>";
}

?>

</FONT></SPAN></DIV>
</BODY>
</HTML>

De fout:

Parse error: parse error, unexpected T_IF in /home/www/dat1543tv3rta71n63n.freehostia.com/check.php on line 25

---

step1completed.php:

<?php
session_start();
if (($_SESSION['login'] == "1")) {}else{
echo "<BODY BGCOLOR="#FFFBF7" LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINRIGHT=0 MARGINHEIGHT=0 link="#777573" vlink="#777573" alink="#777573"><font face="Trebuchet MS" size="13px" color="#777573">Je moet eerst <A HREF='login.php'>inloggen</A> om deze pagina te kunnen bekijken.</FONT></BODY>";
exit();
}
?>
<HTML>
<HEAD>
<TITLE>Dat is het!</TITLE>
<style type="text/css">
<!--
.style1 {
font-family: "Trebuchet MS";
font-size: 13px;
color: #777573;
font-weight: bold;
}
-->
</style>
<META HTTP-EQUIV="refresh" CONTENT="10; URL=oASFD952MkwKl9.shtml">
</HEAD>
<BODY BGCOLOR="#FFFBF7" LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINRIGHT=0 MARGINHEIGHT=0 link="#777573" vlink="#777573" alink="#777573"><span class="style1">

<?php echo "Welkom, " . $_SESSION['login-naam'] . "."; ?>, stap 1 is voltooid. Je wordt binnen 10 seconden doorverwezen naar de tweede stap. Even geduld a.u.b....<BR><BR>

Als je wilt uitloggen, druk dan<A HREF="uitloggen.php">hier</A>.

</span>
</BODY>
</HTML>

De fout:

Parse error: parse error, unexpected T_EXIT, expecting ',' or ';' in /home/www/dat1543tv3rta71n63n.freehostia.com/step1completed.php on line 5

Alvast bedankt als jullie mij helpen.

Mvg,

Flitskikker

Link to comment
Delen op andere websites

Wat moet het dan zijn :? .

Ik zou het niet weten, hoor.

De fout zit hierin:

echo "<BODY BGCOLOR="#FFFBF7" LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINRIGHT=0 MARGINHEIGHT=0 link="#777573" vlink="#777573" alink="#777573"><font face="Trebuchet MS" size="13px" color="#777573">Je moet eerst <A HREF='login.php'>inloggen</A> om deze pagina te kunnen bekijken.</FONT></BODY>";

Je doet eigelijk dit:

echo "<style="border: 1"></style>";

(voorbeeldje om duidelijk uit te leggen)

Dus als PHP dat bestand "bekijkt" weet hij niet waneer je de quotes (een quote is een ") van de echo functie bedoeld of de quotes van HTML je moet de quotes van echo van " naar ' veranderen of je kan de HTML quotes in \" veranderen geparsed ziet dat er als een gewone " eruit.

Je kan dus dit:

echo "<BODY BGCOLOR=\"#FFFBF7\" LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINRIGHT=0 MARGINHEIGHT=0 link=\"#777573\" vlink=\"#777573\" alink=\"#777573\"><font face=\"Trebuchet MS\" size="13px\" color=\"#777573\">Je moet eerst <A HREF='login.php'>inloggen</A> om deze pagina te kunnen bekijken.</FONT></BODY>";

Of dit doen:

echo '<BODY BGCOLOR="#FFFBF7" LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINRIGHT=0 MARGINHEIGHT=0 link="#777573" vlink="#777573" alink="#777573"><font face="Trebuchet MS" size="13px" color="#777573">Je moet eerst <A HREF='login.php'>inloggen</A> om deze pagina te kunnen bekijken.</FONT></BODY>';

Je kan dit ook nog simpeler doen:

if (($_SESSION['login'] == "1")) {}else{

Dat kan je vervangen door

if (!$_SESSION['login'] == TRUE) {

Bewerkt: door Argon
Link to comment
Delen op andere websites

De fout in check.php is nog steeds niet opgelost en in step1completed.php krijg ik weer een andere error: Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/www/dat1543tv3rta71n63n.freehostia.com/step1completed.php on line 4

Link to comment
Delen op andere websites

De fout in check.php is nog steeds niet opgelost en in step1completed.php krijg ik weer een andere error: Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/www/dat1543tv3rta71n63n.freehostia.com/step1completed.php on line 4

In check.php is de fout dit:

$wachtwoord = $_POST['wachtwoord']

Je vergeet de regel af te sluiten dus daar moet nog een ; achter zodat het dit word:

$wachtwoord = $_POST['wachtwoord'];

In dat ander bestand, wat gebruik je van mijn codes?

Link to comment
Delen op andere websites

echo '<BODY BGCOLOR="#FFFBF7" LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINRIGHT=0 MARGINHEIGHT=0 link="#777573" vlink="#777573" alink="#777573"><font face="Trebuchet MS" size="13px" color="#777573">Je moet eerst <A HREF='login.php'>inloggen</A> om deze pagina te kunnen bekijken.</FONT></BODY>';

en

if (!$_SESSION['login'] == TRUE) {

Ik heb ze allebei vervangen.

En het probleem in check.php is opgelost. Thx.

EDIT: Als ik fout inlog, doet hij het zoals hij hoort (hij geeft de melding: foute inlog code, ga terug) maar als ik goed inlog krijg ik dus die foutmelding

Bewerkt: door Flitskikker
Link to comment
Delen op andere websites

Gast
Dit onderwerp is gesloten.
  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...