veilig script????

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Software Developer PHP JavaScript Python HBO SQL

Samengevat: Wij zijn een softwarebedrijf voor Autodealers. Ben jij een Medior of Senior Software Developer? Heb je ervaring met PHP, JavaScript of Python? Vaste baan: Java.Developer Software HBO €3.000 - €5.200 Bij ons op de werkvloer is er een positieve en informele sfeer. Naast een goede begeleiding en een enthousiaste klantenkring biedt deze werkgever een prettige omgeving met zeer afwisselende werkzaamheden. Houd jij van aanpakken en denk je dat je deze uitdaging aankunt? Dan zoeken wij jou! Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij deze werkgever op kantoor realiseren (geen detachering). Zij werken met state-of-the-art

Bekijk vacature »

C# Unity Developer

Functieomschrijving Ontwikkel jij mee door applicaties te bouwen die bijdragen aan het optimaliseren van processen? Voor een erkende werkgever in regio Tilburg zijn wij op zoek naar een Unity C# Developer die graag de uitdaging aangaat! Jouw werkzaamheden zullen er als volgt uitzien: Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software; Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Je bent verantwoordelijk voor het uitvoeren van updates/aanpassingen aan de reeds draaiende applicaties. Bedrijfsprofiel Je komt te werken voor een internationale werkgever in regio Tilburg. Samen met een vooruitstrevend team

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Medior/senior Back-end developer gezocht!

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het devlopmenttean. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met de

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Java Front-end Developer

Dit ga je doen Ontwikkelen van nieuwe functionaliteiten in Java met tools als Springboot, MS SQL Server (T-SQL) en JavaScript; Het onderhouden van de (web-)applicaties binnen een complexe omgeving; Werken aan de migratie van een monolithisch systeem naar een architectuur gebaseerd op Kubernetes; Code reviews met collega's en actieve kennisuitdelingsessies voeren; Het uitvoeren van unit- en systeemtests Experimenteren met nieuwe tools en technieken. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen

Bekijk vacature »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

Informeel bureau zoekt Senior PHP developer

Functie Als senior PHP developer neem je het voortouw in ontwikkeltrajecten en ben je in staat werk uit te leggen aan collega’s om zo je kennis met hen te delen. Je deinst niet terug voor ingewikkelde projecten. Deze zie jij alleen maar als uit uitdaging. Je werkt doorlopend aan klantcases (en hierdoor je klant echt leert kennen), maar toch ben je afwisselend bezig. Dit alles in een vrije en ontspannen werksfeer, met een team van gelijkgestemde. Binnen de development teams werken ze met o.a. PHP, Laravel, React, Node, Elastic, Amazon AWS, JIRA, Solid, Domain-driven-design, Doctrine, Redis, docker, Kubernetes, CI, PHP

Bekijk vacature »

Pagina: 1 2 volgende »

Bram

bram

03/01/2008 21:57:00
Quote Anchor link
Ik ben nog maar net bezig met php en heb een berichtenbalk gemaakt,
maar ik weet nu dus niet zeker of het wel een veilig en goed script is.
Wil iemand het soms even voor me nakijken

----------------------
de database
----------------------
user_ID, int, geen null, auto_increment, primaire sleutel
username, varchar(15), geen null
bericht, varchar(50), geen null

----------------------
postbericht.php
----------------------
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
<?php
$ip
= "$REMOTE_ADDR";
If($ip == "0.0.0.0")
{

include("berichtenbalk.php");
}


//naam gebruiker=$naam, inhoud bericht = $bericht
else {
If($verzend) {
$naam = htmlspecialchars($naam);
$bericht = htmlspecialchars($bericht);
mysql_connect("prive", "prive", "prive") or die(mysql_error());
mysql_select_db("prive") or die(mysql_error());
mysql_query("INSERT INTO berichtenbalk (username,bericht) VALUES ('$naam','$bericht')");
    echo "Klik <a href=\"berichtenbalk.php\">hier</a> om je bericht te bekijken.";
    }


else{

    echo "<form name=\"formulier\" method=\"post\" action=\"postbericht.php\">";    
    echo "<b>Naam:</b><br><input type=text name=naam> maximum 15 tekens<br>";  
    echo "<b>Bericht:</b><br><input type=text name=bericht> maximum 50 tekens<br>";    
    echo "<input type=submit value='Verstuur' name=verzend>";    
    echo "</form>";    

}
}

?>


----------------------
berichtenbalk.php
----------------------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
mysql_connect("prive", "prive", "prive") or die(mysql_error());
mysql_select_db("prive") or die(mysql_error());
$data = mysql_query("SELECT * FROM berichtenbalk ORDER BY user_ID DESC LIMIT 8") or die(mysql_error());
Print "<table border=1 width=100%>";
Print "<tr><td width=90%><marquee>";
while($info = mysql_fetch_array( $data ))
{
  
Print " <b>" . $info['username'] . "</b>: " . $info['bericht'] . " |";
}

Print "</marquee></td><td width=10%><a href=\"postbericht.php\">voeg bericht toe.</a></td></tr></table><br>";
?>

Alleen de laatste 8 berichten worden getoond.
Gewijzigd op 01/01/1970 01:00:00 door Bram
 
PHP hulp

PHP hulp

22/12/2024 21:38:28
 
Joren de Wit

Joren de Wit

03/01/2008 22:04:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
If($verzend) {
?>

Dit doet vermoeden dat register_globals aan staat? Dat is sowieso al een mogelijk veiligheidslek, dus dat zou ik zeker uitschakelen.

Verder zou ik ook nog even de gebruikersnaam en wachtwoord uit je database connectie halen.

ps. Verder mis ik de foutafhandeling in je script? Je controleert nergens of je queries wel gelukt zijn. Ook zul je bij je insert query nog even mysql_real_escape_string() toe moeten passen om SQL injectie te voorkomen.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 

03/01/2008 22:09:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php // Kleurtjes
$ip = "$REMOTE_ADDR";
?>

Klopt ook niet hé? We gaan geen nutteloze variabelen maken. Variabelen maak je überhaupt niet zo.
 
Bram

bram

03/01/2008 22:18:00
Quote Anchor link
Ik heb postbericht.php aangepast, beter zo?
--------------------------
postbericht.php
--------------------------
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
If($_SERVER['REQUEST_METHOD'] == "POST") {
$naam = htmlspecialchars($_POST['naam']);
$bericht = htmlspecialchars($_POST['bericht']);
mysql_connect("prive", "prive", "prive") or die(mysql_error());
mysql_select_db("prive") or die(mysql_error());
mysql_query("INSERT INTO berichtenbalk (username,bericht) VALUES ('$naam','$bericht')");
    echo "Klik <a href=\"berichtenbalk.php\">hier</a> om je bericht te bekijken.";
    }


else{

    echo "<form name=\"formulier\" method=\"post\" action=\"postbericht.php\">";    
    echo "<b>Naam:</b><br><input type=text name=naam> maximum 15 tekens<br>";  
    echo "<b>Bericht:</b><br><input type=text name=bericht> maximum 50 tekens<br>";    
    echo "<input type=submit value='Verstuur' name=verzend>";    
    echo "</form>";    

}

?>
Gewijzigd op 01/01/1970 01:00:00 door bram
 
Niels Janssen

Niels Janssen

03/01/2008 22:45:00
Quote Anchor link
Iets, variabelen buiten de quotes halen. Geen superglobals gebruiken, dus $REMOTE_ADDR moet $_SERVER['REMOTE_ADDR'] worden of iets soortgelijks. Verder is het aan te raden om htmlspecialchars te vervangen door een mysql_real_escape();

Verder lijkt het me ook wel handig dat je de $_POST['naam'] en $_POST['bericht'] controleerd op hun inhoud.

Ook is het gebruik van or die(mysql_error()); sterk af te raden als je het script op een gewone website gebruikt. Dan is het handiger om gewoon een abstracte foutmelding te geven in plaats van informatie over je database.
 
Bram

bram

03/01/2008 22:51:00
Quote Anchor link
die laatste twee snap ik niet :s (ken nog niet veel van php),
remote address heb ik al weggelaten omdat jeej zei dat dat overbodig was.

Maar dat van mysl_real_escape heb ik gedaan:
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
If($_SERVER['REQUEST_METHOD'] == "POST") {
$naam = mysql_real_escape($_POST['naam']);
$bericht = mysql_real_escape($_POST['bericht']);
mysql_connect("prive", "prive", "prive") or die(mysql_error());
mysql_select_db("prive") or die(mysql_error());
mysql_query("INSERT INTO berichtenbalk (username,bericht) VALUES ('$naam','$bericht')");
    echo "Klik <a href=\"berichtenbalk.php\">hier</a> om je bericht te bekijken.";
    }


else{

    echo "<form name=\"formulier\" method=\"post\" action=\"postbericht.php\">";    
    echo "<b>Naam:</b><br><input type=text name=naam> maximum 15 tekens<br>";  
    echo "<b>Bericht:</b><br><input type=text name=bericht> maximum 50 tekens<br>";    
    echo "<input type=submit value='Verstuur' name=verzend>";    
    echo "</form>";    

}

?>


kun je mss een voorbeeld geven van de laatste twee opmerkingen?


edit:
Ik heb het van die error ondertussen begrepen:
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
If($_SERVER['REQUEST_METHOD'] == "POST") {
$naam = mysql_real_escape($_POST['naam']);
$bericht = mysql_real_escape($_POST['bericht']);
mysql_connect("prive", "prive", "prive") or die("Verbinding maken met database is mislukt");
mysql_select_db("prive") or die(mysql_error());
mysql_query("INSERT INTO berichtenbalk (username,bericht) VALUES ('$naam','$bericht')");
    echo "Klik <a href=\"berichtenbalk.php\">hier</a> om je bericht te bekijken.";
    }


else{

    echo "<form name=\"formulier\" method=\"post\" action=\"postbericht.php\">";    
    echo "<b>Naam:</b><br><input type=text name=naam> maximum 15 tekens<br>";  
    echo "<b>Bericht:</b><br><input type=text name=bericht> maximum 50 tekens<br>";    
    echo "<input type=submit value='Verstuur' name=verzend>";    
    echo "</form>";    

}

?>
Gewijzigd op 01/01/1970 01:00:00 door bram
 
- SanThe -

- SanThe -

03/01/2008 22:58:00
Quote Anchor link
Niels. schreef op 03.01.2008 22:45:
htmlspecialchars te vervangen door een mysql_real_escape()

Dan wel mysql_real_escape_string()
 
Bram

bram

03/01/2008 23:01:00
Quote Anchor link
zo beter?
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
If($_SERVER['REQUEST_METHOD'] == "POST") {
$naam = mysql_real_escape_string($_POST['naam']);
$bericht = mysql_real_escape_string($_POST['bericht']);
mysql_connect("prive", "prive", "prive") or die("Verbinding maken met database is mislukt");
mysql_select_db("prive") or die(mysql_error());
mysql_query("INSERT INTO berichtenbalk (username,bericht) VALUES ('$naam','$bericht')");
    echo "Klik <a href=\"berichtenbalk.php\">hier</a> om je bericht te bekijken.";
    }


else{

    echo "<form name=\"formulier\" method=\"post\" action=\"postbericht.php\">";    
    echo "<b>Naam:</b><br><input type=text name=naam> maximum 15 tekens<br>";  
    echo "<b>Bericht:</b><br><input type=text name=bericht> maximum 50 tekens<br>";    
    echo "<input type=submit value='Verstuur' name=verzend>";    
    echo "</form>";    

}

?>


maar ik snap dit nogaltijd niet:
Quote:
Verder lijkt het me ook wel handig dat je de $_POST['naam'] en $_POST['bericht'] controleerd op hun inhoud.


wil iemand een voorbeeld geven?
Gewijzigd op 01/01/1970 01:00:00 door bram
 
Citroen Anoniem Graag

Citroen Anoniem Graag

03/01/2008 23:23:00
Quote Anchor link
Het ontbreekt aan enige controles. Is de query gelukt? Is er wel iets in het forumulier ingevult? Hebben ze teveel in het formulier ingevuld? Lukt het conecteren met de database, lukt het selecteren van een database? etc.

Voorbeeld:

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
65
66
67
68
69
70
71
72
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    if(isset($_POST['naam']) && !empty($_POST['naam']))
    {

        if(isset($_POST['bericht']) && !empty($_POST['bericht']))
        {

            if(strlen($_POST['naam']) < 15)
            {

                if(strlen($_POST['bericht']) < 50)
                {

                    if(mysql_connect('prive', 'prive', 'prive'))
                    {

                        if(mysql_select_db('prive'))
                        {

                            $qBerichtenBalk = "INSERT INTO berichtenbalk (username, bericht) VALUES ('".mysql_real_escape_string($naam)."','".mysql_real_escape_string($bericht)."');";
                            if(mysql_query($qBerichtenBalk))
                            {

                                if(mysql_affected_rows() == 1)
                                {

                                    echo 'Uw bericht is succesvol toegevoegd.';
                                    echo 'Klik <a href="berichtenbalk.php">hier</a> om je bericht te bekijken.';
                                }

                                else
                                {
                                    echo 'Error: #1';
                                }
                            }

                            else
                            {
                                echo 'Error: #2';
                            }
                        }

                        else
                        {
                            echo 'Error: #3';
                        }
                    }

                    else
                    {
                        echo 'Error: #4';
                    }
                }

                else
                {
                    echo 'Error: #5';
                }
            }

            else
            {
                echo 'Error: #6';
            }
        }

        else
        {
            echo 'Error: #7';
        }
    }

    else
    {
        echo 'Error: #8';
    }    
}

else
{
    echo '<form method="post" action="postbericht.php">';    
    echo '<b>Naam:</b><br><input type="text" name="naam" /> maximum 15 tekens<br>';  
    echo '<b>Bericht:</b><br><input type="text" name="bericht" /> maximum 50 tekens<br>';    
    echo '<input type="submit" value="Verstuur" name="verzend" />';    
    echo '</form>';
}

?>

NB: Niet getest. En de foutafhandeling is verre van ideaal.

Nu mag jij proberen het laatste bestand zelf te doen, als het niet lukt kan ik wel helpen.

btw: Ik weet niet wat jij onder veilig verstaat, maar als dat inhoud dat het ook crossbrowser moet zijn, dan moet je het gebruik van de marquee tag stoppen. Er zijn genoeg JavaScriptjes te vinden die het zelfde doen.

Succes

Edit:
Ook is er iets mis met je datamodel. Je hebt een kolom USER_id, die primaire is? met autoincrement?? Dat kan niet, je kan er gewoon id van maken.


Edit:
FF > en < omgedraait..
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
 
Bram

bram

04/01/2008 19:41:00
Quote Anchor link
ik weet niet zeker of ik error #1,2,3 goed heb begrepen. (ik heb er '???' voorgezet bij degene die ik niet zeker heb begrepen.):
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
65
66
67
68
69
70
71
72
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    if(isset($_POST['naam']) && !empty($_POST['naam']))
    {

        if(isset($_POST['bericht']) && !empty($_POST['bericht']))
        {

            if(strlen($_POST['naam']) < 15)
            {

                if(strlen($_POST['bericht']) < 50)
                {

                    if(mysql_connect('prive', 'prive', 'prive'))
                    {

                        if(mysql_select_db('prive'))
                        {

                            $qBerichtenBalk = "INSERT INTO berichtenbalk (username, bericht) VALUES ('".mysql_real_escape_string($naam)."','".mysql_real_escape_string($bericht)."');";
                            if(mysql_query($qBerichtenBalk))
                            {

                                if(mysql_affected_rows() == 1)
                                {

                                    echo 'Uw bericht is succesvol toegevoegd.';
                                    echo 'Klik <a href="berichtenbalk.php">hier</a> om je bericht te bekijken.';
                                }

                                else
                                {
                                    echo '???Niet alle velden zijn correct ingevuld. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.???';
                                }
                            }

                            else
                            {
                                echo '???Er heeft zich een fout opgetreden, je bericht is niet toegevoegd. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.???';
                            }
                        }

                        else
                        {
                            echo '???Het verbinden met de database is mislukt. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                        }
                    }

                    else
                    {
                        echo 'Het verbinden met de database is mislukt. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                    }
                }

                else
                {
                    echo 'Je bericht mag niet meer dan 50 tekens bevatten. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                }
            }

            else
            {
                echo 'Je naam mag niet meer dan 15 tekens bevatten. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
            }
        }

        else
        {
            echo 'Je hebt geen bericht ingevoegd. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
        }
    }

    else
    {
        echo 'Je hebt geen naam ingevoegd. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
    }    
}

else
{
    echo '<form method="post" action="postbericht.php">';    
    echo '<b>Naam:</b><br><input type="text" name="naam" /> maximum 15 tekens<br>';  
    echo '<b>Bericht:</b><br><input type="text" name="bericht" /> maximum 50 tekens<br>';    
    echo '<input type="submit" value="Verstuur" name="verzend" />';    
    echo '</form>';
}

?>
 
Citroen Anoniem Graag

Citroen Anoniem Graag

04/01/2008 19:54:00
Quote Anchor link
Ik zal het ff uitleggen.
Mysql_select_db() geeft een false terug als het selectren mislukt. dmv de if structuur zal hij dus alleen doorgaan als het true is.

Eigelijk staat er dit:
if(mysql_select_db(paramters) == true)

mysql_query():
Quote:
Alleen voor SELECT, SHOW, EXPLAIN en DESCRIBE queries geeft mysql_query() een resource identifier terug of FALSE als de query niet correct werd uitgevoerd
php.net

Als de query dus mislukt krijg je een false. Dus hij checks of de query lukt

Voor mysql_affected_rows() ligt het anders. Deze functies geeft het aantal betrokken rijen terug wat betrokken was bij de laatste query. Dit moet bij een insert query een 1 zijn want we voeren tenstlotte maar 1 rij in.

Tip: Kijk op php.net bij de functies die jij niet snapt. Staat vaak veel uitleggen en veel goede (maar ook minder goede) voorbeelden.
 
Jan Koehoorn

Jan Koehoorn

04/01/2008 20:09:00
Quote Anchor link
Freek schreef op 04.01.2008 19:54:
Voor mysql_affected_rows() ligt het anders. Deze functies geeft het aantal betrokken rijen terug wat betrokken was bij de laatste query. Dit moet bij een insert query een 1 zijn want we voeren tenstlotte maar 1 rij in.

Even precies: mysql_affected_rows geeft het aantal records terug die zijn veranderd door de laatste query. Ze kunnen dus aangemaakt, verwijderd of aangepast zijn. Bij een SELECT query zijn ook rijen betrokken, maar die kun je niet checken met mysql_affected_rows.
 
Bram

bram

07/01/2008 20:21:00
Quote Anchor link
Freek schreef op 03.01.2008 23:23:
Nu mag jij proberen het laatste bestand zelf te doen, als het niet lukt kan ik wel helpen.

Ik heb het geprobeerd, maar er komt een error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

hier is het script:
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(mysql_connect("prive", "prive", "prive"))
{

      if(mysql_select_db('prive'))
      {

                    $data = "Select * FROM berichtenbalk ORDER BY user_ID DESC LIMIT 8";
                    Print "<table border=1 width=100%>";
                    Print "<tr><td width=90%><marquee>";
                     while($info = mysql_fetch_array($data))
                       {
  
                       Print " <b>" . $info['username'] . "</b>: " . $info['bericht'] . " |";
                       }

                    Print "</marquee></td><td width=10%><a href=\"postbericht.php\">voeg bericht toe.</a></td></tr></table><br>";
                    Print "Alleen de laatste 8 berichten worden getoond.";        
      }
                            
      else
      {
                    print "Verbinden met Database is mislukt, klik <a href=\"berichtenbalk2.php\">hier</a> om nog eens te proberen</a>.";
      }
}

else
{
      print "<p>Verbinden met MySQL host is mislukt, klik <a href=\"berichtenbalk2.php\">hier</a> om nog eens te proberen</a>.";
}

?>
 
- SanThe -

- SanThe -

07/01/2008 20:25:00
Quote Anchor link
Je query zal mislukt zijn. Dat controleer je nog niet.

Edit: Sterker nog: Je voert de query niet eens uit.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Joren de Wit

Joren de Wit

07/01/2008 20:26:00
Quote Anchor link
Sterker nog, je voert hem nergens uit met mysql_query(). Dat zul je dus nog even moeten doen met uiteraard de nodige foutafhandeling...
 
Bram

bram

07/01/2008 20:39:00
Quote Anchor link
oeps, domme fout niet gezien XD

ik heb nu alles aangepast wat jullie hebben gezegd, is mijn script nu inorde om online te zetten op mijn website. Of zijn er mss toch nog mankementen?
----------------------------
postbericht.php
----------------------------
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
65
66
67
68
69
70
71
72
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    if(isset($_POST['naam']) && !empty($_POST['naam']))
    {

        if(isset($_POST['bericht']) && !empty($_POST['bericht']))
        {

            if(strlen($_POST['naam']) < 15)
            {

                if(strlen($_POST['bericht']) < 50)
                {

                    if(mysql_connect("prive", "prive", "prive"))
                    {

                        if(mysql_select_db("prive"))
                        {

                            $qBerichtenBalk = "INSERT INTO berichtenbalk (username, bericht) VALUES ('".mysql_real_escape_string($naam)."','".mysql_real_escape_string($bericht)."');";
                            if(mysql_query($qBerichtenBalk))
                            {

                                if(mysql_affected_rows() == 1)
                                {

                                    echo 'Uw bericht is succesvol toegevoegd.';
                                    echo 'Klik <a href="berichtenbalk.php">hier</a> om je bericht te bekijken.';
                                }

                                else
                                {
                                    echo 'Niet alle velden zijn correct ingevuld. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                                }
                            }

                            else
                            {
                                echo 'Er heeft zich een fout opgetreden bij het opslaan van de gegevens, je bericht is niet toegevoegd. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                            }
                        }

                        else
                        {
                            echo 'Het verbinden met de database is mislukt. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                        }
                    }

                    else
                    {
                        echo '<p>Het verbinden de MySQL host is mislukt. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                    }
                }

                else
                {
                    echo 'Je bericht mag niet meer dan 50 tekens bevatten. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
                }
            }

            else
            {
                echo 'Je naam mag niet meer dan 15 tekens bevatten. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
            }
        }

        else
        {
            echo 'Je hebt geen bericht ingevoegd. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
        }
    }

    else
    {
        echo 'Je hebt geen naam ingevoegd. Klik <a href="postbericht.php">hier</a> om opnieuw te proberen.';
    }    
}

else
{
    echo '<form method="post" action="postbericht.php">';    
    echo '<b>Naam:</b><br><input type="text" name="naam" /> maximum 15 tekens<br>';  
    echo '<b>Bericht:</b><br><input type="text" name="bericht" /> maximum 50 tekens<br>';    
    echo '<input type="submit" value="Verstuur" name="verzend" />';    
    echo '</form>';
}

?>


--------------------------
berichtenbalk.php
--------------------------
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
<?php
if(mysql_connect("prive", "prive", "prive"))
{

      if(mysql_select_db("prive"))
      {

                    $query = "Select * FROM berichtenbalk ORDER BY user_ID DESC LIMIT 8";
                    if($data = mysql_query($query))
                    {

                    Print "<table border=1 width=100%>";
                    Print "<tr><td width=90%><marquee>";
                     while($info = mysql_fetch_array($data))
                       {
  
                       Print " <b>" . $info['username'] . "</b>: " . $info['bericht'] . " |";
                       }

                    Print "</marquee></td><td width=10%><a href=\"postbericht.php\">voeg bericht toe.</a></td></tr></table><br>";
                    Print "Alleen de laatste 8 berichten worden getoond.";      
                    }

                    else
                    {
                            print "Er is iets fout gegaan met het halen van de gegevens uit de database, klik <a href=\"berichtenbalk2.php\">hier</a> om nog eens te proberen</a>.";
                    }
      }
                            
      else
      {
                    print "Verbinden met Database is mislukt, klik <a href=\"berichtenbalk2.php\">hier</a> om nog eens te proberen</a>.";
      }
}

else
{
      print "<p>Verbinden met MySQL host is mislukt, klik <a href=\"berichtenbalk2.php\">hier</a> om nog eens te proberen</a>.";
}

?>
 
Joren de Wit

Joren de Wit

07/01/2008 20:41:00
Quote Anchor link
Je gebruikt in je INSERT query $naam en $bericht, maar waar maak je die variabelen aan?
 
- SanThe -

- SanThe -

07/01/2008 20:46:00
Quote Anchor link
Waar komen die $vars op regel 16 eerste script vandaan? Die bestaan niet.
 
Bram

bram

07/01/2008 20:54:00
Quote Anchor link
je bedoelt $naam en $bericht? die komen uit het formulier
 
- SanThe -

- SanThe -

07/01/2008 20:56:00
Quote Anchor link
bram schreef op 07.01.2008 20:54:
je bedoelt $naam en $bericht? die komen uit het formulier

Echt niet.
Dat zijn nog steeds $_POST['naam'] en $_POST['bericht'].
 
Joren de Wit

Joren de Wit

07/01/2008 20:56:00
Quote Anchor link
Oh ja? Waar maak je die aan dan?

Edit:
@SanThe: ah, dat moet je niet verraden ;-)
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 

Pagina: 1 2 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.