Of kijken of de num_rows groter is dan 1 >1
Of kijken of de num_rows groter is dan 1 >1
Hallo,
Klopt wat je net schreef ik heb alles er even uitgegooit en nu wordt alles goed opgeslagen!!! helemaal top.. Ik zie nu mijn reacties!!!
1 Vraag rest mij nog.
De reacties komen niet onderelkaar trouwens...... het is 1 lijn van reacties.
Bijvoorbeeld: Kees hallo wat goed zeg Truus hoi etc..
Dan moet je de results in een tabel weergeven of mooier in divjes. Om het makkelijk te doen kan je ook iets als
doen. Php is alleen data, opmaak moet je in html,css doenCode:while ($row = mysql_fetch_array($result)) { // deze reactie weergeven echo ''.$row['naam'].' - '.$row['email'].''. ''.$row['reactie'].'<br />'; }
De script werk nu prima, ik kan reageren!! Bedankt allen.
Nu wil ik nog 1 aanpassing doen aan het script,
Naam
reactie
Als ik alleen naam invul + reactie en geen email dan slaat hij ook op.
Waar ik naar zoek is dat alle velden verplicht invullen is en dan pas opslaan op de pagina. (waarbij de bezoeker die iets wil reageren word geattendeerd alles in te vullen.
<style type="text/css">
<!--
body,td,th {
font-family: Tahoma, Geneva, sans-serif;
font-size: 12px;
color: #747474;
}
-->
</style>
<p><strong>Reacties</strong></p>
<strong>
<?php
mysql_connect('**********','*******','*******');
mysql_select_db('frankda_reactie');
$query = 'SELECT id FROM paginas WHERE url="'.mysql_escape_string($_SERVER['REQUEST_URI']).'"';
$result = mysql_query($query);
if (mysql_num_rows($result)== 1){
$row = mysql_fetch_array($result);
$pagina_id = $row['id'];
} else {
mysql_query('INSERT INTO paginas SET url="'.
$_SERVER['REQUEST_URI'].'";');
$pagina_id = mysql_insert_id();
}
?>
</strong>
<p><strong>Reageer zelf</strong></p>
<p> </p>
<form method="post">
<p> </p>
<p>Naam:
<input type="text" name="naam"><br>
</p>
<p> </p>
<p>E-mail:
<input name="email" type="text" value="" />
<br>
</p>
<p> </p>
<p>Reactie:<br>
<textarea cols="45" rows="4" name="reactie"></textarea>
<br>
<input type="submit" value="Versturen">
</p>
</form>
<p> </p>
<?php
if (isset($_POST['naam'])) {
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.$_POST['naam'].'", email="'.$_POST['email'].'", '.'reactie="'.$_POST['reactie'].'";';
$result = mysql_query($query);
echo '<p>Je bericht is opgeslagen.</p>';
}
?>
<p><strong><u>Reacties van anderen</u></strong></p>
<br>
<br>
<?php
$query = 'SELECT * FROM reactie WHERE pagina="'.$pagina_id.'"';
$result = mysql_query($query);
if (mysql_num_rows($result)== 0){
echo 'Er zijn nog geen reacties.';
} else {
while ($row = mysql_fetch_array($result)) {
// deze reactie weergeven
echo
''.$row["datumtijd"].'<br>'.$row['naam'].' zegt: '.'<br>'.'<br>'.
''.$row['reactie'].'<br>'.'<br>'.'<br />';
}
}
?>
Jah dit kan op meerdere manieren, javascript is een optie(is wel te manipuleren) of je checkt het in php met een if statement.
Het is geen waterdichte check maar het doet wat je wilt. Verder zou ik ook nog je input check met mysql_real_escape_string() etc. voor je het in de database drukt.PHP Code:
if (isset($_POST['naam'])) {
if($_POST['naam'] != '' && $_POST['email'] != '' && $_POST['reactie'] != ''){
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.$_POST['naam'].'", email="'.$_POST['email'].'", '.'reactie="'.$_POST['reactie'].'";';
$result = mysql_query($query);
echo '<p>Je bericht is opgeslagen.</p>';
}else{
echo 'vul alles in';
}
}
Oke,
Thanks
Verder zou ik ook nog je input check met mysql_real_escape_string() etc. voor je het in de database drukt.
Hoe bedoel je dit?
http://php.net/manual/en/function.my...ape-string.php
met mysql_real_escape_string() zorg je er voor dat er geen injections gedaan kunnen worden in je query, als bijvoorbeeld $_POST['reactie'] nog meer dan alleen reactie post bevat:
$_POST['reactie'] = 'reactie'; DROP DATABASE <hierjedb> (voorbeeld werkt niet)
dan dropt ie je hele database doordat je niet goed escaped houdt hij de reactie niet binnen de query maar sluit bijvoorbeeld query af en vuurt nog query af kan droptable database update admin password etc etc.
[ame]http://en.wikipedia.org/wiki/SQL_injection[/ame]
Je moet er vanuit gaan dat alles wat een gebruiker invult altijd EVIL is dus altijd alles netjes afvangen email adres check, escapen, controleren of iets niet leeg is etc.PHP Code:
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.mysql_real_escape_string($_POST['naam']).'", email="'.mysql_real_escape_string($_POST['email']).'", '.'reactie="'.mysql_real_escape_string($_POST['reactie']).'";';
Bedankt voor je reactie daanl, ik heb het veranderd in
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.mysql_real_escape_string($_POST['naam']).'", email="'.mysql_real_escape_string($_POST['email']).'", '.'reactie="'.mysql_real_escape_string($_POST['reactie']).'";';
dat zou alles moeten zijn dan, nu snel naar bol.com voor een PHP5/MYSQL handboek voor beginners, een handleiding die ik je onder andere aan kan raden is:
http://www.phptuts.nl/view/39/
en
http://www.phptuts.nl/view/41/
Html script lukt nog wel maar php is voor mij nog abracadabra. Boekjes kopen zal wel eens helpen
Mijn formulier doet het nu prima, dankzij de hulp hier!
bedankt
zou zeggen veel lezen boeken en google is je vriend