Page 1 sur 1

[PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 17:48
par Lalalallal
Bonjour,

je me permet de vous contacter car j'essaye de protéger un site par login/pass via une base de donnée.
Pour cela je me suis basé sur un script réalisé par Didier sur site ASP-PHP.net.

Voici ce qui marche :
+suppression d'un membre
+connexion d'un membre
+modification d'un membre
Voici ce qui ne marche pas :
+ajout d'un membre
+envoie d'un mail : quand je recoit un mail après la demande d'inscription d'un nouveau membre, je ne reçoit pas ce qu'il a rentré mais les données du premier membre que j'ai supprimé (là je ne comprends vraiment pas pourquoi...)

Si vous voulez regarder, ce sera plus parlant : <lien>http://www.delamotte-bouloumie.fr/10/admin.php</lien> (log : Hugues1 pass : 2609881)

Si vous voulez savoir ce qui se passe avec le mail, inscrivez vous sur le site et demandez moi le mail reçu. ^^

Enfin voici les différents codes :

_conn.php
<code>
<?
try
{
$bdd = new PDO('mysql:host=****.amen.fr;dbname=****', '****', '****');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
</code>

_mail.php
<code>
<?
function doMail($msg,$ID) {
try
{
$bdd = new PDO('mysql:host=****.amen.fr;dbname=****', '****', '****');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$n="delamotte-bouloumie.fr";
$n2="Administrateur";
$m="****";
$url="http://".getenv("SERVER_NAME").getenv("SCRIPT_NAME");

$tete = "From: ".$n." <".$m.">\n";
$tete .= "Reply-To: ".$m."\n";
$sujet="Adhesion au site ".$n;

// fiche concernée
$SQL = "SELECT * FROM exo_pass";
if($ID)
$SQL .= " WHERE ID=" . $ID;
else // ou la dernière
$SQL .= " ORDER BY ID DESC LIMIT 1";
echo gettype($bdd);
$result = $bdd->query($SQL);
$val = $result->fetch();
$nT=$val["login"];
$mT=$val["email"];
$result->closeCursor();

// messages
switch($msg) {
case "new":
$body="Demande soumise par :\n\n";
$body.="Login : ".$nT."\n";
$body.="Email : ".$mT."\n";
$body.="\n".$url."\n";
// destinataires
$tete .= "Bcc: ".$m;
$SQL = "SELECT email FROM exo_pass";
$SQL .= " WHERE nivo < 3";
$result = $bdd->query($SQL);
while($val = $result->fetch())
if($val["email"]!="")
$tete .= ",".$val["email"];
$tete .= "\n";
$result->closeCursor();
break;
case "ok":
$body="Votre demande a ete acceptee !!!\n\n";
$body.="Login : ".$nT."\n";
$body.="Passe : ".$val["pass"]."\n";
$body.="Acces : ".$url."\n";
$body.="\nCordialement,\n".$n2."\n".$m."\n";
}
if(getenv("SERVER_NAME")=="localhost")
echo "En local le message ne peut pas partir !...";
else
return mail($nT." <".$mT.">",$sujet,$body,$tete);
}
?>
</code>

_protect.php
<code>
<? // Libellés des niveaux
$nivo=array("WebMaster","Collaborateur","Membre");
// On lit le cookie
$protect=$passe10;
// si vide >> niveau 4
if($protect=="") $protect="4";?>

<center>

<? // si identifié >> lien vers page Admin
if($protect<"4") {
?><A href="admin.php">Page
<? echo $nivo[$protect-1];
// sinon >> Devenir membre
} else {?><A href="admin.php?membre=new"
>Devenir membre<?
} ?></A> -
<A href="page1.php">Page 1</A> -
<A href="page2.php">Page 2</A> -
<A href="page3.php">Page 3</A>
</center><hr>
</code>

admin.php
<code>
<? include("_conn.php");
include("_mail.php");

if(isset($pass))
{
// === DECONNEXION ===
if($pass=="no")
{
setcookie("passe10");
setcookie("passe10id");
}
// === IDENTIFICATION ===
elseif(isset($login))
{
$SQL = "SELECT * FROM exo_pass";
$SQL .= " WHERE login='$login'";
$SQL .= " AND pass='$pass'";
$result = $bdd->query($SQL);
if($val = $result->fetch())
{
// on stocke le niveau/id dans un cookie
setcookie("passe10",$val["nivo"]);
setcookie("passe10id",$val["ID"]);
$result->closeCursor();
}
else
{
$temp = "?membre=new";
$result->closeCursor();
}
}
// on valide le cookie
Header("Location: ".$PHP_SELF.$temp);
}

// === NOUVELLE FICHE ===
elseif(isset($newlogin) && isset($newpass))
{
// Vérifie la non existence du login
$SQL = "SELECT * FROM exo_pass";
$SQL .= " WHERE login = '$newlogin'";
$result = $bdd->query($SQL);
// si login inconnu, ajoute la fiche
if($result->rowCount()==0)
{
$SQL = "INSERT INTO exo_pass(login,pass,nivo)";
$SQL .= " VALUES('$newlogin','$newpass',$newtype)";
$result = $bdd->query($SQL);
// sinon messages d'erreur
}
else
{
echo "<b>Login déjà pris !</b>";
}
}

elseif(isset($newtype))
{
echo "<b>Formulaire incomplet !</b>";
// === INSCRIPTION ===
}

elseif(($login!="") && ($newmail!=""))
{
// Vérifie la non existence du login
$SQL = "SELECT * FROM exo_pass";
$SQL .= " WHERE login = '$login'";
$result = $bdd->query($SQL);
if($result->rowCount()==0)
{
$SQL = "INSERT INTO exo_pass(login,nivo,email)";
$SQL .= " VALUES('$login',4,'$newmail')";
$result = $bdd->query($SQL);
//$result->closeCursor();
$OKinsc=true;
// envoi msg
doMail("new","");
// sinon messages d'erreur
}
else
{
$result->closeCursor();
echo "<b>Choisissez un autre login !</b>";
}

}

include("_protect.php");

if($protect<"3")
{
// === DESTRUCTION ===
if(isset($del))
{
$SQL = "DELETE FROM exo_pass";
$SQL .= " WHERE ID=" . $del;
$result = $bdd->query($SQL);
$result->closeCursor();
// === VALIDATION ===
}

elseif(isset($OK))
{
$SQL = "UPDATE exo_pass SET pass=email";
$SQL .= ",nivo=3 WHERE ID=" . $OK;
$result = $bdd->query($SQL);
$result->closeCursor();
// envoi msg
doMail("ok",$OK);
}
}

// === MODIFICATION ===
if(isset($modlogin) && isset($modpass))
{
$SQL = "UPDATE exo_pass SET";
$SQL .= " login='" . $modlogin;
$SQL .= "',pass='" . $modpass;
$SQL .= "',nivo=" . $modtype;
$SQL .= ",email='" . $modmail;
$SQL .= "' WHERE ID=" . $modid;
$result = $bdd->query($SQL);
$result->closeCursor();
}

// === CONSTRUCTION DE LA PAGE ===

// LIEN DE DECONNEXION
if($protect<"4")
{
?>
<A href="?pass=no">Déconnecter</A><br>
<? // FORMULAIRE D'EDITION DE LA FICHE
if($protect<>"1")
{
$SQL = "SELECT * FROM exo_pass WHERE ID=";
$SQL .= $passe10id;
$result = $bdd->query($SQL);
$val = $result->fetch();
$result->closeCursor();
?>

<form method="post" action="admin.php">
<table bgcolor=#EEEEFF><tr>
<input type="hidden" name="modid"
value="<?echo $val["ID"];?>">
<input type="hidden" name="modlogin"
value="<?echo $val["login"];?>">
<input type="hidden" name="modtype"
value="<?echo $val["nivo"];?>">
<td>Password<br>
<input type="password" name="modpass"
value="<?echo $val["pass"];?>"></td>
<th><b><?echo $val["login"];?></b><br>
<input type="submit" value="Modifier"></th>
</tr><tr><td colspan=2>E-mail<br>
<input size=40 name="modmail"
value="<?echo $val["email"];?>"></td>
</tr></table>
</form>

<? }

// SI NIVEAU 1 OU 2
if($protect<"3") { ?>
<br><table bgcolor=#EEEEFF>
<tr><th colspan=3 nowrap
>Liste des mots de passe</th></tr>

<form method="post" action="admin.php"><tr>
<tr bgcolor=#DDDDEE>
<td>&nbsp;LOGIN&nbsp;</td>
<td>&nbsp;PASSWORD&nbsp;</td>
<th><input type="submit" value="Ajouter"></th>
</tr><tr>
<td><input name="newlogin"></td>
<td><input name="newpass"></td>
<td><select name="newtype">
<? for($i=$protect;$i<sizeof($nivo);$i++) { ?>
<option value="<? echo ($i+1)."\">".$nivo[$i];?>
</option>
<? } ?>
</select></td>
</tr></form>

<? // LISTE DES LOGIN/PASS
$SQL = "SELECT * FROM exo_pass";
$SQL .= " WHERE nivo > " . $protect;
$SQL .= " AND nivo < 4 ORDER BY nivo,login";
$result = $bdd->query($SQL);
while ($val = $result->fetch())
{ ?>
<tr>
<? // Edition/supression si niveau 1
if($protect=="1")
{
?>
<form method="post" action="admin.php">
<input type="hidden" name="modid"
value="<? echo $val["ID"]; ?>">
<input type="hidden" name="modmail"
value="<? echo $val["email"]; ?>">
<td nowrap><input name="modlogin"
value="<? echo $val["login"]; ?>"></td>
<td nowrap><input name="modpass"
value="<? echo $val["pass"]; ?>"></td>
<td><select name="modtype">
<?for($i=1;$i<sizeof($nivo);$i++) { ?>
<option value="<?echo $i+1;?>"
<?if($i+1==$val["nivo"])
echo "SELECTED"; ?>
><?echo $nivo[$i]; ?></option>
<? } ?>
</select></td>
<td><input type="submit" value="OK"></td>
</form>
<td>
<A href="?del=<? echo $val["ID"]; ?>">del</A>
</td>
<? // sinon affichage simple
} else { ?>
<td nowrap><? echo $val["login"]; ?></td>
<td nowrap><? echo $val["pass"]; ?></td>
<td><? echo $nivo[$val["nivo"]-1]; ?></td>
<? }
// Lien pour envoyer le login/pass
if($val["email"]!="") { ?>
<td nowrap><A href="mailto:<?
echo $val["email"];
echo "?subject=Mot de passe";
echo "&body=Login: " . $val["login"];
echo " - Pass: " . $val["pass"];
echo " a entrer sur la page http://";
echo $SERVER_NAME;
echo $SCRIPT_NAME;
?>">SEND Login/Pass</A></td>
<? } ?>
</tr>
<? }
$result->closeCursor();

// LISTE DES MEMBRES EN ATTENTE
?><tr><th colspan=3 nowrap
>Membres en attente</th></tr>
<? $SQL = "SELECT * FROM exo_pass";
$SQL .= " WHERE nivo = 4 ORDER BY login";
$result = $bdd->query($SQL);
while ($val = $result->fetch()) { ?>
<tr>
<td><? echo $val["login"]; ?></td>
<td colspan=2>
<A href="mailto:<? echo $val["email"]; ?>"
><? echo $val["email"]; ?></A></td>
<td><A href="?OK=<? echo $val["ID"]; ?>"
>OK</A></td>
<td><A href="?del=<? echo $val["ID"]; ?>"
>del</A></td>
</tr>
<? } $result->closeCursor();?>

</table>

<? }

}

// sinon si MESSAGE D'INSCRIPTION
elseif($OKinsc) { ?>
<b>Si votre inscription est acceptée </b>
<br>Vous recevrez votre mot de passe par E-mail

<? // FORMULAIRE D'IDENTIFICATION/INSCRIPTION sinon
} else {

if($membre=="new") { ?>
Pour devenir membre, veuillez remplir le formulaire
<? } ?>
<form method="post" action="admin.php">
<table><tr>
<td>Login<br><input name="login"></td>

<?if($membre=="new") { ?>
<td><br>
<input type="Submit" value="Inscription">
</td></tr><tr><td colspan=2>E-mail<br>
<input size=40 name="newmail">
<? } else { ?>
<td>Password<br>
<input type="password" name="pass">
</td><td><br>
<input type="Submit" value="Entrer">
<? } ?>

</td></tr></table>
</form>
<? }

// Déconnexion
?>
</code>

Si quelqu'un pouvait trouver mon problème ce serait vraiment cool car je dois vous l'avouer je suis dépassé...
En tout cas merci d'avoir pris le temps de me lire.

Lalalallal

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 17:52
par lalalallal
Bonjour,

je me permet de vous contacter car j'essaye de protéger un site par login/pass via une base de donnée.
Pour cela je me suis basé sur un script réalisé par Didier sur site ASP-PHP.net.

Voici ce qui marche :
+suppression d'un membre
+connexion d'un membre
+modification d'un membre
Voici ce qui ne marche pas :
+ajout d'un membre
+envoie d'un mail : quand je recoit un mail après la demande d'inscription d'un nouveau membre, je ne reçoit pas ce qu'il a rentré mais les données du premier membre que j'ai supprimé (là je ne comprends vraiment pas pourquoi...)

Si vous voulez regarder, ce sera plus parlant : <lien>http://www.delamotte-bouloumie.fr/10/admin.php</lien> (log : Hugues1 pass : 2609881)

Si vous voulez savoir ce qui se passe avec le mail, inscrivez vous sur le site et demandez moi le mail reçu. ^^

Enfin voici les différents codes :

_conn.php

Code : Tout sélectionner

<? try { $bdd = new PDO('mysql:host=****.amen.fr;dbname=****', '****', '****'); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?>
_mail.php

Code : Tout sélectionner

<? function doMail($msg,$ID) { try { $bdd = new PDO('mysql:host=****.amen.fr;dbname=****', '****', '****'); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $n="delamotte-bouloumie.fr"; $n2="Administrateur"; $m="****"; $url="http://".getenv("SERVER_NAME").getenv("SCRIPT_NAME"); $tete = "From: ".$n." <".$m.">\n"; $tete .= "Reply-To: ".$m."\n"; $sujet="Adhesion au site ".$n; // fiche concernée $SQL = "SELECT * FROM exo_pass"; if($ID) $SQL .= " WHERE ID=" . $ID; else // ou la dernière $SQL .= " ORDER BY ID DESC LIMIT 1"; echo gettype($bdd); $result = $bdd->query($SQL); $val = $result->fetch(); $nT=$val["login"]; $mT=$val["email"]; $result->closeCursor(); // messages switch($msg) { case "new": $body="Demande soumise par :\n\n"; $body.="Login : ".$nT."\n"; $body.="Email : ".$mT."\n"; $body.="\n".$url."\n"; // destinataires $tete .= "Bcc: ".$m; $SQL = "SELECT email FROM exo_pass"; $SQL .= " WHERE nivo < 3"; $result = $bdd->query($SQL); while($val = $result->fetch()) if($val["email"]!="") $tete .= ",".$val["email"]; $tete .= "\n"; $result->closeCursor(); break; case "ok": $body="Votre demande a ete acceptee !!!\n\n"; $body.="Login : ".$nT."\n"; $body.="Passe : ".$val["pass"]."\n"; $body.="Acces : ".$url."\n"; $body.="\nCordialement,\n".$n2."\n".$m."\n"; } if(getenv("SERVER_NAME")=="localhost") echo "En local le message ne peut pas partir !..."; else return mail($nT." <".$mT.">",$sujet,$body,$tete); } ?>
_protect.php

Code : Tout sélectionner

<? // Libellés des niveaux $nivo=array("WebMaster","Collaborateur","Membre"); // On lit le cookie $protect=$passe10; // si vide >> niveau 4 if($protect=="") $protect="4";?> <center> <? // si identifié >> lien vers page Admin if($protect<"4") { ?><A href="admin.php">Page <? echo $nivo[$protect-1]; // sinon >> Devenir membre } else {?><A href="admin.php?membre=new" >Devenir membre<? } ?></A> - <A href="page1.php">Page 1</A> - <A href="page2.php">Page 2</A> - <A href="page3.php">Page 3</A> </center><hr>
admin.php

Code : Tout sélectionner

<? include("_conn.php"); include("_mail.php"); if(isset($pass)) { // === DECONNEXION === if($pass=="no") { setcookie("passe10"); setcookie("passe10id"); } // === IDENTIFICATION === elseif(isset($login)) { $SQL = "SELECT * FROM exo_pass"; $SQL .= " WHERE login='$login'"; $SQL .= " AND pass='$pass'"; $result = $bdd->query($SQL); if($val = $result->fetch()) { // on stocke le niveau/id dans un cookie setcookie("passe10",$val["nivo"]); setcookie("passe10id",$val["ID"]); $result->closeCursor(); } else { $temp = "?membre=new"; $result->closeCursor(); } } // on valide le cookie Header("Location: ".$PHP_SELF.$temp); } // === NOUVELLE FICHE === elseif(isset($newlogin) && isset($newpass)) { // Vérifie la non existence du login $SQL = "SELECT * FROM exo_pass"; $SQL .= " WHERE login = '$newlogin'"; $result = $bdd->query($SQL); // si login inconnu, ajoute la fiche if($result->rowCount()==0) { $SQL = "INSERT INTO exo_pass(login,pass,nivo)"; $SQL .= " VALUES('$newlogin','$newpass',$newtype)"; $result = $bdd->query($SQL); // sinon messages d'erreur } else { echo "<b>Login déjà pris !</b>"; } } elseif(isset($newtype)) { echo "<b>Formulaire incomplet !</b>"; // === INSCRIPTION === } elseif(($login!="") && ($newmail!="")) { // Vérifie la non existence du login $SQL = "SELECT * FROM exo_pass"; $SQL .= " WHERE login = '$login'"; $result = $bdd->query($SQL); if($result->rowCount()==0) { $SQL = "INSERT INTO exo_pass(login,nivo,email)"; $SQL .= " VALUES('$login',4,'$newmail')"; $result = $bdd->query($SQL); //$result->closeCursor(); $OKinsc=true; // envoi msg doMail("new",""); // sinon messages d'erreur } else { $result->closeCursor(); echo "<b>Choisissez un autre login !</b>"; } } include("_protect.php"); if($protect<"3") { // === DESTRUCTION === if(isset($del)) { $SQL = "DELETE FROM exo_pass"; $SQL .= " WHERE ID=" . $del; $result = $bdd->query($SQL); $result->closeCursor(); // === VALIDATION === } elseif(isset($OK)) { $SQL = "UPDATE exo_pass SET pass=email"; $SQL .= ",nivo=3 WHERE ID=" . $OK; $result = $bdd->query($SQL); $result->closeCursor(); // envoi msg doMail("ok",$OK); } } // === MODIFICATION === if(isset($modlogin) && isset($modpass)) { $SQL = "UPDATE exo_pass SET"; $SQL .= " login='" . $modlogin; $SQL .= "',pass='" . $modpass; $SQL .= "',nivo=" . $modtype; $SQL .= ",email='" . $modmail; $SQL .= "' WHERE ID=" . $modid; $result = $bdd->query($SQL); $result->closeCursor(); } // === CONSTRUCTION DE LA PAGE === // LIEN DE DECONNEXION if($protect<"4") { ?> <A href="?pass=no">Déconnecter</A><br> <? // FORMULAIRE D'EDITION DE LA FICHE if($protect<>"1") { $SQL = "SELECT * FROM exo_pass WHERE ID="; $SQL .= $passe10id; $result = $bdd->query($SQL); $val = $result->fetch(); $result->closeCursor(); ?> <form method="post" action="admin.php"> <table bgcolor=#EEEEFF><tr> <input type="hidden" name="modid" value="<?echo $val["ID"];?>"> <input type="hidden" name="modlogin" value="<?echo $val["login"];?>"> <input type="hidden" name="modtype" value="<?echo $val["nivo"];?>"> <td>Password<br> <input type="password" name="modpass" value="<?echo $val["pass"];?>"></td> <th><b><?echo $val["login"];?></b><br> <input type="submit" value="Modifier"></th> </tr><tr><td colspan=2>E-mail<br> <input size=40 name="modmail" value="<?echo $val["email"];?>"></td> </tr></table> </form> <? } // SI NIVEAU 1 OU 2 if($protect<"3") { ?> <br><table bgcolor=#EEEEFF> <tr><th colspan=3 nowrap >Liste des mots de passe</th></tr> <form method="post" action="admin.php"><tr> <tr bgcolor=#DDDDEE> <td>&nbsp;LOGIN&nbsp;</td> <td>&nbsp;PASSWORD&nbsp;</td> <th><input type="submit" value="Ajouter"></th> </tr><tr> <td><input name="newlogin"></td> <td><input name="newpass"></td> <td><select name="newtype"> <? for($i=$protect;$i<sizeof($nivo);$i++) { ?> <option value="<? echo ($i+1)."\">".$nivo[$i];?> </option> <? } ?> </select></td> </tr></form> <? // LISTE DES LOGIN/PASS $SQL = "SELECT * FROM exo_pass"; $SQL .= " WHERE nivo > " . $protect; $SQL .= " AND nivo < 4 ORDER BY nivo,login"; $result = $bdd->query($SQL); while ($val = $result->fetch()) { ?> <tr> <? // Edition/supression si niveau 1 if($protect=="1") { ?> <form method="post" action="admin.php"> <input type="hidden" name="modid" value="<? echo $val["ID"]; ?>"> <input type="hidden" name="modmail" value="<? echo $val["email"]; ?>"> <td nowrap><input name="modlogin" value="<? echo $val["login"]; ?>"></td> <td nowrap><input name="modpass" value="<? echo $val["pass"]; ?>"></td> <td><select name="modtype"> <?for($i=1;$i<sizeof($nivo);$i++) { ?> <option value="<?echo $i+1;?>" <?if($i+1==$val["nivo"]) echo "SELECTED"; ?> ><?echo $nivo[$i]; ?></option> <? } ?> </select></td> <td><input type="submit" value="OK"></td> </form> <td> <A href="?del=<? echo $val["ID"]; ?>">del</A> </td> <? // sinon affichage simple } else { ?> <td nowrap><? echo $val["login"]; ?></td> <td nowrap><? echo $val["pass"]; ?></td> <td><? echo $nivo[$val["nivo"]-1]; ?></td> <? } // Lien pour envoyer le login/pass if($val["email"]!="") { ?> <td nowrap><A href="mailto:<? echo $val["email"]; echo "?subject=Mot de passe"; echo "&body=Login: " . $val["login"]; echo " - Pass: " . $val["pass"]; echo " a entrer sur la page http://"; echo $SERVER_NAME; echo $SCRIPT_NAME; ?>">SEND Login/Pass</A></td> <? } ?> </tr> <? } $result->closeCursor(); // LISTE DES MEMBRES EN ATTENTE ?><tr><th colspan=3 nowrap >Membres en attente</th></tr> <? $SQL = "SELECT * FROM exo_pass"; $SQL .= " WHERE nivo = 4 ORDER BY login"; $result = $bdd->query($SQL); while ($val = $result->fetch()) { ?> <tr> <td><? echo $val["login"]; ?></td> <td colspan=2> <A href="mailto:<? echo $val["email"]; ?>" ><? echo $val["email"]; ?></A></td> <td><A href="?OK=<? echo $val["ID"]; ?>" >OK</A></td> <td><A href="?del=<? echo $val["ID"]; ?>" >del</A></td> </tr> <? } $result->closeCursor();?> </table> <? } } // sinon si MESSAGE D'INSCRIPTION elseif($OKinsc) { ?> <b>Si votre inscription est acceptée </b> <br>Vous recevrez votre mot de passe par E-mail <? // FORMULAIRE D'IDENTIFICATION/INSCRIPTION sinon } else { if($membre=="new") { ?> Pour devenir membre, veuillez remplir le formulaire <? } ?> <form method="post" action="admin.php"> <table><tr> <td>Login<br><input name="login"></td> <?if($membre=="new") { ?> <td><br> <input type="Submit" value="Inscription"> </td></tr><tr><td colspan=2>E-mail<br> <input size=40 name="newmail"> <? } else { ?> <td>Password<br> <input type="password" name="pass"> </td><td><br> <input type="Submit" value="Entrer"> <? } ?> </td></tr></table> </form> <? } // Déconnexion ?>
Si quelqu'un pouvait trouver mon problème ce serait vraiment cool car je dois vous l'avouer je suis dépassé...
En tout cas merci d'avoir pris le temps de me lire.

Lalalallal

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 17:57
par stealth35
met ton niveau d'erreur au max pour php, et active les erreurs pour PDO (1er comm)

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 18:21
par lalalallal
Merci de me venir en aide...

je viens de modifier _conn.php :

Code : Tout sélectionner

<? try { $bdd = new PDO('mysql:****.amen.fr;dbname=****', '****', '****'); $bdd->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?>
Dit moi si c'est bien cela que je devais faire...

En tout cas j'ai une erreur qui apparait dés la connexion ^^
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2050 ' in /htdocs/public/www/10/admin.php:248 Stack trace: #0 /htdocs/public/www/10/admin.php(248): PDOStatement->fetch() #1 {main} thrown in /htdocs/public/www/10/admin.php on line 248
Merci.

Lalalallal

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 18:22
par stealth35
Merci de me venir en aide...

je viens de modifier _conn.php :

Code : Tout sélectionner

<? try { $bdd = new PDO('mysql:****.amen.fr;dbname=****', '****', '****'); $bdd->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?>

Dit moi si c'est bien cela que je devais faire...

En tout cas j'ai une erreur qui apparait dés la connexion ^^

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2050 ' in /htdocs/public/www/10/admin.php:248 Stack trace: #0 /htdocs/public/www/10/admin.php(248): PDOStatement->fetch() #1 {main} thrown in /htdocs/public/www/10/admin.php on line 248

Merci.

Lalalallal
pourquoi avoir mis "exception" ?

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 18:27
par lalalallal
Je ne sais pas ^^ enfaite je débute dans ces langages et je suis un peu noyé...

tu veux que je mette lequel ?

Merci.

Lalalallal

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 18:29
par stealth35
Je ne sais pas ^^ enfaite je débute dans ces langages et je suis un peu noyé...

tu veux que je mette lequel ?

Merci.

Lalalallal
juste le même que dans le comm, je vois pas pourquoi t'as mis autre chose :wink:

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 18:30
par lalalallal
Effectivement, je ne sais pas moi non plus...

C'est corrigé. ^^

Merci de me supporter.

Lalalallal.

Re: [PHP - PDO] Problème accès sécurisé à un site via bdd

Posté : 12 sept. 2010, 18:33
par stealth35
en tout cas y'avais quand même un soucis ligne 248