sp login script maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerhard timmerman

gerhard timmerman

23/03/2012 13:53:37
Quote Anchor link
ik ben bezig met een login script maken maar hier loopt mijn sript op moment op vast kan iemand me vertellen wat heir fout staat
$db = new PDO('mssql:host=localhost\snelstart;dbname=SluisWWW','test','*******');
if(isset($_POST["username"]) && isset($_POST["wachtwoord"])) {
$username = $_POST["username"];
$wachtwoord = $_POST["wachtwoord"];
$sql = $db->prepare("EXECUTE spMagInvoeren ?");
$sql->bindparam(1,:Usernaam, $username, PDO::PARAM_STR|PDO::PARAM_INPUT);
$sql->bindparam(2,:Wachtwoord, $wachtwoord, PDO::PARAM_STR|PDO::PARAM_INPUT);
$sql->bindparam(3,:RelatieNummer, $nummer, PDO::PARAM_STR|PDO::PARAM_OUTPUT);

print $nummer
$sql->execute();
}
echo fout
 
PHP hulp

PHP hulp

20/04/2024 14:52:44
 
- Ariën  -
Beheerder

- Ariën -

23/03/2012 13:56:00
Quote Anchor link
sript -> script
heir -> hier
en er missen interpuncties.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo fout

ik mis quotes?
Gewijzigd op 23/03/2012 13:57:11 door - Ariën -
 
Gerhard timmerman

gerhard timmerman

23/03/2012 14:12:54
Quote Anchor link
ja sorry voor me nederlands is niet zo best. maar het gaat me om het eerste stuk vooral. die interpuncties bij echo daar gaat het om dit moment niet echt om.
 
Jeroen VD

Jeroen VD

23/03/2012 14:25:25
Quote Anchor link
jawel, het kan goed zijn dat de boel wordt stilgelegd juist omdat de interpunctie daar mist. zet dit eens bovenin je pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    ini_set('display_errors', 1); // 0 = uit, 1 = aan
    error_reporting(E_ALL);
?>
 
Gerhard timmerman

gerhard timmerman

23/03/2012 14:59:29
Quote Anchor link
dan krijg ik dit Notice: Use of undefined constant fout - assumed 'fout' in C:\inetpub\wwwroot\login\check.php on line 21
fout en op regel 21 staat dit : ?>
 
- Ariën  -
Beheerder

- Ariën -

23/03/2012 15:01:26
Quote Anchor link
En 5 regels daarvoor?
 
Erwin H

Erwin H

23/03/2012 15:14:32
Quote Anchor link
Leg eens uit wat je hiermee probeert te doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$sql
= $db->prepare("EXECUTE spMagInvoeren ?");
$sql->bindparam(1,:Usernaam, $username, PDO::PARAM_STR|PDO::PARAM_INPUT);
$sql->bindparam(2,:Wachtwoord, $wachtwoord, PDO::PARAM_STR|PDO::PARAM_INPUT);
$sql->bindparam(3,:RelatieNummer, $nummer, PDO::PARAM_STR|PDO::PARAM_OUTPUT);
?>
 
Gerhard timmerman

gerhard timmerman

23/03/2012 15:45:50
Quote Anchor link
dat is weer de stored procedure hij staat daar trouwens ook fout moet @ zijn inplaats van :. maar ik zal even de stored procedure posten

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
USE [SluisWWW]
GO
/****** Object:  StoredProcedure [dbo].[spMagInvoeren]    Script Date: 03/23/2012 13:54:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        
-- Create date: 23 Maart 2012
-- Description:    test login
-- =============================================
ALTER PROCEDURE [dbo].[spMagInvoeren]
    -- Add the parameters for the stored procedure here
    @Usernaam nVarchar(20) ,
    @Wachtwoord nvarchar(20),
    @IPAdres nvarchar(20),
    @Computer nvarchar (20),
    @SessieID nvarchar(50),
    @PogingenOver integer  OUTPUT,
    @RelatieNummer integer OUTPUT
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    
    
    DECLARE @Success INT
    SET NOCOUNT ON;
    SET @Success = (SELECT COUNT(*)
        FROM contactpersonen
        WHERE (username = @Usernaam AND wachtwoord = @Wachtwoord))
    IF @Success = 1
    BEGIN
       SET @RelatieNummer = (SELECT TOP 1 relatie_id FROM [SluisWWW].[dbo].[contactpersonen]
                             WHERE (username = @Usernaam AND wachtwoord = @Wachtwoord))
      
    END
    ELSE SET @RelatieNummer = -1
    INSERT INTO [SluisWWW].[dbo].[Logins] (Login,Wachtwoord,RelatieID,IP,Computer,SessieID)
                VALUES (@Usernaam,@Wachtwoord,@RelatieNummer,@IPAdres,@Computer,@SessieID)
 
    
  
    

  
    -- Insert statements for procedure here
END
Gewijzigd op 23/03/2012 15:46:12 door gerhard timmerman
 
Erwin H

Erwin H

23/03/2012 15:55:17
Quote Anchor link
Zo'n idee had ik al, maar dan zitten er volgens mij een paar fouten in de php calls.
In de eerste plaats definieer je maar een parameter (1 ?), maar plaats je er drie. Twee voor input, een voor output. Nu moet ik eerlijk zeggen dat ik nog nooit op deze manier een stored procedure heb aangeroepen, maar ik heb het idee dat je tenminste twee parameters (2x ?) zou moeten declareren.

Daarnaast, in de parameter bindings geef je 4 waardes mee:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
->bindparam(1,:Usernaam, $username, PDO::PARAM_STR|PDO::PARAM_INPUT);
?>

Volgens mij moeten dat er maar drie zijn. Je geeft namelijk een parameter nummer mee (1) en een parameter naam (:username). Het is of het nummer, of de naam. En als je de naam meegeeft, dan is het een string, dus dat moet dan tussen quotes.
 
Gerhard timmerman

gerhard timmerman

23/03/2012 16:06:52
Quote Anchor link
ik snap je nu niet helemaal jij zou het dus zo gaan maken ak het op jou manier snap

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
        $sql = $db->prepare("EXECUTE spMagInvoeren ?");
        $sql->bindparam(@Usernaam, $username, PDO::PARAM_STR|PDO::PARAM_INPUT);
        $sql->bindparam(@Wachtwoord, $wachtwoord, PDO::PARAM_STR|PDO::PARAM_INPUT);
Gewijzigd op 23/03/2012 16:07:13 door gerhard timmerman
 
- Pepijn  -

- Pepijn -

23/03/2012 16:58:43
Quote Anchor link
Ik ben geen Pdo er maar
$db = new PDO('mssql:host=localhost\snelstart;
moet dat niet

$db = new PDO('mysql:host=localhost\snelstart;
 
Jeroen VD

Jeroen VD

23/03/2012 17:00:34
Quote Anchor link
pepijn, google dit soort dingen eerst als je het niet weet, mssql is een sql server ontwikkelt door microsoft
 
- Pepijn  -

- Pepijn -

23/03/2012 17:01:59
Quote Anchor link
owh ik dacht al maar ok

Toevoeging op 23/03/2012 17:02:21:

weet ik dat ook weer
 
Erwin H

Erwin H

23/03/2012 17:11:32
Quote Anchor link
Gerhard timmerman op 23/03/2012 16:06:52:
ik snap je nu niet helemaal jij zou het dus zo gaan maken ak het op jou manier snap

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
        $sql = $db->prepare("EXECUTE spMagInvoeren ?");
        $sql->bindparam(@Usernaam, $username, PDO::PARAM_STR|PDO::PARAM_INPUT);
        $sql->bindparam(@Wachtwoord, $wachtwoord, PDO::PARAM_STR|PDO::PARAM_INPUT);

Nee. Ofwel je gebruikt een integer om de parameter aan te duiden, of de naam, maar dan is het een string:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
//of met een integer:
$sql->bindparam(1, $username, PDO::PARAM_STR|PDO::PARAM_INPUT);
//of als string:
$sql->bindparam(':username', $username, PDO::PARAM_STR|PDO::PARAM_INPUT);
?>

Alleen in dit geval kan de laatste manier denk ik niet, want je hebt in je query geen parameter bij naam opgenomen, dus kan je hem ook niet op naam binden.
Blijft nog staan dat je maar 1 vraagteken hebt en twee parameters wil binden. Dat gaat volgens mij ook niet werken.
 



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.