Exécuter une page php sans l'afficher

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 : Exécuter une page php sans l'afficher

par Invité » 20 juin 2005, 16:48

Si je peux me permettre une petite critique, il vaut mieux développer un truc clean dès maintenant plutôt que de continuer à bidouiller des fichiers et de galérer à chaque évolution
Tu peux te permettre, en plus je suis tout à fait d'accord avec toi ;)
Mais bon je voulais aller vite so ... :lol:

Mais je prend mon courage à deux mains et je me lance dans du 'codage clean' 8)

Merci !!!

par zeus » 20 juin 2005, 16:12

php.net mais euh c'est en anglais :( :-k
Quand tu vas sur la description des fonctions, tu peut la mettre en francais
En fait, il me faut juste le code pour ouvrir une page web (php ou non, ca j'en fait mon affaire) à chaque fois que je suis dans la boucle, tout en restant dans le script puisque la boucle n'est pas finie. Tant pis si ca m'ouvre X pages en plus de la 1ere, ca ce n'est pas grave tant que ca marche
Ce que je pourrais te conseiller, c'est de rediriger vers ton 1er script

header("Location: statuser.php?uid=1");


Puis dans cette page de rediriger vers la seconde, ...

Mais c'est un peu brouillon
Seulement, pour pouvoir exploiter pleinement ces infos, il faut qu'elles soient calculées pour chaque membre, donc que le fichier soit généré pour chaque uid. Ce n'est sans doute pas très propre, une fonction serait plus adéquate sans doute mais c'est comme ca que je souhaite procéder
Si je peux me permettre une petite critique, il vaut mieux développer un truc clean dès maintenant plutôt que de continuer à bidouiller des fichiers et de galérer à chaque évolution

par pcserba » 20 juin 2005, 15:35

tu peux pas faire un truc qui ressemble à ca ?
if ($uid<31)
{
echo "<script>document.location.replace(statuser.php?uid=$uid)</script>";}
else
{
echo "<script>document.location.replace(index.php)</script>";
}

En espérant que ca marche...

par Invité » 20 juin 2005, 14:40

Avec ce code tu ne vas exécuter que la 1ere page.

En effet, tu va rentrer dans la boucle, tu vas ouvrir la 1ere page et tu vas terminer l'exécution de ton script

Mais pourquoi est-ce que tu doit ouvrir plusieurs scripts pour faire un update ?
En fait j'ai rajouté du code à un fichier déjà existant. Ce fichier ne faisait que des requêtes pour afficher des infos, maintenant il en ajoute dans la base (en fait le code rajouté à pour but de stocker dans la base les infos que le code original ne faisait qu'afficher). Et ca marche :lol:

Seulement, pour pouvoir exploiter pleinement ces infos, il faut qu'elles soient calculées pour chaque membre, donc que le fichier soit généré pour chaque uid. Ce n'est sans doute pas très propre, une fonction serait plus adéquate sans doute mais c'est comme ca que je souhaite procéder :lol:

En fait, il me faut juste le code pour ouvrir une page web (php ou non, ca j'en fait mon affaire) à chaque fois que je suis dans la boucle, tout en restant dans le script puisque la boucle n'est pas finie. Tant pis si ca m'ouvre X pages en plus de la 1ere, ca ce n'est pas grave tant que ca marche :lol:
Désolée mais je ne peux pas t'aider, mes compétences en PHP sont très limitées lol, bon courage et j'espère que tu vas vite trouver une solution à ton problème
Je t'en prie, pas de problèmes et merci beaucoup déjà de t'être penchée sur mon cas ;)

par sausee2005 » 20 juin 2005, 14:25

php.net mais euh c'est en anglais :( :-k

par MissAube » 20 juin 2005, 14:24

Désolée mais je ne peux pas t'aider, mes compétences en PHP sont très limitées lol, bon courage et j'espère que tu vas vite trouver une solution à ton problème :wink:

par zeus » 20 juin 2005, 14:22

Avec ce code tu ne vas exécuter que la 1ere page.

En effet, tu va rentrer dans la boucle, tu vas ouvrir la 1ere page et tu vas terminer l'exécution de ton script

Mais pourquoi est-ce que tu doit ouvrir plusieurs scripts pour faire un update ?
$sqlScores = " SELECT user_id, user_gen_score FROM " . USERS_TABLE . " ORDER BY user_id";			  
if ( !($resultScores = $db->sql_query($sqlScores)) ) 
{ 
	message_die(GENERAL_ERROR, 'Impossible d\'acceder aux tables games/users', '', __LINE__, __FILE__, $sqlArcade); 
}
	
while($row = mysql_fetch_array($resultScores))
{
	$userid = $row['user_id'];
	if( $userid > 0 )
	{
		//header("Location: statuser.php?uid=$userid");
		//exit();
	}
}								
?>

par zeus » 20 juin 2005, 14:20

excuse moi zeus je connaissais pas exit et j'ai pense que c'etait pour fermer la page
Mais c'est pas grave, on est tous là pour apprendre :lol:

Maintenant, tu connais la signification ...

PS : si tu veux un conseil, j'ai toujours une page d'ouverte sur php.net pour connaître la signification des fonctions qui sont données

par Djé » 20 juin 2005, 14:20

Non ca ne passe pas non plus avec un refresh ...

Mais je reste persuadé, même si je n'ai que des notions de base en php, que c'est un truc ton con mais ... j'arrive pas à trouver :lol:

par Djé » 20 juin 2005, 14:17

Merci à tous ;)

En fait, je n'ai pas de problèmes de syntaxe SQL, et le exit et le header sont juste là pour montrer l'endroit où il faut je pense travailler ;)

Je vais essayer avec ton

Code : Tout sélectionner

echo "<META http-equiv='refresh' content='0;URL=url de ta page'>";
(En fait mon problème est peut-être simple mais j'ai pu embrouiller l'énoncé :roll: :lol:)

par sausee2005 » 20 juin 2005, 14:08

excuse moi zeus je connaissais pas exit et j'ai pense que c'etait pour fermer la page

par zeus » 20 juin 2005, 13:43

Non car exit permet de terminer l'exécution du script courant. Si tu met exit avant header, il n'y aura jamais redirection

On le met car il arrive que header laisse le script se terminer avant d'appeller le script suivant.

par MissAube » 20 juin 2005, 13:42

Déjà pour exécuter une requête je crois que c'est
mysql_query("")
Ensuite dans ta requête pourquoi tu sors le nom de ta table avec des guillemets et des points ? Je suis débutante donc je me trompe peut-être mais je ne crois pas que ce soit utile.
Enfin, pour appeler ta page tu peux essayer
echo "<META http-equiv='refresh' content='0;URL=url de ta page'>";
Voilà, j'espère que je n'ai pas fait d'erreurs

par sausee2005 » 20 juin 2005, 13:37

euh j'y connais pas grand chose mais le exit il faudrait pas le mettre avant le header

par Djé » 20 juin 2005, 13:29

Ok et merci ;)

En fait, dans ma page statuser.php, il y a du code qui met à jour ma base de données pour un user donné (l'user dont l'uid est passé en paramètre).

Pour l'instant, afin de mettre à jour ma base de données, j'ouvre les pages suivantes dans mon navigateur:

statuser.php?uid=1
statuser.php?uid=2
statuser.php?uid=3
statuser.php?uid=4
statuser.php?uid=5
.....

et ma base se met à jour.

J'aimerais savoir comment faire pour pouvoir ouvrir automatiquement ces pages. J'ai pour l'instant créé un petit fichier:
$sqlScores = " SELECT user_id, user_gen_score FROM " . USERS_TABLE . " ORDER BY user_id";			  
if ( !($resultScores = $db->sql_query($sqlScores)) ) 
{ 
	message_die(GENERAL_ERROR, 'Impossible d\'acceder aux tables games/users', '', __LINE__, __FILE__, $sqlArcade); 
}
	
while($row = mysql_fetch_array($resultScores))
{
	$userid = $row['user_id'];
	if( $userid > 0 )
	{
		//header("Location: statuser.php?uid=$userid");
		//exit();
	}
}								
?>
Je récupère donc les uid de chaque user, et dans ma boucle il faudrait que j'ouvre la page de stat correspondante à l'user mais je n'y arrive pas :(