ob_start(); vragen
aan gezien ik hier gebruik van wil maken om diverse pagina te mailen
is mijn vraag hoe kan ik deze code optimaal benutten
include van pagina's
de style.css toe voegen
ik weet wel dat include kan maar hoe via mijn ip
ik weet wel dat plaatje mee kan zenden gelinkt aan mijn site
zou iemand hier bij helpen
bij het include en de style mee sturen of op vragen via mijn website
2) Wat heeft ob_start hiermee te maken?
3) Wat wil je nu precies?
4) Wat heb je al geprobeerd?
5) Gebruik leestekens, dat helpt enorm.
6) Schrijf volledige zinnen, topicberichten hoeven niet in telegramstijl geschreven te worden
7) Hoeveel ervaring heb je?
8) Heb je al eens gekeken naar professionele libraries die dit voor je doen? (bijv. Swiftmailer)
9) Wat weet je niet, want dat wil je graag weten toch?
10) Herschrijf je topic bericht maar even door op het kladblok icoontje rechtsbovenin je bericht te klikken.
2. ik ben met input pagina bezig na invullen wordt deze verzonden naar 5 email
de gegevens die hij veerstuurd staan in ob_start
3. wat ik wil is mail versturen in huisstyle van de website
4.
Quote:
5. ik niet geleerd op school vandaar de dislentie soory mijn fout
6 zie punt 5
7. niet veel ervaring maar door beetje bij beetje te oden kom ik er ook
8 weet niet waar over je hebt
9 graag wil ik weten of de mogelijk hede zijn om mijn style te include
pagina te in clude zo dat alles als een standaard script wordt
waar direct hele lappe style en php pagina over nieuw schrijven
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
28
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
28
<?php
ob_start();
echo '<div class = "header">';
echo '<link rel="stylesheet" type="text/css" href="http://77.248.22.16:8080/css/style.css">';
include('http://77.248.22.16:8080/header2.php');
echo '<img src = "http://77.248.22.16:8080/images/logo.png">';
echo '<h1>Medewerker Afspraken systeem</h1>';
echo'</div>';
echo "<table border='1'>";
echo "<th>wie</th>";
echo "<th>Naam</th>";
echo "<th>Datum</th>";
echo "<th>tijd</th>";
echo "<th>Afspraak</th>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>".$row['wie']."</td>";
echo "<td>".$row['Naam']."</td>";
echo "<td>".$row['Datum']."</td>";
echo "<td>".$row['tijd']."</td>";
echo "<td>".$row['Afspraak']."</td>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
}
echo "</table>";
$bericht = ob_get_contents();
ob_end_clean();[/quote]
?>
ob_start();
echo '<div class = "header">';
echo '<link rel="stylesheet" type="text/css" href="http://77.248.22.16:8080/css/style.css">';
include('http://77.248.22.16:8080/header2.php');
echo '<img src = "http://77.248.22.16:8080/images/logo.png">';
echo '<h1>Medewerker Afspraken systeem</h1>';
echo'</div>';
echo "<table border='1'>";
echo "<th>wie</th>";
echo "<th>Naam</th>";
echo "<th>Datum</th>";
echo "<th>tijd</th>";
echo "<th>Afspraak</th>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>".$row['wie']."</td>";
echo "<td>".$row['Naam']."</td>";
echo "<td>".$row['Datum']."</td>";
echo "<td>".$row['tijd']."</td>";
echo "<td>".$row['Afspraak']."</td>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
}
echo "</table>";
$bericht = ob_get_contents();
ob_end_clean();[/quote]
?>
5. ik niet geleerd op school vandaar de dislentie soory mijn fout
6 zie punt 5
7. niet veel ervaring maar door beetje bij beetje te oden kom ik er ook
8 weet niet waar over je hebt
9 graag wil ik weten of de mogelijk hede zijn om mijn style te include
pagina te in clude zo dat alles als een standaard script wordt
waar direct hele lappe style en php pagina over nieuw schrijven
Als groepsleerkracht op basisscholen heb ik al heel wat kinderen met dyslexie gehad. Die maken ook veel fouten, maar kunnen wel normale zinnen maken.
Een zin als: "1. topic ik vond ik toepasselijk" is natuurlijk kolder. Dat heeft niets met dyslexie te maken.
Gezien je code (die trouwens foutloos is... zal wel gekopieerd zijn dan?) wil jij gewoon dit.
Dus geen echo gebruiken, maar gelijk alles in een variabele.
Wat ik heb gedaan:
1) rare ob-start-dingen eruit gehaald
2) je while-loop gefixed (mysql_fetch_array() geeft geen associatieve array terug)
3) je HTML gemaakt: geen <tr></tr>, je gebruikt </div> wel, maar er was geen <div>?
4) je headers uit de while-loop gehaald (want die overschrijf je toch steeds...)
5) Normaal echo je HTML tussen enkele haakjes. Nu dus ook...
6) Je CSS kan je niet linken: dat staan de mailprogramma's toch niet toe. Dus: inline gooien. Kijk even hoe ik dat doe
7) Extern plaatjes linken gaat meestal nog wel, maar speel voor zeker: gooi het gewoon inline (zie base64).
8) Gebruik geen /r/n maar gewoon PHP_EOL (End OF Line)
Ik krijg er dan zoiets uit:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
// hier ergens je query?
// loop query af
while($row = mysql_fetch_assoc($result))
{
$rij[] = '<tr>
<td>' . $row['wie'] . '</td>
<td>' . $row['Naam'] . '</td>
<td>' . $row['Datum'] . '</td>
<td>' . $row['tijd'] . '</td>
<td>' . $row['Afspraak'] . '</td>
</tr>';
}
// schrijf bericht
$bericht = '
<div class = "header">
<style>
' . file_get_contents('css/style.css') . '
<style>
<img src="data:image/png;base64,' . base64_encode('/images/logo.png') . '" >
<h1>Medewerker Afspraken systeem</h1>
<div>
<table border="1">
<tr>
<th>Wie</th>
<th>Naam</th>
<th>Datum</th>
<th>Tijd</th>
<th>Afspraak</th>
</tr>
'.implode(PHP_EOL, $rij).'
</table>
</div>
';
// geef headers op voor de mail (hoeft niet in een loop)
$headers = "MIME-Version: 1.0".PHP_EOL;
$headers .= "Content-Type: text/html; charset=ISO-8859-1".PHP_EOL;
?>
// hier ergens je query?
// loop query af
while($row = mysql_fetch_assoc($result))
{
$rij[] = '<tr>
<td>' . $row['wie'] . '</td>
<td>' . $row['Naam'] . '</td>
<td>' . $row['Datum'] . '</td>
<td>' . $row['tijd'] . '</td>
<td>' . $row['Afspraak'] . '</td>
</tr>';
}
// schrijf bericht
$bericht = '
<div class = "header">
<style>
' . file_get_contents('css/style.css') . '
<style>
<img src="data:image/png;base64,' . base64_encode('/images/logo.png') . '" >
<h1>Medewerker Afspraken systeem</h1>
<div>
<table border="1">
<tr>
<th>Wie</th>
<th>Naam</th>
<th>Datum</th>
<th>Tijd</th>
<th>Afspraak</th>
</tr>
'.implode(PHP_EOL, $rij).'
</table>
</div>
';
// geef headers op voor de mail (hoeft niet in een loop)
$headers = "MIME-Version: 1.0".PHP_EOL;
$headers .= "Content-Type: text/html; charset=ISO-8859-1".PHP_EOL;
?>
Kan ongetwijfeld beter hoor, maar 't is al beter.
Over jouw puntje 5.... welke school was dat dan? Want ook dyslextische kinderen leren leren/schrijven. Niet volledig foutloos wellicht, maar wel met interpunctie. Dit lijkt mij meer een stukje luiheid. Want die <punt> indrukken heeft niet met dyslexie te maken.
Hoe oud ben je eigenlijk?
Over je puntje negen: kijk eens naar file_get_contents()... ik gebruik het al.
Gewijzigd op 26/12/2012 10:32:58 door Eddy E
ob_start() klinkt altijd tof en spannend, maar weet wel wanneer je het écht moet gebruiken, en dat is echt zelden.
Iets met externe websites ophalen? Maar waarom dan geen cURL()?
ob_start is juist bedoelt om de gegevens die op de website staan
te versturen naar me zelf en andere
wanneer wel werkt zonder style om opmaak
is deze code
Quote:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
echo "<script>window.location = 'main.php';</script>";
$result = mysql_query("SELECT * FROM STATUS");
$statusCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM WERKNEMERS");
$werknemerCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM STATUS ORDER BY STATUS");
ob_start();
echo "<table border='1'>";
echo "<th>Status</th>";
echo "<thNaam</th>";
echo "<th>Rede</th>";
echo "<th>Aankomst</th>";
echo "<th>Datum</th>";
echo "<th>vakantieduur</th>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>".$row['Status']."</td>";
echo "<td>".$row['Naam']."</td>";
echo "<td>".$row['Rede']."</td>";
echo "<td>".$row['Datum']."</td>";
echo "<td>".$row['aankomst']."</td>";
if ($row['vakantieduur'] != 0000-00-00) {
echo "<td>".$row['vakantieduur']."</td></tr>";
}
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
}
echo "</table>";
$bericht = ob_get_contents();
ob_end_clean();
$result = mysql_query("SELECT * FROM STATUS WHERE STATUS = 'vakantieduur'");
while ($row = mysql_fetch_array($result)) {
if ($datum == $row['vakantieduur']) {
$datum = date("Y-m-d");
mysql_query("DELETE FROM STATUS WHERE VAKANTIEDUUR = '$datum'");
}
}
if ($statusCount == $werknemerCount) {
mail('[email protected]', 'Administratie', $bericht, $headers);
$result = mysql_query("SELECT * FROM STATUS");
while ($row = mysql_fetch_array($result)) {
mysql_query("INSERT IGNORE INTO archief SELECT id, Status, Naam, Datum, Rede, vakantieduur, aankomst FROM status");
mysql_query("DELETE FROM STATUS"
?>
echo "<script>window.location = 'main.php';</script>";
$result = mysql_query("SELECT * FROM STATUS");
$statusCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM WERKNEMERS");
$werknemerCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM STATUS ORDER BY STATUS");
ob_start();
echo "<table border='1'>";
echo "<th>Status</th>";
echo "<thNaam</th>";
echo "<th>Rede</th>";
echo "<th>Aankomst</th>";
echo "<th>Datum</th>";
echo "<th>vakantieduur</th>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>".$row['Status']."</td>";
echo "<td>".$row['Naam']."</td>";
echo "<td>".$row['Rede']."</td>";
echo "<td>".$row['Datum']."</td>";
echo "<td>".$row['aankomst']."</td>";
if ($row['vakantieduur'] != 0000-00-00) {
echo "<td>".$row['vakantieduur']."</td></tr>";
}
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
}
echo "</table>";
$bericht = ob_get_contents();
ob_end_clean();
$result = mysql_query("SELECT * FROM STATUS WHERE STATUS = 'vakantieduur'");
while ($row = mysql_fetch_array($result)) {
if ($datum == $row['vakantieduur']) {
$datum = date("Y-m-d");
mysql_query("DELETE FROM STATUS WHERE VAKANTIEDUUR = '$datum'");
}
}
if ($statusCount == $werknemerCount) {
mail('[email protected]', 'Administratie', $bericht, $headers);
$result = mysql_query("SELECT * FROM STATUS");
while ($row = mysql_fetch_array($result)) {
mysql_query("INSERT IGNORE INTO archief SELECT id, Status, Naam, Datum, Rede, vakantieduur, aankomst FROM status");
mysql_query("DELETE FROM STATUS"
?>
Gewijzigd op 26/12/2012 11:42:15 door john breedveld
ik zie al een afsluit-fout op lijn 47.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$result = mysql_query("SELECT * FROM STATUS");
$statusCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM WERKNEMERS");
$werknemerCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM STATUS ORDER BY STATUS");
?>
$result = mysql_query("SELECT * FROM STATUS");
$statusCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM WERKNEMERS");
$werknemerCount = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM STATUS ORDER BY STATUS");
?>
Werkelijk? Drie queries, op die manier?
Als je alleen het aantal rijen in een selectie wil weten ga je natuurlijk niet alle rijen EN alle kolommen op halen. Dat is een verschrikkelijke verspilling van je server capaciteit. Dat doe je dan met een COUNT in je query, waardoor je maar 1 getal terugkrijgt en dat is precies wat je wilt hebben.
Het aantal rijen in je tabel staat nu in de eerste (en enige) rij die je terugkrijgt in de kolom 'row_count'.
Daarnaast, de eerste en de laatste query zijn natuurlijk gewoon gelijk, behalve dan de sortering. Die sortering maakt voor de eerste helemaal niets uit, dus gooi die eerste query het raam uit. Het aantal rijen kan je dan ook wel gewoon met de derde query bepalen.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$result = mysql_query("SELECT * FROM STATUS");
while ($row = mysql_fetch_array($result)) {
mysql_query("INSERT IGNORE INTO archief SELECT id, Status, Naam, Datum, Rede, vakantieduur, aankomst FROM status");
?>
$result = mysql_query("SELECT * FROM STATUS");
while ($row = mysql_fetch_array($result)) {
mysql_query("INSERT IGNORE INTO archief SELECT id, Status, Naam, Datum, Rede, vakantieduur, aankomst FROM status");
?>
En hier ook weer een query voor jan met de korte achternaam. Je selecteert alles van status om dan rij voor rij die in het archief te zetten.... maar aangezien je in die insert query alles gewoon neemt, is die hele while loop compleet overbodig. En ditzelfde heb ik je in dit topic ook al een keer uitgelegd: http://www.phphulp.nl/php/forum/topic/mail-werk-niet-echt-lekker/88075/
Maar alle tips zijn dus overbodig begrijp ik?
Gewijzigd op 26/12/2012 11:54:08 door Erwin H
- Ik doe geen moeite om normale zinnen te schrijven, dislexie is een geweldig excuss en het boeit me niet of jij het nou wel of niet hebt, iedereen kan een zin schrijven.
- Ik ga met knip en plak werk een script in elkaar zetten, waarom zou ik tijd investeren in het goed leren van een taal?
- Op het forum kom ik voor het oplossen van mijn problemen, niet om allemaal onnodige extra tips te krijgen, waarom zouden ze die geven?
- Eigenlijk negeer ik alle tips, waarom komen ze nou met file_get_contents? Ik wou toch iets met ob_start!
Besteed wat meer tijd in alles wat je doet, zowel het schrijven van een bericht als het maken van een code. Weet bij elke regel precies waarom je het doet en zorg dat je niet zoveel onnodige dingen doet. Pak een kladblaadje en schrijf daar de aandachtspunten op die in je topics zijn genoemd, hierdoor maak je niet nog eens dezelfde fout. En als laatst, probeer wat aardiger te reageren, tijd te nemen om dingen te onderzoeken en niet zomaar alle hulp weg te wuiven.
>> 1. topic ik vond ik toepasselijk
Vind je? Elk topic bevat 1 of meerdere vragen, dus dat vragen moet weg. Tevens weet je niet eens of ob_start hier geschikt voor is. Je kan veel beter je probleem in een titel zetten.
>> 5. ik niet geleerd op school vandaar de dislentie soory mijn fout
>> 6 zie punt 5
Het lijkt me sterk dat jij op de enige school in de wereld hebt gezeten waar je niet leert...
>> 7. niet veel ervaring maar door beetje bij beetje te oden kom ik er ook
Verkeerd gedacht. Ga eerst PHP leren en leren nadenken over je code, dan kun je pas verder. Je gaat ook geen huis bouwen door maar een beetje te doen, dan wordt het ook niks. Dat huis is dan gelijk aan je PHP script, alleen is het script 'virtueel' waardoor 'het wel slecht kan'.
>> 8 weet niet waar over je hebt
Dan gaat ieder mens die zijn probleem op wilt lossen eens googlen op die trefwoorden: swiftmailer
Heb het idee dat veel topics niet (volledig) zijn beantwoord, maar TS reageert niet eens meer.
Wil met alle plezier mensen proberen te helpen, maar enige eigen inbreng is dan toch wel gewenst (/vereist).
Kan me helemaal vinden in de woorden van Wouter J.
Ik heb ondertussen besloten dat dit mijn laatste reactie is op een topic van John Breedveld, zolang hij niet de moeite neemt om serieus met (zijn taal en) PHP bezig te gaan.