Probleem met mysq(li)_real_escape_string

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nkamp Kamp van de

nkamp Kamp van de

14/08/2012 21:26:56
Quote Anchor link
Ik heb de tutorial van Niels Kievit genomen en aangepast.
Dit werkt keurig zoals ik nu wil. Dus dacht ik 'peace of cake' live brengen, echter nu werkt het niet meer. Nu zie ik wel topics met mysql_real_escape_string werkt niet.

Van Niels werkt met real_escape_string. Ik heb het geprobeerd met:
- real_escape_string
- mysql_real_escape_string
- mysqli_real_escape_string

Dit is de code:
config:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
define('MYSQL_SERVER',         'localhost');
define('MYSQL_GEBRUIKERSNAAM', 'xxxx');
define('MYSQL_WACHTWOORD',     'xxxxxxxx');
define('MYSQL_DATABASENAAM',   'zzz');

$Mysqli = new mysqli(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD, MYSQL_DATABASENAAM);
    
if(mysqli_connect_errno())
{

    echo 'Fout bij verbinding: '.$Mysqli->error;

}


En het stukje code waar het mis gaat (via echo)
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
session_start ();

error_reporting(E_ALL);
ini_set('display_errors', '1');

include_once ('../include/config.php');

$Query_select = "
        SELECT *,
        date_format (datum, '%d-%m-%Y') AS member_since
        FROM members
                WHERE email = '" .mysqli_real_escape_string ($Mysqli, $_POST['email']) . "'
        AND wachtwoord = '" .mysqli_real_escape_string ($Mysqli, sha1 ($_POST['email'] . $_POST['wachtwoord']) ). "'";

if ($Result = $Mysqli->query ($Query_select)) {
  echo '<br/>affected rows: '.$Mysqli->affected_rows;
  etc.


Alternatief - orgineel van Niels zijn tutorial:
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
session_start ();

error_reporting(E_ALL);
ini_set('display_errors', '1');

include_once ('../include/config.php');

$Query_select = "
        SELECT *,
        date_format (datum, '%d-%m-%Y') AS member_since
        FROM members
                WHERE email = '" .$Mysqli->real_escape_string ($_POST['email']) . "'
        AND wachtwoord = '" .$Mysqli->real_escape_string (sha1 ($_POST['email'] . $_POST['wachtwoord']) ). "'";

if ($Result = $Mysqli->query ($Query_select)) {
  echo '<br/>affected rows: '.$Mysqli->affected_rows;
  etc.


Op mijn ontwikkel localhost(XAMPP) is in beide situatie's het resultaat van affected rows 1.
Op de live versie blijft de pagina gewoon wit. Pas als ik echo statements bovenin plaats, dan gebeurd er wat maar als ik een echo statement boven het if statement plaats, gebeurd echter niets meer.

De site wordt gehost bij hosting2go, en php5.3.

Heeft iemand een idee wat hier aan de hand is? Of kan het ook nog te maken hebben dat ik op mijn localhost MySql 5 gebruik en op de live omgeving MySql 4.x?
Gewijzigd op 14/08/2012 21:52:33 door Nkamp Kamp van de
 
PHP hulp

PHP hulp

22/12/2024 09:01:34
 
Erwin H

Erwin H

14/08/2012 21:31:04
Quote Anchor link
... verkeerde onderwerp
Gewijzigd op 14/08/2012 21:31:34 door Erwin H
 
Nkamp Kamp van de

nkamp Kamp van de

14/08/2012 21:34:53
Quote Anchor link
Als ik de verkeerde functie zou gebruiken zou het volgens mij ook niet moeten werken op mijn localhost!, toch? En op mijn localhost wordt netjes het aantal rows gereturned nl. 1
 
- SanThe -

- SanThe -

14/08/2012 22:18:11
Quote Anchor link
mysql_affected_rows()
Werkt bij INSERT, UPDATE, REPLACE or DELETE

mysql_num_rows()
Werkt bij SELECT or SHOW
 
Nkamp Kamp van de

nkamp Kamp van de

14/08/2012 22:57:01
Quote Anchor link
Ik ben er achter want opeens dacht ik wat is nu nog verschillend en idd. MySQL. Ik heb een nieuwe database aangemaakt van MySQL 5 en nu werkt het!! Ik had eerder verwacht dat het met PHP te maken had en niet zozeer met de database versie.
 



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.