Marche en local, mais pas en ligne ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Marche en local, mais pas en ligne ?

par Zurg » 14 avr. 2005, 13:34

Ok...

Merci pour tout, :D

et très certainement à bientôt :wink:

par flitox » 14 avr. 2005, 13:10

cnn.php :
<?php
$hostname_cnn = "monserveurmysql";
$database_cnn = "mabase";
$username_cnn = "monlogin_";
$password_cnn = "monpass";
?>
connexion à la base :
mysql_pconnect($hostname_cnn,$username_cnn,$password_cnn) or die("Impossible de se connecter");
mysql_select_db($database_cnn) or die("Impossible de se connecter à la base de données");
Tout bêtement ;)

par Zurg » 14 avr. 2005, 13:06

Est-ce qu'il ne fallait pas le préciser dans le
$cnn= mysql_pconnect($hostname_cnn, $username_cnn, $password_cnn) or die(mysql_error()); ?

et faire un truc du genre
$cnn= mysql_pconnect($hostname_cnn, $database_cnn, $username_cnn, $password_cnn) or die(mysql_error());
:?:

par flitox » 14 avr. 2005, 12:58

Pouquoi faut-il encore préciser la base à utiliser. Mon cnn.php n'a-t-il pas fonctionné?
Non, tu utilises juste la variable qui stocke le nom de ta base dans cnn.php ce qui donne un code dans ce genre :
mysql_db_query($variable_nom_base,$marequete);

par Zurg » 14 avr. 2005, 12:51

Salut tout le monde,

ça y'est, j'ai enfin trouvé le problème !! Youpi, \:D/ (il en aura fallu du temps...) m'enfin, mieux vaut tard que jamais.

En fait, merci @ ouckileaou (et aux autres aussi !) qui m'a mis sur la voie, il n'y avait pas de base sélectionnée, donc c'était normal.
(Pb résolu par un mysql_db_query("mabase",$marequete) )

Mais la question qui me Hante (bien souffler le H...) est la suivante :
j'avais fait une connexion à ma base via un petit fichier (cnn.php), et au début de mon script, j'avais fait un include (le code doit être un peu plus haut). Pouquoi faut-il encore préciser la base à utiliser. Mon cnn.php n'a-t-il pas fonctionné?

pour info, voici le code du cnn.php
<?php
$hostname_cnn = "monserveurmysql";
$database_cnn = "mabase";
$username_cnn = "monlogin_";
$password_cnn = "monpass";
$cnn = mysql_pconnect($hostname_cnn, $username_cnn, $password_cnn) or die(mysql_error());
?>
En attendant vos réponse avec curiosité...
(je mettrai résolu après vous avoir lu...)

Merci encore !! :D

par Zurg » 13 avr. 2005, 15:12

Non, j'ai créé strictement les même tables, j'ai déjà vérifié tout ça... les deux bases sont identiques, je n'y comprends rien du tout...snif...

J'arrive pas à trouver pourquoi en local ça marche, et pas en ligne.

par ouckileou » 11 avr. 2005, 19:02

il y a aussi la Bdd qui change

la requête seule marche ?

tu n'aurais pas par exemple en local un champ 'mail' correct, et dans ta base en ligne ce champ nommé cette fois 'email' par exemple...?

par Zurg » 11 avr. 2005, 17:23

Bonjour à tous !

Désolé pour le délai un peu long...merci pour vos réponses...

@slipndi : la connexion marche puisque je peux ajouter une adresse via mon formulaire, j'utilise le même fichier cnn.php...

@flitox : j'ai essayé avec f (mysql_num_rows($trouve) !== 0) et f (mysql_num_rows($trouve) != 0), mais ça ne change rien, apparemment, ce qui pose problème c'est le mysql_num_rows...

@ImBrOgLiO : merci, mais ça ne change rien.

Franchement, je vois pas...à part la connexion, rien ne change entre le local et le distant non?

par slipndi » 07 avr. 2005, 20:12

Franchement jpense que la meilleur méthode pour évité ces petits soucis c'est de mettre des test de connection a la base de donnée au moin lors de la mise en ligne du site ca prend pas beaucoup de temps de rajouté un petit truc puis ca te permetera d'avoir une vision du souci :)

[/code]

par ImBrOgLiO » 07 avr. 2005, 20:06

@flitox...Je pense que tu as entièrement raison.

par flitox » 07 avr. 2005, 18:30

Essaie:
if (mysql_num_rows($trouve) !== 0)
C'est moi qui lui avait changé ce code là et le != marche très bien sur le net. Je ne suis pas sûr que pour exprimer un "différent" il y ait besoin de 2 = mais peut-être que je me trompe...

par ImBrOgLiO » 07 avr. 2005, 18:28

Essaie:
if (mysql_num_rows($trouve) !== 0)

par flitox » 07 avr. 2005, 18:26

Tu as bien changé les paramètres de connexion à ta bdd dans ton fichier cnn.php?

Marche en local, mais pas en ligne ?

par Zurg » 07 avr. 2005, 17:39

Re-bonjour tout le monde,

voici mon problème:
suite aux divers conseils que j'avais obtenu pour tester la présence d'une adresse mail dans une table, j'avais fait ce script (inscription à une newsletter) qui marchait très bien en local.
<?php 
			include("Connections/distant/cnn.php");
			$mail=$_POST['mail'];
			$type=$_POST['type'];
			$reponse=$_POST['reponse'];
			// tests si les champs sont remplis correctement
			if (empty($mail)) {
				print("Formulaire incomplet : veuillez saisir votre adresse mail<br> <a href=\"javascript:history.go(-1)\">Retour au formulaire</a><br>");
				exit;
			}
			if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $mail))) 
			{
				echo ("L'adresse est invalide, veuillez re-saisir votre adresse, svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
				exit;
			}
			if (empty($type)) {
				print("Formulaire incomplet : veuillez cocher une case correspondant à votre type (ex : élève...), svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
				exit;
			}
			if (empty($reponse)) {
				print("Formulaire incomplet : veuillez cocher la case 'oui' ou 'non' svp. <br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
				exit;
				}
			// fin des tests
			
			// Vérification du mail pour éviter les doublons			
			$requete = "SELECT * FROM abonne WHERE mail='".$mail."'";
			$trouve=mysql_query($requete);
			if (mysql_num_rows($trouve) != 0)
				{
					echo "Votre adresse est déjà présente dans la base, merci de votre intérêt et à très bientôt surmonsite.com !<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>";
					exit;
				}
				
			// si mail non présent
			// Ajoute la nouvelle fiche
			$query = "INSERT INTO abonne (mail, type, boutik)";
			$query .= "VALUES('$mail','$type','$reponse')"; 
			$result = mysql_query($query);
			print("Les informations suivantes ont bien été enregistrées :<br>");
			print("<b>Adresse mail : </b>".$mail."<br>"."<b>Catégorie :</b> ".$type."<br>"."<b>Voulez-vous recevoir des informations su la boutique? </b>".$reponse."<br>");
			print("<br>");
			print("Merci, <br>");
			print("vous recevrez prochainement des informations sur toutes les activités, les évènements etc...<br>");
			print("A bientôt !<br>");
			mysql_close();
		?>
Sauf que, en ligne, j'ai une erreur du type ligne 46 (correspond au if (mysql_num_rows..)
mysql_num_rows(): supplied argument is not a valid MySQL result resource in /web/Xf/Xo/Xl/public/www/news_ok.php on line 46
Quelqu'un sait-il pourquoi ?

J'avoue que je galère pas mal, je cherche dans le manuel de reférence de mysql, mais ça ne m'aide pas beaucoup...

Pliz Help !!