Gastenboek staat niet goed in de site

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 5 volgende »

Joost van der Meijden

Joost van der Meijden

12/06/2010 17:13:48
Quote Anchor link
Die ene komma waarmee je $sContent afsluit moet in ieder geval voor de require_once denk ik.
Maar die: You have an error in your SQL syntax blalbalbal dat is een foutje in de mYSQL (het praten met de database) dus die fout moet je straks even bekyken en nu dus even "vergeten".

Edit::
Je moet niet telkens een nieuwe reactie plaatsen, als je iets wilt toevoegen / wijzigen kun je je Afbeelding knop gebruiken om je reactie te wijzigen.

Edit2::
Ja, dat sluiten van </div> is nodig omdat een <div> tag hebt geopend.
Gewijzigd op 12/06/2010 17:23:19 door Joost van der Meijden
 
PHP hulp

PHP hulp

28/12/2024 10:44:04
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 18:32:49
Quote Anchor link
Dat met dat wijzigen geldt alleen als iemand anders niet al heeft gereageerd, je mag dus zegmaar niet 2 reacties van 1 persoon direct achter elkaar hebben staan :)
Wat gebeurd er als je die '; boven de require_onze doet, en de require_once met enkele quotes ( ' ) ipv dubbele quotes ( " )?

Edit::
Woeps, nu doe ik het perongeluk zelf, hahah :p
Gewijzigd op 12/06/2010 18:33:22 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 18:59:47
Quote Anchor link
Heeft ook geen resultaat.

Ik zit nog in de code te kijken en volgens mij gaat het al mis bij $sContent=' want de echo 3 regels eronder kleurt niet in dreamweaver, kun je daar wat mee? want in andere pagina's staat het onderaan ook zoals we nu hebben.
Er gaat gewoon iets niet goed met dat $sContent=' verhaal. op zich vreemd want alle andere pagina's op mijn site hebben het ook, enige verschil is dat er geen sql code in staat.


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
<?php
if(!defined('PATH'))
define('PATH', '');
include(PATH.'inc/config.php');

$sSubCategorie = 'Disclaimer';

$sContent='<div id="info_foto" class="style9">
<
div class="left_style_bold"><h2>Disclaimer</h2></div>

****
echo"<a href=\"sgastenboek.php\">Schrijf een bericht</a>";

include("connect.php"); // Nu maken we dus een verbinding met de database.
?>
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 19:19:18
Quote Anchor link
Omg, volgensmy zie ik het al.
bij <div enzo moet ook nog echo "

Edit::
$sContent ='
echo "<div id="info_foto" class="style9">";
echo "<div class="left_style_bold"><h2>Disclaimer</h2></div>";
echo "<a href="sgastenboek.php">Schrijf een bericht</a>";


Dat het niet kleurt hoort volgensmij zo.[/quote]

Edit2::
Je hebt gelyk. PHP in die variabel kan niet, je zal de output eerst moeten defineren (voor $sContenten) en dan die output in $sContent zetten.
1 moment.


Edit3::
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
if (!defined('PATH'))
define('PATH', '');
include (PATH.'inc/config.php');

$sSubCategorie = 'Disclaimer';

include("connect.php");
$sql = "SELECT * FROM gastenboek";
$uitvoer = mysql_query('.$sql.');
$aantal = mysql_num_rows('.$uitvoer.');
$perpage = 10;
$page_count = ceil('.$aantal.' / '.$perpage.');

if (isset($_GET["page"])) {
    if (is_int($_GET["page"])) {
    // controleren of $_GET["page"] een getal is.
        $page = $_GET["page"];
    }

    else {
        $page = 1;
    }
}

else {
    $page = 1;
}


$start = ($page * $perpage) - $perpage;
$sql = "SELECT * FROM gastenboek ORDER BY id DESC LIMIT '".$start."', '".$perpage; //Berichten uit de database halen en deze sorteren.
if ($uitvoer = mysql_query($sql)) {
    while($data = mysql_fetch_array($uitvoer)) {
        $output .= "Bericht geschreven door <b>".$data['naam']."</b>"; //De naam van de auteur
        $output .= " op " .$data['datum'];
        $output .= " om " .$data['tijd'];
        $output .= "<br /><br />";
        $bericht = nl2br($data['bericht']);
        $output .= $bericht; //Het bericht zelf
        $output .= "<br /><br /><br />";
    }

    $output .= "<br /><br />";
    
    if ($page > 1) {
        $vorige = $page-1;
        $output .= "<a href='gastenboek.php?page=".$vorige."'>Vorige</a> ";
    }

    else {
        echo("<b>Vorige </b>");
    }

        
    if ($page < ceil($aantal/$perpage))    {
        $volgende = $page+1;
        $output .= "<a href='gastenboek.php?page=".$volgende."'>Volgende</a>";
    }

    else {
       $output .= "<b>Volgende</b>";
    }
}

else {
    $output .= "Error: ".mysql_error();
}

$output .= "</div>";
$sContent = '<div id="info_foto" class="style9"><div class="left_style_bold"><h2>Disclaimer</h2></div><a href="sgastenboek.php">Schrijf een bericht</a>'.$output;
require_once PATH."template.tpl";
?>

What about that? :)
Gewijzigd op 12/06/2010 19:32:35 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 19:32:38
Quote Anchor link
Super! Dit gaat de goede kant op.
Op https://www.sanizo.nl/gastenboek.php kun je zien wat er nu gebeurd.
Nu die sql error nog. Enig idee wat dat kan zijn?

Verder moet ik nu sgastenboek.php aanpassen, want die gaat nog verkeerd. Ben er even 15 min tussenuit pak het dan weer op.
Gewijzigd op 12/06/2010 19:37:14 door M de Vries
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 19:34:29
Quote Anchor link
$sql = "SELECT * FROM gastenboek ORDER BY id DESC LIMIT '".$start."', '".$perpage."'"; //Berichten uit de database halen en deze sorteren.

Probeer is met deze, ik zag dat je een error hebt :)

Edit::
Ik heb altijd een beetje moeite met die quotes, altijd beetje puzzelen. Maar dat houd het leuk :)
Gewijzigd op 12/06/2010 19:44:03 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 19:40:10
Quote Anchor link
Error is er nog steeds:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0', '10'' at line 1

Maar ben al lang blij dat het in de site staat :-)
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 19:43:51
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
=  "SELECT * FROM gastenboek ORDER BY id DESC LIMIT ".$start.", ".$perpage.""; //Berichten uit de database halen en deze sorteren.
?>


Die code werkt als het goed is :)


Edit::
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php else {
        echo("<b>Vorige </b>");
    }
?>
moet worden
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php else {
        $output .= "<b>Vorige </b>";
    }
?>
Gewijzigd op 12/06/2010 19:50:42 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 19:51:00
Quote Anchor link
Klopt, alleen werken vorige en volgende nog niet, code vorige aangepast, staat nu ook goed :-)
Gewijzigd op 12/06/2010 19:53:37 door M de Vries
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 19:51:42
Quote Anchor link
Zie mijn edit in het vorige bericht (19:43:51) :)

Edit::
Kyk is, zo ziet het er mooi uit. Misschien dat een streep ( <hr /> ) wel mooi is tussen berichten, moet je maar even kijken.
En we moeten nog heel even kijken naar je formulier afhandeling qua beveiliging etc :)
Gewijzigd op 12/06/2010 19:54:13 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 19:56:09
Quote Anchor link
Dit is de code van Sgastenboek, waar moet ik de $content plaatsen?

Ps. hoe stuur ik je een PM? Al gevonden!

Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php    

if (!defined('PATH'))
define('PATH', '');
include("connect.php");
$sSubCategorie = 'Gastenboek';

if (!isset($_POST['submit']))
{

?>


<form method="post" action="" />
<table width="300" cellpadding="0" border="0">
<tr>
<td> Naam: </td>
<td> <input type="text" name="naam" maxlength="30" /> </td>
</tr>
<tr>
<td> Bericht: </td>
<td> <textarea name="bericht" cols="40" rows="8"></textarea> </td>
</tr>
<tr>
<td> </td>
<td> <br /><input type="submit" value="Bericht plaatsen" name="submit" /> </td>
</tr>
</table>

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
28
29
30
31
32
33
34
35
36
37
38
39
<?php

//if (regel 3)reeks afsluiten
}

else{

  $naam = $_POST['naam'];    
  $bericht = $_POST['bericht'];

  if (!$naam) {
          echo "FOUTMELDING:<br />";    
          echo "Je hebt geen naam ingevuld, maar die is wel verplicht.<br />";
          echo "<input type='submit' value='Terug' onclick='history.back(1)'>";
              }

  if(strlen($naam) > 30) {
          echo "FOUTMELDING:<br />";
          echo "Je naam mag maar 30 tekens lang zijn.<br />";
          echo "<input type='submit' value='Terug' onclick='history.back(1)'>";
              }

  if (!$bericht){ //....
          echo "FOUTMELDING:<br />";
          echo "Je hebt geen bericht ingevuld, en waar gaat het hier nou juist om? Precies!... <br />";
          echo "<input type='submit' value='Terug' onclick='history.back(1)'>";
              }

  
  $naam = str_replace("'", "`", $naam);
  $naam = htmlspecialchars($naam);
  $tijd = date("G:i");
  $datum = date("d-m-y");
  $bericht = str_replace("'", "`", $bericht);
  $bericht = htmlspecialchars($bericht);

  $sql = "INSERT INTO gastenboek (id, naam, tijd, datum, bericht)
          VALUES ('', '$naam', '$tijd', '$datum', '$bericht')"
;
  mysql_query($sql) or die(mysql_error());
}

require_once (PATH.'template.tpl');
?>
Gewijzigd op 12/06/2010 19:57:51 door M de Vries
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 20:10:15
Quote Anchor link
Ik denk dat dit een prima code zal zijn:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php    
if (!defined('PATH'))
define('PATH', '');
include("connect.php");
$sSubCategorie = 'Gastenboek';

if ($_SERVER['REQUEST_METHOD'] != "POST") {
    $output .= '<form method="post" action="" />';
        $output .= '<table width="300" cellpadding="0" border="0">';
             $output .= '<tr>';
                   $output .= '<td>Naam: </td>';
                  $output .=  '<td><input type="text" name="naam" maxlength="30" /></td>';
            $output .=  '</tr>';
            $output .=  '<tr>';
                $output .= '<td>Bericht: </td>';
                  $output .= '<td><textarea name="bericht" cols="40" rows="8"></textarea></td>';
             $output .= '</tr>';
             $output .= '<tr>';
                  $output .= '<td><br /><input type="reset" value="velden legen" name="reset" onclick="javascript: alert(\'Weet u zeker dat u alle velden wilt legen?\')" /></td>';
                   $output .= '<td><br /><input type="submit" value="Bericht plaatsen" name="submit" /></td>';
             $output .= '</tr>';
        $output .= '</table>';
    $output .= '</form>';
}

else {
    $naam = $_POST['naam'];    
    $bericht = $_POST['bericht'];
    if (!isset($naam) && $naam != "") {
        $output .= "FOUTMELDING:<br />";    
        $output .= "Je hebt geen naam ingevuld, maar die is wel verplicht.<br />";
        $output .= "<input type='submit' value='Terug' onclick='history.back(1)'>";
    }

    if(strlen($naam) > 30) {
        $output .= "FOUTMELDING:<br />";
        $output .= "Je naam mag maar 30 tekens lang zijn.<br />";
        $output .= "<input type='submit' value='Terug' onclick='history.back(1)'>";
    }

    if (!isset($bericht) && $bericht != "") {
        $output .= "FOUTMELDING:<br />";
        $output .= "Je hebt geen bericht ingevuld, en waar gaat het hier nou juist om? Precies!... <br />";
        $output .= "<input type='submit' value='Terug' onclick='history.back(1)'>";
    }

    $naam = htmlspecialchars($naam);
    $tijd = date("G:i");
    $datum = date("d-m-y");
    $bericht = htmlspecialchars($bericht);
    $sql = "INSERT INTO gastenboek (id, naam, tijd, datum, bericht) VALUES ('', '".mysql_real_escape_string($naam)."', '".mysql_real_escape_string($tijd)."', '".mysql_real_escape_string($datum)."', '".mysql_real_escape_string($bericht)."')";
    if (mysql_query($sql)) {
        $output .= 'Gelukt, uw reactie is in ons gastenboek geplaatst. Bedankt voor het reageren.<br />U kunt <a href="gastenboek.php">hier klikken</a> om terug te gaan naar het gastenboek.';
    }

    else {
        $output .= "Error: ".mysql_error();
    }
}

$sContent = '<div id="info_foto" class="style9"><div class="left_style_bold"><h2>Disclaimer</h2></div>'.$output;
require_once (PATH.'template.tpl');
?>

Ik heb een paar dingen weggelaten en toegevoegd ( zoals $naam = str_replace("'", "`", $naam) ).
Dit heb ik vervangen door bij het invoeren van de gegevens in de database mysql_real_escape_string te gebruiken, dit is een betere beveiliging :)
Je moet er alleen wel opletten dat je met het uitputten van $data['bericht'] bijvoorbeeld dit moet doen: $output .= stripslashes($bericht);

Het beste is eigenlijk om de tijd en datum door SQL zelf op te laten slaan waardoor het sorteren en rekenen met tijd (rekenen is in dit geval niet nodig) beter te laten verlopen.
Gewijzigd op 12/06/2010 20:12:51 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 20:21:24
Quote Anchor link
Ik krijg nu een error:
Fatal error: Call to undefined function activelink() in /home/sanizo.nl/public_html/inc/menu.php on line 11

rij 11: $output .= '<td>Naam: </td>';
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 20:23:36
Quote Anchor link
Dat is niet in fout in het script wat ik voor jouw heb aangepast.
Dat is een fout in het bestand menu.php
Dus dan moet je even in de map inc kijken, daar staat het bestand menu.php en dan ff een paar regels weer plakken :)

Edit::
Wat gebeurd er als je het bovenste gedeelte (van sgastenboek.php) veranderd naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if (!defined('PATH'))
define('PATH', '');
include (PATH.'inc/config.php');

$sSubCategorie = 'Gastenboek';

include("connect.php");
?>
Gewijzigd op 12/06/2010 20:26:11 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 20:33:11
Quote Anchor link
Dat was hem idd. nu nog de layout goed zetten, waar doe ik dat?
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 20:33:45
Quote Anchor link
Waarschijnlijk vergeten een </div> neer te zetten, even kijken :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sContent
= '<div id="info_foto" class="style9"><div class="left_style_bold"><h2>Disclaimer</h2></div>'.$output;
?>

Moet worden
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sContent
= '<div id="info_foto" class="style9"><div class="left_style_bold"><h2>Disclaimer</h2></div>'.$output.'</div>';
?>

Dat verhelpt het probleem als het goed is :)
Gewijzigd op 12/06/2010 20:35:05 door Joost van der Meijden
 
M de Vries

M de Vries

12/06/2010 20:35:00
Quote Anchor link
Ik zie ook dat vorige en volgende nog niet werken
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 20:38:01
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
<?php
if ($uitvoer = mysql_query($sql)) {
    while($data = mysql_fetch_array($uitvoer)) {
        $output .= "Bericht geschreven door <b>".stripslashes($data['naam'])."</b>"; //De naam van de auteur
        $output .= " op " .stripslashes($data['datum']);
        $output .= " om " .stripslashes($data['tijd']);
        $output .= "<br /><br />";
        $bericht = nl2br($data['bericht']);
        $output .= stripslashes($bericht); //Het bericht zelf
        $output .= "<br /><br /><br />";
    }

    $output .= "<br /><br />";
    if ($page > 1) {
        $vorige = $page-1;
        $output .= "<a href='gastenboek.php?page=".$vorige."'>Vorige</a> ";
    }

    if ($page < ceil($aantal/$perpage))    {
        $volgende = $page+1;
        $output .= "<a href='gastenboek.php?page=".$volgende."'>Volgende</a>";
    }
}

else {
    $output .= "Error: ".mysql_error();
}

?>

Werkt dit?
 
M de Vries

M de Vries

12/06/2010 20:40:32
Quote Anchor link
Nu zijn ze helemaal weg!
 
Joost van der Meijden

Joost van der Meijden

12/06/2010 20:42:43
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
<?php
include("connect.php");
$sql = "SELECT * FROM gastenboek";
$uitvoer = mysql_query($sql);
$aantal = mysql_num_rows($uitvoer);
$perpage = 10;
$page_count = ceil($aantal / $perpage);
if (isset($_GET["page"])) {
    if (is_int($_GET["page"])) {
    // controleren of $_GET["page"] een getal is.
        $page = $_GET["page"];
    }

    else {
        $page = 1;
    }
}

else {
    $page = 1;
}

?>
 

Pagina: « vorige 1 2 3 4 5 volgende »



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.